# HG changeset patch # User Ludovic Chabant # Date 1392676673 28800 # Node ID 5bf00af997acbad0de4602a107acbfb0ac7f4dd5 # Parent 43a3434d6cfb7bf184b244932b8816d3d4981668 The `cache` command can optionally force resolve all pages. diff -r 43a3434d6cfb -r 5bf00af997ac wikked/commands/manage.py --- 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) diff -r 43a3434d6cfb -r 5bf00af997ac wikked/page.py --- 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: diff -r 43a3434d6cfb -r 5bf00af997ac wikked/wiki.py --- 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()