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 <valhall...@arctus.nl> Gerrit-Reviewer: Ladsgroup <ladsgr...@gmail.com> Gerrit-Reviewer: Xqt <i...@gno.de> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits