Revision: 7367 Author: siebrand Date: 2009-10-04 18:42:57 +0000 (Sun, 04 Oct 2009)
Log Message: ----------- [ #2872584 ] Get correct number of contributions. Patch contributed by Nakor Wikipedia When asking for user contributions, API always return "query-continue" even if the limit number of contributions has been returned (please see https://bugzilla.wikimedia.org/show_bug.cgi?id=20981 )
This patch solves the pb until the API is fixed.
Modified Paths: -------------- trunk/pywikipedia/userlib.py
Modified: trunk/pywikipedia/userlib.py =================================================================== --- trunk/pywikipedia/userlib.py 2009-10-04 15:28:18 UTC (rev 7366) +++ trunk/pywikipedia/userlib.py 2009-10-04 18:42:57 UTC (rev 7367) @@ -208,13 +208,19 @@ params['ucnamespace'] = query.ListToParam(namespace) # An user is likely to contribute on several pages, # keeping track of titles + nbresults=0 while True: + if nbresults>=limit: + break result = query.GetData(params, self.site()) if 'error' in result: wikipedia.output('%s' % result) raise wikipedia.Error for c in result['query']['usercontribs']: yield wikipedia.Page(self.site(), c['title'], defaultNamespace=c['ns']), c['revid'], c['timestamp'], c['comment'] + nbresults=nbresults+1 + if nbresults>=limit: + break if 'query-continue' in result: params['ucstart'] = result['query-continue']['usercontribs']['ucstart'] else:
pywikipedia-svn@lists.wikimedia.org