Xqt has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/307326

Change subject: Remove blockreview.py from framework
......................................................................

Remove blockreview.py from framework

- This script is not finished and was never used.
  Put it out of the scope of the framework and delete it.

Change-Id: Ic47c233e85bb33b5bc6e460e0b392418a8c058b3
---
D blockreview.py
1 file changed, 0 insertions(+), 330 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/pywikibot/compat 
refs/changes/26/307326/1

diff --git a/blockreview.py b/blockreview.py
deleted file mode 100644
index b59ed35..0000000
--- a/blockreview.py
+++ /dev/null
@@ -1,330 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8  -*-
-"""
-This bot implements a blocking review process for de-wiki first.
-For other sites this bot script must be changed.
-
-This script is run by [[de:User:xqt]]. It should
-not be run by other users without prior contact.
-
-The following parameters are supported:
-
--
-
-All other parameters will be regarded as part of the title of a single page,
-and the bot will only work on that single page.
-"""
-#
-# (C) xqt, 2010-2013
-#
-# Distributed under the terms of the MIT license.
-#
-__version__ = '$Id$'
-#
-
-import wikipedia as pywikibot
-import userlib
-import query
-
-
-class BlockreviewBot:
-    # notes
-    note_admin = {
-        'de': u"""
-
-== Sperrprüfungswunsch ==
-Hallo %(admin)s,
-
-[[%(user)s]] wünscht die Prüfung seiner/ihrer Sperre vom %(time)s über die 
Dauer von %(duration)s. Kommentar war ''%(comment)s''. Bitte äußere Dich dazu 
auf der [[%(usertalk)s#%(section)s|Diskussionsseite]]. -~~~~"""
-    }
-
-    note_project = {
-        'de': u"""
-
-== [[%(user)s]] ==
-* gesperrt am %(time)s durch {{Benutzer|%(admin)s}} für eine Dauer von 
%(duration)s.
-* Kommentar war ''%(comment)s''.
-* [[Benutzer:%(admin)s]] wurde [[Benutzer 
Diskussion:%(admin)s#Sperrprüfungswunsch|benachrichtigt]].
-* [[%(usertalk)s#%(section)s|Link zur Diskussion]]
-:<small>-~~~~</small>
-;Antrag entgegengenommen"""
-    }
-
-    # edit summaries
-    msg_admin = {
-        'de': u'Bot-Benachrichtigung: Sperrprüfungswunsch von [[%(user)s]]',
-    }
-
-    msg_user = {
-        'de': u'Bot: Administrator [[Benutzer:%(admin)s|%(admin)s]] für 
Sperrprüfung benachrichtigt',
-    }
-
-    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',
-    }
-
-    def __init__(self, dry):
-        """
-        Constructor. Parameters:
-            * generator - The page generator that determines on which pages
-                          to work on.
-            * dry       - If True, doesn't do any real changes, but only shows
-                          what would have been changed.
-        """
-        self.site = pywikibot.getSite()
-        self.dry = dry
-        self.info = None
-        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],
-                                     defaultNamespace=10)
-        except KeyError:
-            pywikibot.error(u'Language "%s" not supported by this bot.'
-                            % self.site.lang)
-        else:
-            for page in genPage.getReferences(follow_redirects=False,
-                                              withTemplateInclusion=True,
-                                              onlyTemplateInclusion=True):
-                if page.namespace() == 3:
-                    self.treat(page)
-                else:
-                    pywikibot.output(u'Ignoring %s, user namespace required'
-                                     % page.title(asLink=True))
-
-    def treat(self, userPage):
-        """
-        Loads the given page, does some changes, and saves it.
-        """
-        talkText = self.load(userPage)
-        if not talkText:
-            # sanity check. No talk page found.
-            return
-        unblock_tpl = self.unblock_tpl[self.site.lang]
-        project_name = self.project_name[self.site.lang]
-        user = userlib.User(self.site, userPage.title(withNamespace=False))
-        saveAdmin = saveProject = False
-        talkComment = None
-        for templates in userPage.templatesWithParams():
-            if templates[0] == unblock_tpl:
-                self.getInfo(user)
-                # 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():
-                        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,
-                                                    u'{{%s|2}}' % unblock_tpl)
-                        talkComment = pywikibot.translate(self.site.lang,
-                                                          self.msg_user
-                                                          % self.parts)
-
-                        # some test stuff
-                        if pywikibot.logger.isEnabledFor(pywikibot.DEBUG) \
-                           and self.site().loggedInAs() == u'Xqbot:':
-                            testPage = pywikibot.Page(self.site,
-                                                      'Benutzer:Xqt/Test')
-                            test = testPage.get()
-                            test += note
-                            self.save(test, testPage,
-                                      '[[WP:BA#SPP-Bot|SPPB-Test]]')
-                    else:
-                        # nicht blockiert. Fall auf DS abschließen
-                        talkText = talkText.replace(u'{{%s}}' % unblock_tpl,
-                                                    u'{{%s|4}}' % unblock_tpl)
-                        talkText = talkText.replace(u'{{%s|1}}' % unblock_tpl,
-                                                    u'{{%s|4}}' % unblock_tpl)
-                        talkComment = pywikibot.translate(self.site.lang,
-                                                          self.msg_done)
-                # Step 2
-                # Admin has been 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: 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,
-                                                   self.note_project,
-                                                   self.parts)
-                        comment = pywikibot.translate(self.site.lang,
-                                                      self.msg_admin,
-                                                      self.parts)
-                        projText += note
-                        self.save(projText, project, comment, botflag=False)
-                        talkText = talkText.replace(u'{{%s|2}}' % unblock_tpl,
-                                                    u'{{%s|3}}' % unblock_tpl)
-                        talkComment = u'Bot: [[%s|Wikipedia:Sperrprüfung]] 
eingetragen' \
-                                      % project_name
-                    else:
-                        # User is unblocked. Review can be closed
-                        talkText = talkText.replace(u'{{%s|2}}' % unblock_tpl,
-                                                    u'{{%s|4}}' % unblock_tpl)
-                        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:
-                        # User is unblocked. Review can be closed
-                        talkText = talkText.replace(u'{{%s|3}}' % unblock_tpl,
-                                                    u'{{%s|4}}' % unblock_tpl)
-                        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)
-
-    def getInfo(self, user):
-        if not self.info:
-            self.info = self.site.logpages(1, mode='block',
-                                           title=user.getUserPage().title(),
-                                           dump=True).next()
-            self.parts = {
-                'admin':    self.info['user'],
-                'user':     self.info['title'],
-                'usertalk': user.getUserTalkPage().title(),
-                'section':  u'Sperrprüfung',
-                'time':     self.info['timestamp'],
-                'duration': self.info['block']['duration'],
-                'comment':  self.info['comment'],
-            }
-
-    def SysopGenerator(self):
-        params = param = {
-            'action':  'query',
-            'list':    'allusers',
-            'augroup': 'sysop',
-            'auprop':  'groups',
-            'aulimit': 500,
-        }
-        data = query.GetData(params, self.site)
-        for user in data['query']['allusers']:
-            # exclude sysop bots
-            if 'bot' not in user['groups']:
-                # 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.
-        """
-        try:
-            # Load the page
-            text = page.get()
-        except pywikibot.NoPage:
-            pywikibot.output(u"Page %s does not exist; skipping."
-                             % page.title(asLink=True))
-        except pywikibot.IsRedirectPage:
-            pywikibot.output(u"Page %s is a redirect; skipping."
-                             % page.title(asLink=True))
-        else:
-            return text
-        return None
-
-    def save(self, text, page, comment, minorEdit=True, botflag=True):
-        if text != page.get():
-            # Show the title of the page we're working on.
-            # Highlight the title in purple.
-            pywikibot.output(u"\n\n>>> \03{lightpurple}%s\03{default} <<<"
-                             % page.title())
-            # show what was changed
-            pywikibot.showDiff(page.get(), text)
-            pywikibot.output(u'Comment: %s' % comment)
-            if not self.dry:
-                choice = pywikibot.inputChoice(
-                    u'Do you want to accept these changes?',
-                    ['Yes', 'No'], ['y', 'N'], 'N')
-                if choice == 'y':
-                    try:
-                        # Save the page
-                        page.put(text, comment=comment, minorEdit=minorEdit,
-                                 botflag=botflag)
-                    except pywikibot.LockedPage:
-                        pywikibot.output(u"Page %s is locked; skipping."
-                                         % page.title(asLink=True))
-                    except pywikibot.EditConflict:
-                        pywikibot.output(
-                            u'Skipping %s because of edit conflict'
-                            % (page.title()))
-                    except pywikibot.SpamfilterError, error:
-                        pywikibot.output(
-                            u'Cannot change %s because of spam blacklist entry 
'
-                            u'%s' % (page.title(), error.url))
-                    else:
-                        return True
-        return
-
-
-def main():
-    show = False
-
-    # Parse command line arguments
-    for arg in pywikibot.handleArgs():
-        show = True
-
-    if not show:
-        bot = BlockreviewBot(pywikibot.simulate)
-        bot.run()
-    else:
-        pywikibot.showHelp()
-
-if __name__ == "__main__":
-    try:
-        main()
-    finally:
-        pywikibot.stopme()

-- 
To view, visit https://gerrit.wikimedia.org/r/307326
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic47c233e85bb33b5bc6e460e0b392418a8c058b3
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/compat
Gerrit-Branch: master
Gerrit-Owner: Xqt <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to