jenkins-bot has submitted this change and it was merged.
Change subject: replicate_wiki: fix check_sysops
......................................................................
replicate_wiki: fix check_sysops
Change-Id: Id8b1655a6c0cec63b1b5e7f3a8b8169647224eee
---
M scripts/replicate_wiki.py
1 file changed, 15 insertions(+), 19 deletions(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/scripts/replicate_wiki.py b/scripts/replicate_wiki.py
index bdd6171..f8d2c30 100644
--- a/scripts/replicate_wiki.py
+++ b/scripts/replicate_wiki.py
@@ -27,7 +27,6 @@
#
import sys
-import re
from pywikibot import *
from itertools import imap
@@ -65,6 +64,7 @@
sites = options.destination_wiki
self.original = Site(original_wiki, family)
+ self.original.login()
if options.namespace and 'help' in options.namespace:
nsd = namespaces(self.original)
@@ -78,28 +78,24 @@
self.user_diff = {}
pywikibot.output('Syncing to', newline=False)
for s in self.sites:
+ s.login()
self.differences[s] = []
self.user_diff[s] = []
pywikibot.output(str(s), newline=False)
pywikibot.output('')
def check_sysops(self):
- '''Check if sysops are the same
+ '''Check if sysops are the same on all wikis '''
+ def get_users(site):
+ userlist = [ul['name'] for ul in
site.allusers(group='sysop')]
+ return set(userlist)
- TODO: implement for API and make optional
- '''
- #def get_users(site):
- # userlist =
site.getUrl(site.get_address('Special:Userlist&group=sysop'))
- # # Hackery but working. At least on MW 1.15.0
- # # User namespace is number 2
- # return set(re.findall(site.namespace(2) + ':(\w+)["\&]',
userlist))
- #
- #ref_users = get_users(self.original)
- #for site in self.sites:
- # users = get_users(site)
- # diff = list(ref_users.difference(users))
- # diff.sort()
- # self.user_diff[site] = diff
+ ref_users = get_users(self.original)
+ for site in self.sites:
+ users = get_users(site)
+ diff = list(ref_users.difference(users))
+ diff.sort()
+ self.user_diff[site] = diff
def check_namespaces(self):
'''Check all namespaces, to be ditched for clarity'''
@@ -142,7 +138,7 @@
def generate_overviews(self):
'''Create page on wikis with overview of bot results'''
for site in self.sites:
- sync_overview_page = Page(site, 'User:' + site.loggedInAs() +
'/sync.py overview')
+ sync_overview_page = Page(site, 'User:' + site.user() + '/sync.py
overview')
output = "== Pages that differ from original ==\n\n"
if self.differences[site]:
output += "".join(map(lambda l: '* [[:' + l +
"]]\n", self.differences[site]))
@@ -159,7 +155,7 @@
sync_overview_page.put(output, self.put_message(site))
def put_message(self, site):
- return site.loggedInAs() + ' sync.py synchronization from ' +
str(self.original)
+ return site.user() + ' replicate_wiki.py synchronization from ' +
str(self.original)
def check_page(self, pagename):
'''Check one page'''
@@ -215,7 +211,7 @@
help="actually replace pages (without this option you will
only get an overview page)")
parser.add_argument("-o", "--original",
dest="original_wiki",
help="original wiki")
- parser.add_argument('destination_wiki', metavar='N', type=str,
nargs='+',
+ parser.add_argument('destination_wiki', metavar='destination',
type=str, nargs='+',
help='destination wiki(s)')
parser.add_argument("-ns", "--namespace",
dest="namespace",
help="specify namespace")
--
To view, visit
https://gerrit.wikimedia.org/r/132806
To unsubscribe, visit
https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Id8b1655a6c0cec63b1b5e7f3a8b8169647224eee
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot <>