Revision: 7691
Author:   alexsh
Date:     2009-11-25 12:01:46 +0000 (Wed, 25 Nov 2009)

Log Message:
-----------
cut bulk retrieve up if size > 500

Modified Paths:
--------------
    trunk/pywikipedia/userlib.py

Modified: trunk/pywikipedia/userlib.py
===================================================================
--- trunk/pywikipedia/userlib.py        2009-11-24 17:04:42 UTC (rev 7690)
+++ trunk/pywikipedia/userlib.py        2009-11-25 12:01:46 UTC (rev 7691)
@@ -543,7 +543,19 @@
     """
     users = list(users)  # if pages is an iterator, we need to make it a list
     if len(users) > 1: wikipedia.output(u'Getting %d users data from %s...' % 
(len(users), site))
-    _GetAllUI(site, users, throttle, force).run()
+    
+    if len(users) > 500:
+        for urg in range(0, len(users), 500):
+            if urg == range(0, len(users), 500)[-1]: #latest
+                k = users[urg:]
+                _GetAllUI(site, k, throttle, force).run()
+                users[urg:] = k
+            else:
+                k = users[urg:urg + 500]
+                _GetAllUI(site, k, throttle, force).run()
+                users[urg:urg + 500] = k
+    else:
+        _GetAllUI(site, users, throttle, force).run()
 
 class _GetAllUI(object):
     def __init__(self, site, users, throttle, force):
@@ -596,9 +608,7 @@
             'usprop': ['blockinfo', 'groups', 'editcount', 'registration', 
'emailable', 'gender'],
             'ususers': u'|'.join([n.name() for n in self.users]),
         }
-        for n in query.GetData(params, self.site)['query']['users']:
-            datas[n['name']] = n
-        return datas
+        return dict([(n['name'], n) for n in query.GetData(params, 
self.site)['query']['users']])
 
 if __name__ == '__main__':
     """



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

Reply via email to