Revision: 7375
Author: alexsh
Date: 2009-10-05 16:53:45 +0000 (Mon, 05 Oct 2009)
Log Message:
-----------
_load(): API getinfo limit down to 1.12
Modified Paths:
--------------
trunk/pywikipedia/wikipedia.py
Modified: trunk/pywikipedia/wikipedia.py
===================================================================
--- trunk/pywikipedia/wikipedia.py 2009-10-05 16:52:20 UTC (rev 7374)
+++ trunk/pywikipedia/wikipedia.py 2009-10-05 16:53:45 UTC (rev 7375)
@@ -1687,7 +1687,7 @@
# just check for HTTP Status 500 (Internal Server Error)?
else:
output("Unknown Error. API Error code:%s" % data['error']['code'] )
- output("Information:%s" %data['error']['info'])
+ output("Information:%s" % data['error']['info'])
else:
if data['edit']['result'] == u"Success":
#
@@ -1696,7 +1696,7 @@
# if the page update is successed, we need to return code 302 for cheat script who
# using status code
#
- return 302, response.reason, data
+ return 302, response.reason, data['edit']
solve = self.site().solveCaptcha(data)
if solve:
@@ -5510,7 +5510,7 @@
# Get data
# API Userinfo is available from version 1.11
# preferencetoken available from 1.14
- if config.use_api and self.versionnumber() >= 14:
+ if config.use_api and self.versionnumber() >= 12:
#Query userinfo
params = {
'action': 'query',
Revision: 7373
Author: alexsh
Date: 2009-10-04 19:46:54 +0000 (Sun, 04 Oct 2009)
Log Message:
-----------
forget: error counting for use params limit directly
Modified Paths:
--------------
trunk/pywikipedia/userlib.py
trunk/pywikipedia/wikipedia.py
Modified: trunk/pywikipedia/userlib.py
===================================================================
--- trunk/pywikipedia/userlib.py 2009-10-04 19:42:47 UTC (rev 7372)
+++ trunk/pywikipedia/userlib.py 2009-10-04 19:46:54 UTC (rev 7373)
@@ -217,9 +217,9 @@
for c in result['query']['usercontribs']:
yield wikipedia.Page(self.site(), c['title'], defaultNamespace=c['ns']), c['revid'], c['timestamp'], c['comment']
nbresults += 1
- if nbresults >= params['uclimit']:
+ if nbresults >= limit:
break
- if 'query-continue' in result and nbresults < params['uclimit']:
+ if 'query-continue' in result and nbresults < limit:
params['ucstart'] = result['query-continue']['usercontribs']['ucstart']
else:
break
Modified: trunk/pywikipedia/wikipedia.py
===================================================================
--- trunk/pywikipedia/wikipedia.py 2009-10-04 19:42:47 UTC (rev 7372)
+++ trunk/pywikipedia/wikipedia.py 2009-10-04 19:46:54 UTC (rev 7373)
@@ -965,7 +965,7 @@
if count >= tllimit:
break
- if 'query-continue' in data and count < params['tllimlt']:
+ if 'query-continue' in data and count < tllimit:
params["tlcontinue"] = data["query-continue"]["templates"]["tlcontinue"]
else:
break
@@ -6326,7 +6326,7 @@
if count >= limit:
break
- if 'query-continue' in data and count < params['eulimit']:
+ if 'query-continue' in data and count < limit:
params['euoffset'] = data[u'query-continue'][u'exturlusage'][u'euoffset']
else:
break
Revision: 7372
Author: alexsh
Date: 2009-10-04 19:42:47 +0000 (Sun, 04 Oct 2009)
Log Message:
-----------
fix queryLimit override
Modified Paths:
--------------
trunk/pywikipedia/catlib.py
trunk/pywikipedia/userlib.py
trunk/pywikipedia/wikipedia.py
Modified: trunk/pywikipedia/catlib.py
===================================================================
--- trunk/pywikipedia/catlib.py 2009-10-04 19:31:30 UTC (rev 7371)
+++ trunk/pywikipedia/catlib.py 2009-10-04 19:42:47 UTC (rev 7372)
@@ -218,8 +218,10 @@
wikipedia.get_throttle()
data = query.GetData(params, self.site())
+ count = 0
for memb in data['query']['categorymembers']:
+ count += 1
# For MediaWiki versions where subcats look like articles
if isCatTitle(memb['title'], self.site()):
yield SUBCATEGORY, Category(self.site(), memb['title'])
@@ -227,8 +229,10 @@
yield ARTICLE, wikipedia.ImagePage(self.site(), memb['title'])
else:
yield ARTICLE, wikipedia.Page(self.site(), memb['title'])
+ if count >= params['cmlimit']:
+ break
# try to find a link to the next list page
- if 'query-continue' in data:
+ if 'query-continue' in data and count < params['cmlimilt']:
currentPageOffset = data['query-continue']['categorymembers']['cmcontinue']
else:
break
Modified: trunk/pywikipedia/userlib.py
===================================================================
--- trunk/pywikipedia/userlib.py 2009-10-04 19:31:30 UTC (rev 7371)
+++ trunk/pywikipedia/userlib.py 2009-10-04 19:42:47 UTC (rev 7372)
@@ -217,9 +217,9 @@
for c in result['query']['usercontribs']:
yield wikipedia.Page(self.site(), c['title'], defaultNamespace=c['ns']), c['revid'], c['timestamp'], c['comment']
nbresults += 1
- if nbresults >= limit:
+ if nbresults >= params['uclimit']:
break
- if 'query-continue' in result:
+ if 'query-continue' in result and nbresults < params['uclimit']:
params['ucstart'] = result['query-continue']['usercontribs']['ucstart']
else:
break
@@ -266,8 +266,10 @@
for info in data['query']['logevents']:
count += 1
yield wikipedia.ImagePage(self.site(), info['title']), info['timestamp'], info['comment'], False
+ if count >= number:
+ break
- if 'query-continue' in data and count <= number:
+ if 'query-continue' in data and count < number:
params['lestart'] = data['query-continue']['logevents']['lestart']
else:
break
Modified: trunk/pywikipedia/wikipedia.py
===================================================================
--- trunk/pywikipedia/wikipedia.py 2009-10-04 19:31:30 UTC (rev 7371)
+++ trunk/pywikipedia/wikipedia.py 2009-10-04 19:42:47 UTC (rev 7372)
@@ -965,7 +965,7 @@
if count >= tllimit:
break
- if 'query-continue' in data:
+ if 'query-continue' in data and count < params['tllimlt']:
params["tlcontinue"] = data["query-continue"]["templates"]["tlcontinue"]
else:
break
@@ -6115,12 +6115,14 @@
get_throttle()
data = query.GetData(params, self)
- #count = 0
+ count = 0
for p in data['query']['allpages']:
- #count += 1
+ count += 1
yield Page(self, p['title'])
+ if count >= config.special_page_limit:
+ break
- if 'query-continue' in data:
+ if 'query-continue' in data and count < params['aplimit']:
params['apfrom'] = data['query-continue']['allpages']['apfrom']
else:
break
@@ -6323,7 +6325,8 @@
yield Page(self, pages['title'])
if count >= limit:
break
- if 'query-continue' in data:
+
+ if 'query-continue' in data and count < params['eulimit']:
params['euoffset'] = data[u'query-continue'][u'exturlusage'][u'euoffset']
else:
break
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: