jenkins-bot has submitted this change and it was merged.
Change subject: Code improvements of revertbot
......................................................................
Code improvements of revertbot
- Adding option of "username" so you can revert edits of another one
- Adding some documentation
- Using page.text and page.save instead of page.put()
Change-Id: Id3d532638d6b09ce45a599d2c910dda09eb7b6a4
---
M scripts/revertbot.py
1 file changed, 29 insertions(+), 9 deletions(-)
Approvals:
Ricordisamoa: Looks good to me, approved
jenkins-bot: Verified
diff --git a/scripts/revertbot.py b/scripts/revertbot.py
index e23dfee..2d2caf3 100644
--- a/scripts/revertbot.py
+++ b/scripts/revertbot.py
@@ -1,6 +1,13 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
+This script can be used for reverting certain edits.
+
+The following command line parameters are supported:
+
+¶ms;
+
+-username Edits of which user need to be reverted.
"""
#
# (C) Bryan Tong Minh, 2008
@@ -17,6 +24,11 @@
import re
import pywikibot
from pywikibot import i18n
+from pywikibot import pagegenerators
+
+docuReplacements = {
+ '¶ms;': pagegenerators.parameterHelp
+}
class BaseRevertBot(object):
@@ -25,9 +37,12 @@
Subclass this bot and override callback to get it to do something useful.
"""
- def __init__(self, site, comment=None):
+ def __init__(self, site, user=None, comment=None):
self.site = site
self.comment = comment
+ self.user = user
+ if not self.user:
+ self.user = self.site.username()
def get_contributions(self, max=500, ns=None):
count = 0
@@ -38,7 +53,7 @@
item = iterator.next()
except StopIteration:
self.log(u'Fetching new batch of contributions')
- data = list(pywikibot.Site().usercontribs(user=self.site.username(),
namespaces=ns, total=max))
+ data = list(pywikibot.Site().usercontribs(user=self.user, namespaces=ns,
total=max))
never_continue = True
iterator = iter(data)
else:
@@ -46,7 +61,6 @@
yield item
def revert_contribs(self, callback=None):
- self.site.forceLogin()
if callback is None:
callback = self.callback
@@ -83,10 +97,10 @@
pywikibot.output(u"\n\n>>> \03{lightpurple}%s\03{default}
<<<"
% page.title(asLink=True, forceInterwiki=True,
textlink=True))
- old = page.get()
- new = rev[3]
- pywikibot.showDiff(old, new)
- page.put(new, comment)
+ old = page.text
+ page.text = rev[3]
+ pywikibot.showDiff(old, page.text)
+ page.save(comment)
return comment
def log(self, msg):
@@ -105,9 +119,15 @@
def main():
+ user = None
for arg in pywikibot.handleArgs():
- continue
- bot = myRevertBot(site=pywikibot.Site())
+ if arg.startswith('-username'):
+ if len(arg) == 9:
+ user = pywikibot.input(
+ u'Please enter username of the person you want to revert:')
+ else:
+ user = arg[10:]
+ bot = myRevertBot(site=pywikibot.Site(), user=user)
bot.revert_contribs()
if __name__ == "__main__":
--
To view, visit
https://gerrit.wikimedia.org/r/138809
To unsubscribe, visit
https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Id3d532638d6b09ce45a599d2c910dda09eb7b6a4
Gerrit-PatchSet: 6
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: John Vandenberg <jayvdb(a)gmail.com>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: Ricordisamoa <ricordisamoa(a)openmailbox.org>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot <>