Revision: 7322 Author: alexsh Date: 2009-09-26 13:55:02 +0000 (Sat, 26 Sep 2009)
Log Message: ----------- batchLoadUI():cleanup name and use dict() to get data one time. [new] batchDumpInfo():load user object userinfo by one time batchLoadUI().
Modified Paths: -------------- trunk/pywikipedia/userlib.py
Modified: trunk/pywikipedia/userlib.py =================================================================== --- trunk/pywikipedia/userlib.py 2009-09-26 09:56:11 UTC (rev 7321) +++ trunk/pywikipedia/userlib.py 2009-09-26 13:55:02 UTC (rev 7322) @@ -77,10 +77,11 @@ else: self._groups = []
- if not data['registration']: - self._registrationTime = "unknown" + if data['registration']: + self._registrationTime = data['registration'] else: - self._registrationTime = data['registration'] + self._registrationTime = u'unknown' + self._blocked = data.has_key('blockedby')
@@ -384,22 +385,24 @@ 'action': 'query', 'list': 'users', 'usprop': 'blockinfo|groups|editcount|registration|emailable|gender', - #'': '', + 'ususers': query.ListToParam(names), } - if type(names) == list(): - params['ususers'] = query.ListToParam(names) - else: - params['ususers'] = names - #if site.versionnumber() >= 16: # params['ustoken'] = 'userrights' - #result = dict([[sig['name'], sig] for sig in query.GetData(params, site)]) - for sig in query.GetData(params, site)['query']['users']: - result[sig['name']] = sig + + result = dict([(sig['name'].lower(), sig) for sig in query.GetData(params, site)['query']['users'] ])
return result
+def batchDumpInfo(user): + totals = batchLoadUI([x.name() for x in user]) + for oj in user: + data = totals[oj.name().lower()] + oj._editcount = data['editcount'] + oj._groups = data['groups'] + oj._blocked = data.has_key('blockedby') + if __name__ == '__main__': """ Simple testing code for the [[User:Example]] on the English Wikipedia.
pywikipedia-svn@lists.wikimedia.org