Revision: 8321 Author: xqt Date: 2010-06-24 18:26:51 +0000 (Thu, 24 Jun 2010)
Log Message: ----------- additional comments
Modified Paths: -------------- trunk/pywikipedia/blockreview.py
Modified: trunk/pywikipedia/blockreview.py =================================================================== --- trunk/pywikipedia/blockreview.py 2010-06-24 17:35:26 UTC (rev 8320) +++ trunk/pywikipedia/blockreview.py 2010-06-24 18:26:51 UTC (rev 8321) @@ -16,14 +16,11 @@ # # (C) xqt, 2010 # -__version__ = '$Id: basic.py 7845 2009-12-30 17:02:05Z xqt $' +__version__ = '$Id: blockreview.py 8320 2010-06-24 17:35:26Z xqt $' # import wikipedia as pywikibot import userlib
-# This is required for the text that is shown when you run this script -# with the parameter -help. - class BlockreviewBot: # notes note_admin = { @@ -34,15 +31,23 @@ 'de': u"\n\n== [[%(user)s]] ==\n* gesperrt am %(time)s durch {{Benutzer|%(admin)s}} für eine Dauer von %(duration)s.\n* Kommentar war ''%(comment)s''.\n* [[Benutzer:%(admin)s]] wurde [[Benutzer Diskussion:%(admin)s#Sperrprüfungswunsch|benachrichtigt]].\n* [[%(usertalk)s#%(section)s|Link zur Diskussion]]\n:<small>-~~~~</small>\n;Antrag entgegengenommen" }
- # edit summary + # edit summaries msg_admin = { 'de': u'Bot-Benachrichtigung: Sperrprüfungswunsch von [[%(user)s]]', }
+ msg_done = { + 'de': u'Bot: Sperrprüfung abgeschlossen. Benutzer ist entsperrt.', + } + unblock_tpl = { 'de' : u'Benutzer:TAXman/Sperrprüfungsverfahren', + 'pt' : u'Predefinição:Discussão de bloqueio', }
+ review_cat = { + 'de' : u'Wikipedia:Sperrprüfung' + project_name = { 'de' : u'Benutzer:TAXman/Sperrprüfung Neu' 'pt' : u'Wikipedia:Pedidos a administradores/Discussão de bloqueio' @@ -62,6 +67,7 @@ self.parts = None
def run(self): + # TODO: change the generator for template to the included category try: genPage = pywikibot.Page(self.site, self.unblock_tpl[self.site.lang], @@ -94,8 +100,9 @@ for templates in userPage.templatesWithParams(): if templates[0] == unblock_tpl: self.getInfo(user) - # Sperrprüfung ist neu eingetragen. - # Sperrenden Admin benachrichtigen. + # Step 1 + # a new template is set on blocked users talk page. + # 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']) @@ -113,7 +120,7 @@ u'{{%s|2}}' % unblock_tpl) talkComment = u'Bot: Administrator [[Benutzer:%(admin)s|%(admin)s]] für Sperrprüfung benachrichtigt' \ % self.parts - + #testPage = pywikibot.Page(self.site, 'Benutzer:Xqt/Test') #test = testPage.get() #test += note @@ -124,13 +131,14 @@ u'{{%s|4}}' % unblock_tpl) talkText = talkText.replace(u'{{%s|1}}' % unblock_tpl, u'{{%s|4}}' % unblock_tpl) - talkComment = u'Bot: Sperrprüfung abgeschlossen. Benutzer ist entsperrt.' - # Admin ist benachrichtigt. - # 2 Stunden warten, dann eintrag auf Projektseite + talkComment = pywikibot.translate(self.site.lang, self.msg_done) + # Step 2 + # Admin has beend notified. + # Wait for 2 hours, than put a message to the project page elif templates[1][0]==u'2': if self.info['action'] == 'block' or user.isBlocked(): - # todo: Wartezeit einplanen - # prüfen, ob Eintrag schon vorhanden + # TODO: check whether wait time is gone + # check whether this entry already esists project = pywikibot.Page(self.site, project_name) projText = project.get() note = pywikibot.translate(self.site.lang, @@ -144,25 +152,32 @@ talkComment = u'Bot: [[%s|Wikipedia:Sperrprüfung]] eingetragen' \ % project_name else: - # nicht blockiert. Fall auf DS abschließen + # User is unblocked. Review can be closed talkText = talkText.replace(u'{{%s|2}}' % unblock_tpl, u'{{%s|4}}' % unblock_tpl) - talkComment = u'Bot: Sperrprüfung abgeschlossen. Benutzer ist entsperrt.' + talkComment = pywikibot.translate(self.site.lang, self.msg_done) + # Step 3 + # Admin is notified, central project page has a message + # Discussion is going on + # Check whether it can be closed elif templates[1][0]==u'3': if self.info['action'] == 'block' or user.isBlocked(): pass else: - # nicht blockiert. Fall auf DS abschließen + # User is unblocked. Review can be closed talkText = talkText.replace(u'{{%s|3}}' % unblock_tpl, u'{{%s|4}}' % unblock_tpl) - talkComment = u'Bot: Sperrprüfung abgeschlossen. Benutzer ist entsperrt.' + talkComment = pywikibot.translate(self.site.lang, self.msg_done) + # Step 4 + # Review is closed elif templates[1][0]==u'4': # nothing left to do pass else: # wrong template found pass - + + # at last if there is a talk comment, users talk page must be changed if talkComment: self.save(talkText, userPage, talkComment)
@@ -180,8 +195,8 @@ 'duration' : self.info['block']['duration'], 'comment' : self.info['comment'], } -
+ def load(self, page): """ Loads the given page, does some changes, and saves it. @@ -242,8 +257,6 @@ show = True
if not show: - # The preloading generator is responsible for downloading multiple - # pages from the wiki simultaneously. bot = BlockreviewBot(dry) bot.run() else:
pywikipedia-svn@lists.wikimedia.org