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
Pywikipedia-svn(a)lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/pywikipedia-svn