Xqt has submitted this change and it was merged.
Change subject: [IMPR] Some improvements done. - remove unused load method -
increase self._treat_counter - use userPut instead of own save method - add doc
strings
......................................................................
[IMPR] Some improvements done.
- remove unused load method
- increase self._treat_counter
- use userPut instead of own save method
- add doc strings
Change-Id: I24b6aad7761be1bb2ca65a492ee705cf13da0765
---
M afd-notice.py
1 file changed, 46 insertions(+), 63 deletions(-)
Approvals:
Xqt: Verified; Looks good to me, approved
diff --git a/afd-notice.py b/afd-notice.py
index 3843fca..be25b12 100644
--- a/afd-notice.py
+++ b/afd-notice.py
@@ -14,11 +14,11 @@
"""
#
-# (C) xqt, 2013-2015
+# (C) xqt, 2013-2016
#
# Distributed under the terms of the MIT license.
#
-from __future__ import unicode_literals
+from __future__ import absolute_import, unicode_literals
__version__ = '$Id: b8b58400a557856fe9df819978e4b30036e4a643 $'
#
@@ -42,6 +42,7 @@
summary = "Bot: Benachrichtigung über Löschdiskussion zum Artikel
[[%(page)s]]"
def __init__(self, **kwargs):
+ """Constructor."""
self.availableOptions.update({
'init': False,
})
@@ -52,6 +53,14 @@
self._start_ts = pywikibot.Timestamp.now()
def moved_page(self, source):
+ """
+ Find the move target for a given page.
+
+ @param source: page title
+ @type source: str or pywikibot.Link
+ @return: target page title
+ @rtype: str
+ """
page = pywikibot.Page(pywikibot.Link(source))
gen = iter(self.site.logevents(logtype='move', page=page, total=1))
try:
@@ -107,6 +116,7 @@
pywikibot.output(u'\n>>> %s <<< is tagged for deleting'
% article)
self.treat(article)
+ self._treat_counter += 1
writelist.add(article)
# all of them are done, delete the old entries
else:
@@ -115,6 +125,12 @@
self.init = False
def readfile(self):
+ """
+ Read page titles from file.
+
+ @return: set of page titles
+ @rtype: set
+ """
pywikibot.output(u'\nReading old article list...')
filename = pywikibot.config.datafilepath("data", 'la.data')
try:
@@ -127,6 +143,12 @@
return data
def writefile(self, data):
+ """
+ Write page titles to file.
+
+ @param data: set of page titles
+ @type data: set
+ """
if not config.simulate or self.init:
pywikibot.output(u'Writing %d article names to file'
% len(data))
@@ -139,7 +161,14 @@
raise
def treat(self, pagename):
- """ Loads the given page, does some changes, and saves it. """
+ """
+ Process a given page.
+
+ Get the creator of the page and calculate the main authors.
+
+ @param pagename: page title
+ @type pagename: str
+ """
page = pywikibot.Page(pywikibot.Link(pagename))
if not page.exists():
return
@@ -201,6 +230,16 @@
action=u'stark überarbeitete')
def inform(self, user, **param):
+ """
+ Inform user about deletion request.
+
+ @param user: user to be informed
+ @type user: pywikibot.User
+ @keyword page: page title
+ @type page: str
+ @keyword action: action done by editor
+ @type action: str
+ """
talk = user.getUserTalkPage()
while talk.isRedirectPage():
talk = talk.getRedirectTarget()
@@ -222,68 +261,12 @@
text = u''
param['user'] = user.name()
text += msg % param
- if not self.save(text, talk, self.summary % param, minorEdit=False):
+ if not self.userPut(talk, talk.text, text, minor=False,
+ summary=self.summary % param,
+ ignore_save_related_errors=True,
+ ignore_server_errors=True):
pywikibot.output(u'WARNING: Page %s not saved.'
% talk.title(asLink=True))
-
- def load(self, page):
- """
- Loads the given page, does some changes, and saves it.
- """
- try:
- # Load the page
- text = page.text
- 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
-
- def save(self, text, page, comment=None, minorEdit=True,
- botflag=True):
- old = u''
- if page.exists():
- old = page.get()
- # only save if something was changed
- if text and text != old:
- # 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(old, text)
- pywikibot.output(u'Comment: %s' % comment)
- if not self.always:
- choice = pywikibot.inputChoice(
- u'Do you want to accept these changes?',
- ['Yes', 'No', 'All'], ['y', 'N', 'a'], 'N')
- if choice == 'a':
- self.always = True
- if self.always or choice == 'y':
- try:
- # Save the page
- page.put(text, comment=comment or self.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 %s'
- % (page.title(), error.url))
- except pywikibot.PageNotSaved as error:
- pywikibot.exception(error)
- pywikibot.output(
- u'Page %s not saved' % (page.title()))
- else:
- return True
def main():
--
To view, visit https://gerrit.wikimedia.org/r/268885
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I24b6aad7761be1bb2ca65a492ee705cf13da0765
Gerrit-PatchSet: 2
Gerrit-Project: pywikibot/bots/xqbot
Gerrit-Branch: master
Gerrit-Owner: Xqt <[email protected]>
Gerrit-Reviewer: Xqt <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits