jenkins-bot has submitted this change and it was merged.
Change subject: pep8 changes
......................................................................
pep8 changes
Change-Id: If86c7613d3daeb0cbbafef5bad4e8a42633a7c2e
---
M scripts/category_redirect.py
1 file changed, 71 insertions(+), 78 deletions(-)
Approvals:
Legoktm: Looks good to me, approved
jenkins-bot: Verified
diff --git a/scripts/category_redirect.py b/scripts/category_redirect.py
index 3a69274..17053ff 100755
--- a/scripts/category_redirect.py
+++ b/scripts/category_redirect.py
@@ -25,7 +25,8 @@
import cPickle
import math
import re
-import sys, traceback
+import sys
+import traceback
import time
from datetime import datetime, timedelta
import pywikibot
@@ -34,16 +35,17 @@
class CategoryRedirectBot(object):
+
def __init__(self):
- self.cooldown = 7 # days
+ self.cooldown = 7 # days
self.site = pywikibot.getSite()
self.site.login()
- self.catprefix = self.site.namespace(14)+":"
+ self.catprefix = self.site.namespace(14) + ":"
self.log_text = []
self.edit_requests = []
self.log_page = pywikibot.Page(self.site,
- u"User:%(user)s/category redirect log" %
- {'user': self.site.user()})
+ u"User:%(user)s/category redirect log"
+ % {'user': self.site.user()})
# Localization:
@@ -76,12 +78,9 @@
self.dbl_redir_comment = 'category_redirect-fix-double'
self.maint_comment = 'category_redirect-comment'
self.edit_request_text = i18n.twtranslate(
- self.site.lang,
- 'category_redirect-edit-request') + \
- u'\n~~~~'
+ self.site.lang, 'category_redirect-edit-request') +
u'\n~~~~'
self.edit_request_item = i18n.twtranslate(
- self.site.lang,
- 'category_redirect-edit-request-item')
+ self.site.lang, 'category_redirect-edit-request-item')
def change_category(self, article, oldCat, newCat, comment=None,
sortKey=None):
@@ -122,11 +121,11 @@
except pywikibot.SpamfilterError, error:
pywikibot.output(
u'Changing page %s blocked by spam filter (URL=%s)'
- % (article.title(asLink=True), error.url))
+ % (article.title(asLink=True), error.url))
except pywikibot.NoUsername:
pywikibot.output(
u"Page %s not saved; sysop privileges required."
- % article.title(asLink=True))
+ % article.title(asLink=True))
self.edit_requests.append({
'title': article.title(asLink=True, textlink=True),
'oldcat': oldCat.title(asLink=True, textlink=True),
@@ -154,23 +153,24 @@
found += 1
changed = self.change_category(article, oldCat, newCat,
comment=comment)
- if changed: moved += 1
+ if changed:
+ moved += 1
# pass 2: look for template doc pages
for item in pywikibot.data.api.ListGenerator(
- "categorymembers", cmtitle=oldCat.title(),
- cmprop="title|sortkey",
cmnamespace="10",
- cmlimit="max"):
- doc = pywikibot.Page(
- pywikibot.Link(item['title']+"/doc",
self.site)
- )
+ "categorymembers", cmtitle=oldCat.title(),
+ cmprop="title|sortkey", cmnamespace="10",
+ cmlimit="max"):
+ doc = pywikibot.Page(pywikibot.Link(item['title'] +
+ "/doc", self.site))
try:
old_text = doc.get()
except pywikibot.Error:
continue
changed = self.change_category(doc, oldCat, newCat,
comment=comment)
- if changed: moved += 1
+ if changed:
+ moved += 1
if found:
pywikibot.output(u"%s: %s found, %s moved"
@@ -187,7 +187,7 @@
def readyToEdit(self, cat):
"""Return True if cat not edited during cooldown period, else
False."""
- dateformat ="%Y-%m-%dT%H:%M:%SZ"
+ dateformat = "%Y-%m-%dT%H:%M:%SZ"
today = datetime.now()
deadline = today + timedelta(days=-self.cooldown)
if cat.editTime() is None:
@@ -213,16 +213,15 @@
return log_text
# sort by keys and keep the first (LOG_SIZE-1) values
keep = [text for (key, text) in
- sorted(log_items.iteritems(), reverse=True)[:LOG_SIZE-1]]
+ sorted(log_items.iteritems(), reverse=True)[:LOG_SIZE - 1]]
log_text = "\n".join("\n".join(line for line in text) for
text in keep)
# get permalink to older logs
history = self.log_page.getVersionHistory(total=LOG_SIZE)
# get the id of the newest log being archived
- rotate_revid = history[LOG_SIZE-1][0]
+ rotate_revid = history[LOG_SIZE - 1][0]
# append permalink
- log_text = log_text + (
- "\n\n'''[%s Older logs]'''"
- % self.log_page.permalink(oldid=rotate_revid))
+ log_text = log_text + ("\n\n'''[%s Older
logs]'''"
+ % self.log_page.permalink(oldid=rotate_revid))
return log_text
def run(self):
@@ -235,10 +234,10 @@
l = time.localtime()
today = "%04d-%02d-%02d" % l[:3]
- edit_request_page = pywikibot.Page(self.site,
- u"User:%(user)s/category edit requests" %
locals())
- datafile = pywikibot.config.datafilepath(
- "%s-catmovebot-data" % self.site.dbName())
+ edit_request_page = pywikibot.Page(
+ self.site, u"User:%(user)s/category edit requests" % locals())
+ datafile = pywikibot.config.datafilepath("%s-catmovebot-data"
+ % self.site.dbName())
try:
inp = open(datafile, "rb")
record = cPickle.load(inp)
@@ -252,7 +251,7 @@
template_list = self.site.family.category_redirect_templates[self.site.code]
except KeyError:
pywikibot.output(u"No redirect templates defined for %s"
- % self.site.sitename())
+ % self.site.sitename())
return
# regex to match soft category redirects
# note that any templates containing optional "category:" are
@@ -267,15 +266,13 @@
'template': "|".join(item.replace(" ",
"[ _]+")
for item in template_list),
'catns': self.site.namespace(14)},
- re.I|re.X)
+ re.I | re.X)
# check for hard-redirected categories that are not already marked
# with an appropriate template
comment = i18n.twtranslate(self.site.lang, self.redir_comment)
for page in pagegenerators.PreloadingGenerator(
- self.site.allpages(namespace=14, filterredir=True),
- step=250
- ):
+ self.site.allpages(namespace=14, filterredir=True), step=250):
# generator yields all hard redirect pages in namespace 14
if page.isCategoryRedirect():
# this is already a soft-redirect, so skip it (for now)
@@ -284,9 +281,8 @@
target = page.getRedirectTarget()
except pywikibot.CircularRedirect:
target = page
- problems.append(
- u"# %s is a self-linked redirect"
- % page.title(asLink=True, textlink=True))
+ problems.append(u"# %s is a self-linked redirect"
+ % page.title(asLink=True, textlink=True))
except RuntimeError:
# race condition: someone else removed the redirect while we
# were checking for it
@@ -299,18 +295,18 @@
try:
page.put(newtext, comment, minorEdit=True)
self.log_text.append(u"* Added {{tl|%s}} to %s"
- % (template_list[0],
- page.title(asLink=True, textlink=True)))
+ % (template_list[0],
+ page.title(asLink=True,
+ textlink=True)))
except pywikibot.Error, e:
- self.log_text.append(
- u"* Failed to add {{tl|%s}} to %s"
- % (template_list[0],
- page.title(asLink=True, textlink=True)))
+ self.log_text.append(u"* Failed to add {{tl|%s}} to %s"
+ % (template_list[0],
+ page.title(asLink=True,
+ textlink=True)))
else:
- problems.append(
- u"# %s is a hard redirect to %s"
- % (page.title(asLink=True, textlink=True),
- target.title(asLink=True, textlink=True)))
+ problems.append(u"# %s is a hard redirect to %s"
+ % (page.title(asLink=True, textlink=True),
+ target.title(asLink=True, textlink=True)))
pywikibot.output("Done checking hard-redirect category pages.")
@@ -318,15 +314,13 @@
counts, destmap, catmap = {}, {}, {}
catlist, nonemptypages = [], []
redircat = pywikibot.Category(
- pywikibot.Link(
- self.cat_redirect_cat[self.site.family.name]
- [self.site.code],
- self.site)
- )
+ pywikibot.Link(self.cat_redirect_cat
+ [self.site.family.name][self.site.code], self.site))
# get a list of all members of the category-redirect category
- catpages = dict((c, None) for c in
- self.site.categorymembers(redircat, namespaces=[14]))
+ catpages = dict((c, None)
+ for c in self.site.categorymembers(redircat,
+ namespaces=[14]))
# check the category pages for redirected categories
pywikibot.output(u"")
@@ -336,7 +330,7 @@
cat_title = cat.title(withNamespace=False)
if "category redirect" in cat_title:
self.log_text.append(u"* Ignoring %s"
- % cat.title(asLink=True, textlink=True))
+ % cat.title(asLink=True, textlink=True))
continue
if hasattr(cat, "_catinfo"):
# skip empty categories that don't return a "categoryinfo"
key
@@ -349,8 +343,8 @@
record[cat_title] = {today: None}
try:
newredirs.append("*# %s -> %s"
- % (cat.title(asLink=True, textlink=True),
- cat.getCategoryRedirectTarget().title(
+ % (cat.title(asLink=True, textlink=True),
+ cat.getCategoryRedirectTarget().title(
asLink=True, textlink=True)))
except pywikibot.Error:
pass
@@ -362,8 +356,8 @@
# delete record entries for non-existent categories
for cat_name in record.keys():
- if pywikibot.Category(self.site, self.catprefix + cat_name
- ) not in catpages:
+ if pywikibot.Category(self.site,
+ self.catprefix + cat_name) not in catpages:
del record[cat_name]
pywikibot.output(u"")
@@ -374,19 +368,18 @@
try:
if not cat.isCategoryRedirect():
self.log_text.append(u"* False positive: %s"
- % cat.title(asLink=True,
- textlink=True))
+ % cat.title(asLink=True,
+ textlink=True))
continue
except pywikibot.Error:
self.log_text.append(u"* Could not load %s; ignoring"
- % cat.title(asLink=True, textlink=True))
+ % cat.title(asLink=True, textlink=True))
continue
cat_title = cat.title(withNamespace=False)
if not self.readyToEdit(cat):
counts[cat_title] = None
- self.log_text.append(
- u"* Skipping %s; in cooldown period."
- % cat.title(asLink=True, textlink=True))
+ self.log_text.append(u"* Skipping %s; in cooldown period."
+ % cat.title(asLink=True, textlink=True))
continue
dest = cat.getCategoryRedirectTarget()
if not dest.exists():
@@ -404,8 +397,8 @@
double = dest.getCategoryRedirectTarget()
if double == dest or double == cat:
self.log_text.append(u"* Redirect loop from %s"
- % dest.title(asLink=True,
- textlink=True))
+ % dest.title(asLink=True,
+ textlink=True))
# do a null edit on cat
try:
cat.put(cat.get(get_redirect=True))
@@ -414,16 +407,16 @@
else:
self.log_text.append(
u"* Fixed double-redirect: %s -> %s -> %s"
- % (cat.title(asLink=True, textlink=True),
- dest.title(asLink=True, textlink=True),
- double.title(asLink=True, textlink=True)))
+ % (cat.title(asLink=True, textlink=True),
+ dest.title(asLink=True, textlink=True),
+ double.title(asLink=True, textlink=True)))
oldtext = cat.get(get_redirect=True)
# remove the old redirect from the old text,
# leaving behind any non-redirect text
oldtext = template_regex.sub("", oldtext)
newtext = (u"{{%(redirtemp)s|%(ncat)s}}"
- % {'redirtemp': template_list[0],
- 'ncat': double.title(withNamespace=False)})
+ % {'redirtemp': template_list[0],
+ 'ncat': double.title(withNamespace=False)})
newtext = newtext + oldtext.strip()
try:
cat.put(newtext,
@@ -462,7 +455,7 @@
problems.sort()
newredirs.sort()
self.log_page.put(u"\n==%i-%02i-%02iT%02i:%02i:%02iZ==\n"
- % time.gmtime()[:6]
+ % time.gmtime()[:6]
+ u"\n".join(self.log_text)
+ u"\n* New redirects since last report:\n"
+ u"\n".join(newredirs)
@@ -470,10 +463,10 @@
+ u"\n" + self.get_log_text())
if self.edit_requests:
edit_request_page.put(self.edit_request_text
- % {'itemlist':
- u"\n" + u"\n".join(
- (self.edit_request_item % item)
- for item in self.edit_requests)})
+ % {'itemlist': u"\n" +
u"\n".join(
+ (self.edit_request_item % item)
+ for item in self.edit_requests)})
+
def main(*args):
global bot
--
To view, visit
https://gerrit.wikimedia.org/r/80539
To unsubscribe, visit
https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: If86c7613d3daeb0cbbafef5bad4e8a42633a7c2e
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Xqt <info(a)gno.de>
Gerrit-Reviewer: Legoktm <legoktm.wikipedia(a)gmail.com>
Gerrit-Reviewer: jenkins-bot