Revision: 7679
Author:   alexsh
Date:     2009-11-22 22:17:54 +0000 (Sun, 22 Nov 2009)

Log Message:
-----------
welcome: add quick option to batch load user datas by API

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

Modified: trunk/pywikipedia/welcome.py
===================================================================
--- trunk/pywikipedia/welcome.py        2009-11-22 20:56:47 UTC (rev 7678)
+++ trunk/pywikipedia/welcome.py        2009-11-22 22:17:54 UTC (rev 7679)
@@ -468,6 +468,7 @@
     defaultSign = '--~~~~'  # default signature
     queryLimit = 50         # number of users that the bot load to check
     quiet = False           # Prevents users without contributions are 
displayed
+    quick = False           # Provide quick check by API bulk-retrieve user 
datas
 
     #fileOption = False     # check if the user wants to use a file or the 
wikipage
 
@@ -697,6 +698,7 @@
             params['lestart'] = globalvar.offset
         
         count = 0
+        count_auto = 0
         wikipedia.output("Querying new user log from API....")
         while True:
             lev = query.GetData(params, self.site)
@@ -709,8 +711,10 @@
                 if not globalvar.welcomeAuto and x['action'] == 'create2':
                     continue
                 if not globalvar.welcomeAuto and x['action'] == 'autocreate':
-                    showStatus(3)
-                    wikipedia.output(u'%s has been created automatically.' % 
x['user'])
+                    if not globalvar.quick:
+                        showStatus(3)
+                        wikipedia.output(u'%s has been created automatically.' 
% x['user'])
+                    count_auto += 1
                     continue
                 
                 yield userlib.User(self.site, x['user'])
@@ -720,6 +724,10 @@
             else:
                 break
         if someone_found:
+            if globalvar.quick and count_auto > 0:
+                showStatus()
+                wikipedia.output(u'Ignored %d user(s) by auto-create' % 
count_auto)
+            
             showStatus(5)
             wikipedia.output(u'There is nobody left to be welcomed...')
         else:
@@ -805,7 +813,18 @@
     def run(self):
         while True:
             welcomed_count = 0
-            for users in self.parseNewUserLog():
+            if globalvar.quick and config.use_api:
+                us = [x for x in self.parseNewUserLog()]
+                showStatus()
+                try:
+                    userlib.getall(self.site, us)
+                except NotImplementedError:
+                    globalvar.quick = False
+                    us = self._parseNewUserLogOld()
+            else:
+                us = self.parseNewUserLog()
+            
+            for users in us:
                 if users.isBlocked():
                     showStatus(3)
                     wikipedia.output(u'%s has been blocked!' % users.name() )
@@ -1013,6 +1032,9 @@
                     globalvar.dumpToLog = int(arg[11:])
             elif arg == '-quiet':
                 globalvar.quiet = True
+            elif arg == '-quick':
+                globalvar.quick = True
+            
         # Filename and pywikipedia path
         # file where is stored the random signature index
         filename = wikipedia.config.datafilepath('welcome-%s-%s.data' % 
(wikipedia.default_family, wikipedia.default_code))  



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

Reply via email to