Revision: 8326 Author: xqt Date: 2010-06-24 19:50:47 +0000 (Thu, 24 Jun 2010)
Log Message: ----------- + SysopGenerator for pt-wiki, some bugfixes
Modified Paths: -------------- trunk/pywikipedia/blockreview.py
Modified: trunk/pywikipedia/blockreview.py =================================================================== --- trunk/pywikipedia/blockreview.py 2010-06-24 19:13:18 UTC (rev 8325) +++ trunk/pywikipedia/blockreview.py 2010-06-24 19:50:47 UTC (rev 8326) @@ -20,11 +20,11 @@ # # Distributed under the terms of the MIT license. # -__version__ = +__version__ = '$Id$' #
import wikipedia as pywikibot -import userlib +import userlib, query
class BlockreviewBot: # notes @@ -55,11 +55,12 @@ }
review_cat = { - 'de' : u'Wikipedia:Sperrprüfung' + 'de' : u'Wikipedia:Sperrprüfung', + }
project_name = { - 'de' : u'Benutzer:TAXman/Sperrprüfung Neu' - 'pt' : u'Wikipedia:Pedidos a administradores/Discussão de bloqueio' + 'de' : u'Benutzer:TAXman/Sperrprüfung Neu', + 'pt' : u'Wikipedia:Pedidos a administradores/Discussão de bloqueio', }
def __init__(self, dry): @@ -115,15 +116,24 @@ # Notify the blocking admin if templates[1]==[] or templates[1][0]==u'1': if self.info['action'] == 'block' or user.isBlocked(): - admin = userlib.User(self.site, self.info['user']) - adminPage = admin.getUserTalkPage() - adminText = adminPage.get() - note = pywikibot.translate(self.site.lang, - self.note_admin) % self.parts - comment = pywikibot.translate(self.site.lang, - self.msg_admin) % self.parts - adminText += note - self.save(adminText, adminPage, comment, False) + if self.site.sitename() == 'wikipedia:de': + admin = userlib.User(self.site, self.info['user']) + adminPage = admin.getUserTalkPage() + adminText = adminPage.get() + note = pywikibot.translate(self.site.lang, + self.note_admin) % self.parts + comment = pywikibot.translate(self.site.lang, + self.msg_admin) % self.parts + adminText += note + self.save(adminText, adminPage, comment, False) + ### test for pt-wiki + ### just print all sysops talk pages + elif self.site.sitename() == 'wikipedia:pt': + import pagegenerators as pg + gen = pg.PreloadingGenerator(self.SysopGenerator()) + for sysop in gen: + print sysop.title() + talkText = talkText.replace(u'{{%s}}' % unblock_tpl, u'{{%s|2}}' % unblock_tpl) talkText = talkText.replace(u'{{%s|1}}' % unblock_tpl, @@ -131,7 +141,7 @@ talkComment = pywikibot.translate(self.site.lang, self.msg_user % self.parts)
# some test stuff - if pywikibot.debug and self.site().loggedInAs() == u'Xqbot: + if pywikibot.debug and self.site().loggedInAs() == u'Xqbot:': testPage = pywikibot.Page(self.site, 'Benutzer:Xqt/Test') test = testPage.get() test += note @@ -207,6 +217,18 @@ 'comment' : self.info['comment'], }
+ def SysopGenerator(self): + params = param = { + 'action' : 'query', + 'list' : 'allusers', + 'augroup' : 'sysop', + 'aulimit' : 500 + } + data = query.GetData(params, self.site) + for user in data['query']['allusers']: + # yield the sysop talkpage + yield pywikibot.Page(self.site, user['name'], defaultNamespace=3) + def load(self, page): """ Loads the given page, does some changes, and saves it.