Mpaa has uploaded a new change for review. https://gerrit.wikimedia.org/r/214487
Change subject: template.py: solve -cat argument conflict ...................................................................... template.py: solve -cat argument conflict Solve conflict with -category param, renaming it -addcat. Fixes also issues with - bot.site in template.py - addedCat in ReplaceRobot Bug: T100522 Change-Id: I3c2176667b8ba8492fe59299ee7732c40e34f7fc --- M scripts/replace.py M scripts/template.py 2 files changed, 22 insertions(+), 15 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/pywikibot/core refs/changes/87/214487/1 diff --git a/scripts/replace.py b/scripts/replace.py index b815609..2aa2d34 100755 --- a/scripts/replace.py +++ b/scripts/replace.py @@ -425,6 +425,7 @@ replaced. * addedCat - If set to a value, add this category to every page touched. + It can be a string or a Category object. Structure of the exceptions dictionary: This dictionary can have these keys: @@ -462,10 +463,13 @@ self.recursive = recursive if site: self.site = site + if addedCat: - cat_ns = site.category_namespaces()[0] - self.addedCat = pywikibot.Page(self.site, - cat_ns + ':' + addedCat) + if isinstance(addedCat, pywikibot.Category): + self.addedCat = addedCat + else: + self.addedCat = pywikibot.Category(self.site, addedCat) + self.sleep = sleep self.summary = summary self.changed_pages = 0 @@ -595,8 +599,10 @@ pywikibot.output(u'No changes were necessary in %s' % page.title(asLink=True)) break - if hasattr(self, "addedCat"): - cats = page.categories(nofollow_redirects=True) + if hasattr(self, 'addedCat'): + # Fetch only categories in wikitext, otherwise the others will + # be explicitly added. + cats = textlib.getCategoryLinks(original_text) if self.addedCat not in cats: cats.append(self.addedCat) new_text = textlib.replaceCategoryLinks(new_text, diff --git a/scripts/template.py b/scripts/template.py index 999b22f..7c406cd 100755 --- a/scripts/template.py +++ b/scripts/template.py @@ -44,7 +44,7 @@ -always Don't bother asking to confirm any of the changes, Just Do It. --category: Appends the given category to every page that is edited. This is +-addcat: Appends the given category to every page that is edited. This is useful when a category is being broken out from a template parameter or when templates are being upmerged but more information must be preserved. @@ -218,11 +218,11 @@ self.generator = generator self.templates = templates - site = pywikibot.Site() + self.site = pywikibot.Site() if self.getOption('addedCat'): - self.options['addedCat'] = pywikibot.Category(site, self.getOption('addedCat')) + self.options['addedCat'] = pywikibot.Category(self.site, self.getOption('addedCat')) - comma = site.mediawiki_message('comma-separator') + comma = self.site.mediawiki_message('comma-separator') # get edit summary message if it's empty if not self.getOption('summary'): @@ -230,13 +230,13 @@ 'num': len(self.templates)} if self.getOption('remove'): self.options['summary'] = i18n.twntranslate( - site, 'template-removing', params) + self.site, 'template-removing', params) elif self.getOption('subst'): self.options['summary'] = i18n.twntranslate( - site, 'template-substituting', params) + self.site, 'template-substituting', params) else: self.options['summary'] = i18n.twntranslate( - site, 'template-changing', params) + self.site, 'template-changing', params) def run(self): """Start the robot's action.""" @@ -286,7 +286,8 @@ replaceBot = replace.ReplaceRobot(self.generator, replacements, exceptions, acceptall=self.getOption('always'), addedCat=self.getOption('addedCat'), - summary=self.getOption('summary')) + summary=self.getOption('summary'), + site=self.site) replaceBot.run() @@ -327,8 +328,8 @@ u'Please enter the XML dump\'s filename: ') else: xmlfilename = arg[5:] - elif arg.startswith('-category:'): - options['addedCat'] = arg[len('-category:'):] + elif arg.startswith('-addcat:'): + options['addedCat'] = arg[len('-addcat:'):] elif arg.startswith('-summary:'): options['summary'] = arg[len('-summary:'):] elif arg.startswith('-user:'): -- To view, visit https://gerrit.wikimedia.org/r/214487 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I3c2176667b8ba8492fe59299ee7732c40e34f7fc Gerrit-PatchSet: 1 Gerrit-Project: pywikibot/core Gerrit-Branch: master Gerrit-Owner: Mpaa <mpaa.w...@gmail.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits