Mercurial > wikked
changeset 212:5bf00af997ac
The `cache` command can optionally force resolve all pages.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Mon, 17 Feb 2014 14:37:53 -0800 |
parents | 43a3434d6cfb |
children | 841175200700 |
files | wikked/commands/manage.py wikked/page.py wikked/wiki.py |
diffstat | 3 files changed, 17 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/wikked/commands/manage.py Mon Feb 17 14:37:00 2014 -0800 +++ b/wikked/commands/manage.py Mon Feb 17 14:37:53 2014 -0800 @@ -57,8 +57,10 @@ "whole wiki.") def setupParser(self, parser): - pass + parser.add_argument('-f', '--force', + help="Force cache all pages", + action='store_true') def run(self, ctx): - ctx.wiki._cachePages() + ctx.wiki._cachePages(force_resolve=ctx.args.force)
--- a/wikked/page.py Mon Feb 17 14:37:00 2014 -0800 +++ b/wikked/page.py Mon Feb 17 14:37:53 2014 -0800 @@ -126,14 +126,18 @@ def _onExtendedDataLoaded(self): pass - def _ensureExtendedData(self): - if self._data is not None and self._data.has_extended_data: + def _ensureExtendedData(self, force=False): + if (not force and + self._data is not None and + self._data.has_extended_data): return self._ensureData() self._onExtendedDataLoading() - if self._data.has_extended_data and not self._force_resolve: + if (self._data.has_extended_data and + not force and + not self._force_resolve): return try:
--- a/wikked/wiki.py Mon Feb 17 14:37:00 2014 -0800 +++ b/wikked/wiki.py Mon Feb 17 14:37:53 2014 -0800 @@ -111,6 +111,7 @@ def getSpecialFilenames(self): yield '.wikirc' yield '.wiki' + yield '_files' if self.config.has_section('ignore'): for name, val in self.config.items('ignore'): yield val @@ -320,12 +321,15 @@ def getSpecialFilenames(self): return self.special_filenames - def _cachePages(self, only_urls=None): + def _cachePages(self, only_urls=None, force_resolve=False): logger.debug("Caching extended page data...") if only_urls: for url in only_urls: page = self.getPage(url) - page._ensureExtendedData() + page._ensureExtendedData(force=force_resolve) + elif force_resolve: + for page in self.db.getPages(): + page._ensureExtendedData(force=True) else: for page in self.db.getUncachedPages(): page._ensureExtendedData()