Thanks a lot! Am 15.09.2010 13:32, schrieb [email protected]: > Revision: 8561 > Author: xqt > Date: 2010-09-15 11:32:15 +0000 (Wed, 15 Sep 2010) > > Log Message: > ----------- > expandtemplates parameter for Page.get() - Fully resolve templates within > page content submitted by DrTrogom. Thanks. > > Modified Paths: > -------------- > trunk/pywikipedia/wikipedia.py > > Modified: trunk/pywikipedia/wikipedia.py > =================================================================== > --- trunk/pywikipedia/wikipedia.py 2010-09-15 10:11:05 UTC (rev 8560) > +++ trunk/pywikipedia/wikipedia.py 2010-09-15 11:32:15 UTC (rev 8561) > @@ -585,7 +585,7 @@ > return self.autoFormat()[0] is not None > > def get(self, force=False, get_redirect=False, throttle=True, > - sysop=False, change_edit_time=True): > + sysop=False, change_edit_time=True, expandtemplates=False): > """Return the wiki-text of the page. > > This will retrieve the page from the server if it has not been > @@ -604,6 +604,8 @@ > If change_edit_time is False, do not check this version for changes > before saving. This should be used only if the page has been loaded > previously. > + If expandtemplates is True, all templates in the page content are > + fully resolved too (if API is used). > > """ > # NOTE: The following few NoPage exceptions could already be thrown > at > @@ -622,7 +624,7 @@ > if self.site().isInterwikiLink(self.title()): > raise NoPage('%s is not a local page on %s!' > % (self.aslink(), self.site())) > - if force: > + if force or expandtemplates: > # When forcing, we retry the page no matter what. Old exceptions > # and contents do not apply any more. > for attr in ['_redirarg', '_getexception', '_contents']: > @@ -640,7 +642,8 @@ > # Make sure we did try to get the contents once > if not hasattr(self, '_contents'): > try: > - self._contents = self._getEditPage(get_redirect = > get_redirect, throttle = throttle, sysop = sysop) > + self._contents = > self._getEditPage(get_redirect=get_redirect, throttle=throttle, sysop=sysop, > + expandtemplates = > expandtemplates) > hn = self.section() > if hn: > m = re.search("=+ *%s *=+" % hn, self._contents) > @@ -669,7 +672,7 @@ > return self._contents > > def _getEditPage(self, get_redirect=False, throttle=True, sysop=False, > - oldid=None, change_edit_time=True): > + oldid=None, change_edit_time=True, > expandtemplates=False): > """Get the contents of the Page via API query > > Do not use this directly, use get() instead. > @@ -677,6 +680,8 @@ > Arguments: > oldid - Retrieve an old revision (by id), not the current one > get_redirect - Get the contents, even if it is a redirect page > + expandtemplates - Fully resolve templates within page content > + (if API is used) > > This method returns the raw wiki text as a unicode string. > """ > @@ -694,6 +699,8 @@ > } > if oldid: > params['rvstartid'] = oldid > + if expandtemplates: > + params[u'rvexpandtemplates'] = u'' > > if throttle: > get_throttle() > > > > _______________________________________________ > Pywikipedia-svn mailing list > [email protected] > https://lists.wikimedia.org/mailman/listinfo/pywikipedia-svn
_______________________________________________ Pywikipedia-l mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/pywikipedia-l
