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



_______________________________________________
Pywikipedia-svn mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikipedia-svn

Reply via email to