From e4184738fd32c471b0dee6cf46fb249a55bde411 Mon Sep 17 00:00:00 2001 From: Raymond Yee <raymond.yee@gmail.com> Date: Tue, 19 May 2015 15:26:06 -0700 Subject: [PATCH] First attempt to incorporate useful changes from https://bitbucket.org/rdhyee/mwclient/branch/wpp?dest=r97#chg-mwclient/client.py into latest mwclient --- mwclient/client.py | 19 +++++++++++++++++++ mwclient/page.py | 4 ++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/mwclient/client.py b/mwclient/client.py index 2b58cca..ce61821 100644 --- a/mwclient/client.py +++ b/mwclient/client.py @@ -696,6 +696,25 @@ class Site(object): toponly='1' if toponly else None)) return listing.List(self, 'recentchanges', 'rc', limit=limit, **kwargs) + def revisions(self, revids, prop = 'ids|timestamp|flags|comment|user', + expandtemplates=False, diffto='prev'): + self.require(1, 12) # version? + if expandtemplates: expandtemplates = '1' + # http://en.wikipedia.org/w/api.php?rvexpandtemplates=False&format=json&list=&rvprop=ids|timestamp|flags|comment|user&rvdiffto=prev&revids=396240352|392544274|396332337&meta=userinfo&action=query&prop=revisions&uiprop=blockinfo|hasmsg + revids_s = '|'.join(map(str,revids)) + kwargs = {'prop':'revisions','rvexpandtemplates':expandtemplates,'format':'json','rvprop':prop, + 'rvdiffto':diffto, 'revids':revids_s} + if (diffto is None) or (diffto == ''): + del kwargs['rvdiffto'] + if (expandtemplates is None) or (expandtemplates == '') or (expandtemplates == 0): + del kwargs['rvexpandtemplates'] + res = self.api('query', **kwargs) + + if res.has_key('query'): + return res['query'] + else: + return None + def search(self, search, namespace='0', what='title', redirects=False, limit=None): kwargs = dict(listing.List.generate_kwargs('sr', search=search, namespace=namespace, what=what)) diff --git a/mwclient/page.py b/mwclient/page.py index a4f2f66..23c60ca 100644 --- a/mwclient/page.py +++ b/mwclient/page.py @@ -332,9 +332,9 @@ class Page(object): def revisions(self, startid=None, endid=None, start=None, end=None, dir='older', user=None, excludeuser=None, limit=50, - prop='ids|timestamp|flags|comment|user', expandtemplates=False, section=None): + prop='ids|timestamp|flags|comment|user', expandtemplates=False, section=None, diffto = None): kwargs = dict(listing.List.generate_kwargs('rv', startid=startid, endid=endid, - start=start, end=end, user=user, excludeuser=excludeuser)) + start=start, end=end, user=user, excludeuser=excludeuser, diffto=diffto)) kwargs['rvdir'] = dir kwargs['rvprop'] = prop if expandtemplates: -- GitLab