Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- # -*- coding: utf-8 -*-
- # Usage: ../pywikibot-core/pwb.py lowercase.py -titleregex:"^(iPad|iPod|iPhone|iOS) .*" -catr:"Category:iPod" -putthrottle:60
- # Result: https://commons.wikimedia.org/w/index.php?title=File:IPod_with_iTrip01.jpg&diff=prev&oldid=195144294
- # https://commons.wikimedia.org/w/index.php?title=File:IPod_2G.jpg&diff=prev&oldid=195144362
- from __future__ import absolute_import, unicode_literals
- import pywikibot
- from pywikibot import pagegenerators
- puttext = '{{lowercase title}}\n'
- putcomment = 'Use lowercase title due to the name'
- def isLowercase(page):
- pywikibot.output(u'Working on ' + page.title())
- for templateWithTrail in page.templates():
- # Strip of trailing garbage
- template = templateWithTrail.title().rstrip().lower()
- if template == "template:lowercase" or \
- template == "template:lowercase title":
- pywikibot.output('Already tagged with {}, skip it'.format(template))
- return False
- pywikibot.output(u'Not ignoring ' + page.title())
- return True
- def addLowercase(page):
- newtext = puttext + page.get()
- pywikibot.showDiff(page.get(), newtext)
- try:
- page.put(newtext, putcomment)
- except pywikibot.EditConflict:
- # Skip this page
- pass
- except pywikibot.LockedPage:
- # Skip this page
- pass
- return
- def main(*args):
- generator = None
- local_args = pywikibot.handle_args(args)
- site = pywikibot.Site('commons', 'commons')
- genFactory = pagegenerators.GeneratorFactory(site)
- for arg in local_args:
- genFactory.handleArg(arg)
- generator = genFactory.getCombinedGenerator(gen=generator)
- if not generator:
- pywikibot.bot.suggest_help(missing_generator=True)
- else:
- pregenerator = pagegenerators.PreloadingGenerator(generator)
- site.login()
- for page in pregenerator:
- if (page.exists() and (not page.isRedirectPage())
- and isLowercase(page)):
- addLowercase(page)
- pywikibot.output("")
- if __name__ == "__main__":
- main()
Add Comment
Please, Sign In to add comment