Ricordisamoa has uploaded a new change for review. https://gerrit.wikimedia.org/r/148343
Change subject: refactor unusedfiles.py ...................................................................... refactor unusedfiles.py with a new UnusedFilesBot class that inherits .userPut() from pywikibot.Bot (with built-in 'always' option) Change-Id: Ib4272cf3009213300ac1d461fd18618dc260e925 --- M scripts/unusedfiles.py 1 file changed, 47 insertions(+), 49 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/pywikibot/core refs/changes/43/148343/1 diff --git a/scripts/unusedfiles.py b/scripts/unusedfiles.py index 55730f3..5f3525f 100644 --- a/scripts/unusedfiles.py +++ b/scripts/unusedfiles.py @@ -14,6 +14,7 @@ # (C) Leonardo Gregianin, 2007 # (C) Filnik, 2008 # (c) xqt, 2011-2014 +# (C) Pywikibot team, 2014 # # Distributed under the terms of the MIT license. # @@ -48,69 +49,66 @@ } -def appendtext(page, apptext, always): - if page.isRedirectPage(): - page = page.getRedirectTarget() - if not page.exists(): - if page.isTalkPage(): - text = u'' +class UnusedFilesBot(Bot): + def run(self): + generator = pagegenerators.UnusedFilesGenerator() + generator = pagegenerators.PreloadingGenerator(generator) + for image in generator: + if (except_text_translated.encode('utf-8') + not in image.getImagePageHtml() and + u'http://' not in image.text): + pywikibot.output(u"\n\n>>> \03{lightpurple}%s\03{default} <<<" + % image.title()) + if template_image in image.text: + pywikibot.output(u"%s done already" + % image.title(asLink=True)) + continue + appendtext(image, u"\n\n" + template_image, always) + uploader = image.getFileVersionHistory().pop(0)['user'] + user = pywikibot.User(mysite, uploader) + usertalkpage = user.getUserTalkPage() + msg2uploader = template_user % {'title': image.title()} + self.treat(usertalkpage, msg2uploader, always) + + def treat(self, page, apptext, always): + if page.isRedirectPage(): + page = page.getRedirectTarget() + if page.exists(): + text = page.text else: - raise pywikibot.NoPage(u"Page '%s' does not exist" % page.title()) - else: - text = page.text - # Here you can go editing. If you find you do not - # want to edit this page, just return - oldtext = text - text += apptext - if text != oldtext: - pywikibot.showDiff(oldtext, text) - if not always: - choice = pywikibot.inputChoice( - u'Do you want to accept these changes?', ['Yes', 'No', 'All'], - 'yNa', 'N') - if choice == 'a': - always = True - if always or choice == 'y': - page.text = text - page.save(i18n.translate(pywikibot.Site(), comment, - fallback=True)) + if page.isTalkPage(): + text = u'' + else: + raise pywikibot.NoPage(u"Page '%s' does not exist" % page.title()) + + # Here you can go editing. If you find you do not + # want to edit this page, just return + oldtext = text + text += apptext + comment = i18n.translate(page.site, comment, fallback=True) + self.userPut(page, oldtext, text, comment=comment) def main(): - always = False + options = {} for arg in pywikibot.handleArgs(): if arg == '-always': - always = True + options['always'] = True - mysite = pywikibot.Site() + site = pywikibot.Site() # If anything needs to be prepared, you can do it here - template_image = i18n.translate(pywikibot.Site(), + template_image = i18n.translate(site, template_to_the_image) - template_user = i18n.translate(pywikibot.Site(), + template_user = i18n.translate(site, template_to_the_user) - except_text_translated = i18n.translate(pywikibot.Site(), except_text) + except_text_translated = i18n.translate(site, except_text) if not(template_image and template_user and except_text_translated): pywikibot.warning(u'This script is not localized for %s site.' % mysite) return - generator = pagegenerators.UnusedFilesGenerator() - generator = pagegenerators.PreloadingGenerator(generator) - for image in generator: - if (except_text_translated.encode('utf-8') - not in image.getImagePageHtml() and - u'http://' not in image.text): - pywikibot.output(u"\n\n>>> \03{lightpurple}%s\03{default} <<<" - % image.title()) - if template_image in image.text: - pywikibot.output(u"%s done already" - % image.title(asLink=True)) - continue - appendtext(image, u"\n\n" + template_image, always) - uploader = image.getFileVersionHistory().pop(0)['user'] - user = pywikibot.User(mysite, uploader) - usertalkpage = user.getUserTalkPage() - msg2uploader = template_user % {'title': image.title()} - appendtext(usertalkpage, msg2uploader, always) + + bot = UnusedFilesBot(**options) + bot.run() if __name__ == "__main__": -- To view, visit https://gerrit.wikimedia.org/r/148343 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ib4272cf3009213300ac1d461fd18618dc260e925 Gerrit-PatchSet: 1 Gerrit-Project: pywikibot/core Gerrit-Branch: master Gerrit-Owner: Ricordisamoa <ricordisa...@openmailbox.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits