diff --git a/mwclient/RELEASE-NOTES.txt b/mwclient/RELEASE-NOTES.txt index 3ba95bfc6c047dfeca92cbeefa1d959507057cc9..faa0af62a90d3e50649fa28516b1aea530d13f8f 100644 --- a/mwclient/RELEASE-NOTES.txt +++ b/mwclient/RELEASE-NOTES.txt @@ -9,6 +9,7 @@ Mwclient 0.6.4 is unreleased. * Properly fix detection of alpha versions * Added support for builtin json library * Handle badtoken once +* Bug 2690034: Fix revision iteration == Changes in version 0.6.3 == * Added domain parameter to login. diff --git a/mwclient/page.py b/mwclient/page.py index 4398b9a279cfef121d70f88d4a25e04a66122e8b..3cfee9940a931d82146931ca8f5df84be285c212 100644 --- a/mwclient/page.py +++ b/mwclient/page.py @@ -266,7 +266,7 @@ class Page(object): kwargs['rvprop'] = prop if expandtemplates: kwargs['rvexpandtemplates'] = '1' - return listing.PageProperty(self, 'revisions', 'rv', limit = limit, **kwargs) + return RevisionsIterator(self, 'revisions', 'rv', limit = limit, **kwargs) def templates(self, namespace = None, generator = True): self.site.require(1, 8) kwargs = dict(listing.List.generate_kwargs('tl', namespace = namespace)) @@ -313,3 +313,9 @@ class Image(Page): def __repr__(self): return "<Image object '%s' for %s>" % (self.name.encode('utf-8'), self.site) +class RevisionsIterator(listing.PageProperty): + def load_chunk(self): + if 'rvstartid' in self.args and 'rvstart' in self.args: + del self.args['rvstart'] + return listing.PageProperty.load_chunk(self) + \ No newline at end of file