mediawiki: Add support for the revision argument

refs #1067
This commit is contained in:
Laurent Bachelier 2013-03-11 00:39:01 +01:00
commit 0b29991387
2 changed files with 15 additions and 6 deletions

View file

@ -55,24 +55,32 @@ class MediawikiBrowser(BaseBrowser):
return m.group(1)
else:
return page
def get_wiki_source(self, page):
def get_wiki_source(self, page, rev=None):
assert isinstance(self.apiurl, basestring)
page = self.url2page(page)
page = self.url2page(page)
data = {'action': 'query',
'prop': 'revisions|info',
'titles': page,
'rvprop': 'content|timestamp',
'rvprop': 'content|timestamp|ids',
'rvlimit': '1',
'intoken': 'edit',
}
if rev:
data['rvstartid'] = rev
result = self.API_get(data)
pageid = result['query']['pages'].keys()[0]
if pageid == "-1": # Page does not exist
return ""
if 'revisions' not in repr(result['query']['pages'][str(pageid)]):
raise APIError('Revision %s does not exist' % rev)
if rev and result['query']['pages'][str(pageid)]['revisions'][0]['revid'] != int(rev):
raise APIError('Revision %s does not exist' % rev)
return result['query']['pages'][str(pageid)]['revisions'][0]['*']
def get_token(self, page, _type):