def generator(self): # Choose which generator to use according to options. pagegen = None if self.__workonnew: if not self.__number: self.__number = config.special_page_limit pagegen = pagegenerators.NewpagesPageGenerator(number = self.__number) elif self.__refpagetitle: refpage = wikipedia.Page(wikipedia.getSite(), self.__refpagetitle) pagegen = pagegenerators.ReferringPageGenerator(refpage) elif self.__linkpagetitle: linkpage = wikipedia.Page(wikipedia.getSite(), self.__linkpagetitle) pagegen = pagegenerators.LinkedPageGenerator(linkpage) elif self.__catname: cat = catlib.Category(wikipedia.getSite(), 'Category:%s' % self.__catname) if self.__start: pagegen = pagegenerators.CategorizedPageGenerator(cat, recurse = self.__catrecurse, start = self.__start) else: pagegen = pagegenerators.CategorizedPageGenerator(cat, recurse = self.__catrecurse) elif self.__textfile: pagegen = pagegenerators.TextfilePageGenerator(self.__textfile) else: if not self.__start: self.__start = '!' namespace = wikipedia.Page(wikipedia.getSite(), self.__start).namespace() start = wikipedia.Page(wikipedia.getSite(), self.__start).titleWithoutNamespace() pagegen = pagegenerators.AllpagesPageGenerator(start, namespace) return pagegen
elif arg.startswith('-start:'): start = wikipedia.Page(wikipedia.getSite(), arg[7:]) gen = pagegenerators.AllpagesPageGenerator( start.titleWithoutNamespace(), namespace=start.namespace(), includeredirects=False) elif arg.startswith('-cat:'): cat = catlib.Category(wikipedia.getSite(), 'Category:%s' % arg[5:]) gen = pagegenerators.CategorizedPageGenerator(cat) elif arg.startswith('-ref:'): ref = wikipedia.Page(wikipedia.getSite(), arg[5:]) gen = pagegenerators.ReferringPageGenerator(ref) elif arg.startswith('-link:'): link = wikipedia.Page(wikipedia.getSite(), arg[6:]) gen = pagegenerators.LinkedPageGenerator(link) elif arg.startswith('-page:'): singlepage = wikipedia.Page(wikipedia.getSite(), arg[6:]) gen = iter([singlepage]) #else: #bug if action == 'pages': preloadingGen = pagegenerators.PreloadingGenerator(gen) bot = CommonsLinkBot(preloadingGen, acceptall=False) bot.pages() elif action == 'categories': preloadingGen = pagegenerators.PreloadingGenerator(gen) bot = CommonsLinkBot(preloadingGen, acceptall=False) bot.categories() else:
def main(): pageName = '' singlePage = '' summary = '' always = False doSinglePage = False doCategory = False deleteSubcategories = True doRef = False doLinks = False doImages = False undelete = False fileName = '' gen = None # read command line parameters for arg in pywikibot.handleArgs(): if arg == '-always': always = True elif arg.startswith('-file'): if len(arg) == len('-file'): fileName = pywikibot.input( u'Enter name of file to delete pages from:') else: fileName = arg[len('-file:'):] elif arg.startswith('-summary'): if len(arg) == len('-summary'): summary = pywikibot.input(u'Enter a reason for the deletion:') else: summary = arg[len('-summary:'):] elif arg.startswith('-cat'): doCategory = True if len(arg) == len('-cat'): pageName = pywikibot.input( u'Enter the category to delete from:') else: pageName = arg[len('-cat:'):] elif arg.startswith('-nosubcats'): deleteSubcategories = False elif arg.startswith('-links'): doLinks = True if len(arg) == len('-links'): pageName = pywikibot.input(u'Enter the page to delete from:') else: pageName = arg[len('-links:'):] elif arg.startswith('-ref'): doRef = True if len(arg) == len('-ref'): pageName = pywikibot.input(u'Enter the page to delete from:') else: pageName = arg[len('-ref:'):] elif arg.startswith('-page'): doSinglePage = True if len(arg) == len('-page'): pageName = pywikibot.input(u'Enter the page to delete:') else: pageName = arg[len('-page:'):] elif arg.startswith('-images'): doImages = True if len(arg) == len('-images'): pageName = pywikibot.input( u'Enter the page with the images to delete:') else: pageName = arg[len('-images'):] elif arg.startswith('-undelete'): undelete = True mysite = pywikibot.getSite() if doSinglePage: if not summary: summary = pywikibot.input(u'Enter a reason for the deletion:') page = pywikibot.Page(mysite, pageName) gen = iter([page]) elif doCategory: if not summary: summary = pywikibot.translate(mysite, msg_delete_category) \ % pageName ns = mysite.category_namespace() categoryPage = catlib.Category(mysite, ns + ':' + pageName) gen = pagegenerators.CategorizedPageGenerator( categoryPage, recurse=deleteSubcategories) elif doLinks: if not summary: summary = pywikibot.translate(mysite, msg_delete_links) % pageName pywikibot.setAction(summary) linksPage = pywikibot.Page(mysite, pageName) gen = pagegenerators.LinkedPageGenerator(linksPage) elif doRef: if not summary: summary = pywikibot.translate(mysite, msg_delete_ref) % pageName refPage = pywikibot.Page(mysite, pageName) gen = pagegenerators.ReferringPageGenerator(refPage) elif fileName: if not summary: summary = pywikibot.translate(mysite, msg_simple_delete) gen = pagegenerators.TextfilePageGenerator(fileName) elif doImages: if not summary: summary = pywikibot.translate(mysite, msg_delete_images) gen = pagegenerators.ImagesPageGenerator( pywikibot.Page(mysite, pageName)) if gen: pywikibot.setAction(summary) # We are just deleting pages, so we have no need of using a preloading page generator # to actually get the text of those pages. bot = DeletionRobot(gen, summary, always, undelete) bot.run() else: pywikibot.showHelp(u'delete')
def main(): global protectionLevels protectionLevels = ['sysop', 'autoconfirmed', 'none'] pageName = '' summary = '' always = False doSinglePage = False doCategory = False protectSubcategories = True doRef = False doLinks = False doImages = False fileName = '' gen = None edit = '' move = '' defaultProtection = 'sysop' # read command line parameters for arg in wikipedia.handleArgs(): if arg == '-always': always = True elif arg.startswith('-file'): if len(arg) == len('-file'): fileName = wikipedia.input( u'Enter name of file to protect pages from:') else: fileName = arg[len('-file:'):] elif arg.startswith('-summary'): if len(arg) == len('-summary'): summary = wikipedia.input( u'Enter a reason for the protection:') else: summary = arg[len('-summary:'):] elif arg.startswith('-cat'): doCategory = True if len(arg) == len('-cat'): pageName = wikipedia.input( u'Enter the category to protect from:') else: pageName = arg[len('-cat:'):] elif arg.startswith('-nosubcats'): protectSubcategories = False elif arg.startswith('-links'): doLinks = True if len(arg) == len('-links'): pageName = wikipedia.input(u'Enter the page to protect from:') else: pageName = arg[len('-links:'):] elif arg.startswith('-ref'): doRef = True if len(arg) == len('-ref'): pageName = wikipedia.input(u'Enter the page to protect from:') else: pageName = arg[len('-ref:'):] elif arg.startswith('-page'): doSinglePage = True if len(arg) == len('-page'): pageName = wikipedia.input(u'Enter the page to protect:') else: pageName = arg[len('-page:'):] elif arg.startswith('-images'): doImages = True if len(arg) == len('-images'): pageName = wikipedia.input( u'Enter the page with the images to protect:') else: pageName = arg[len('-images:'):] elif arg.startswith('-unprotect'): defaultProtection = 'none' elif arg.startswith('-edit'): edit = arg[len('-edit:'):] if edit not in protectionLevels: edit = choiceProtectionLevel('edit', defaultProtection) elif arg.startswith('-move'): move = arg[len('-move:'):] if move not in protectionLevels: move = choiceProtectionLevel('move', defaultProtection) elif arg.startswith('-create'): create = arg[len('-create:'):] if create not in protectionLevels: create = choiceProtectionLevel('create', defaultProtection) mysite = wikipedia.getSite() if doSinglePage: if not summary: summary = wikipedia.input(u'Enter a reason for the protection:') page = wikipedia.Page(mysite, pageName) gen = iter([page]) elif doCategory: if not summary: summary = wikipedia.translate(mysite, msg_protect_category) % pageName ns = mysite.category_namespace() categoryPage = catlib.Category(mysite, ns + ':' + pageName) gen = pagegenerators.CategorizedPageGenerator( categoryPage, recurse=protectSubcategories) elif doLinks: if not summary: summary = wikipedia.translate(mysite, msg_protect_links) % pageName linksPage = wikipedia.Page(mysite, pageName) gen = pagegenerators.LinkedPageGenerator(linksPage) elif doRef: if not summary: summary = wikipedia.translate(mysite, msg_protect_ref) % pageName refPage = wikipedia.Page(mysite, pageName) gen = pagegenerators.ReferringPageGenerator(refPage) elif fileName: if not summary: summary = wikipedia.translate(mysite, msg_simple_protect) gen = pagegenerators.TextfilePageGenerator(fileName) elif doImages: if not summary: summary = wikipedia.translate(mysite, msg_protect_images) % pageName gen = pagegenerators.ImagesPageGenerator( wikipedia.Page(mysite, pageName)) if gen: wikipedia.setAction(summary) # We are just protecting pages, so we have no need of using a preloading page generator # to actually get the text of those pages. if not edit: edit = defaultProtection if not move: move = defaultProtection bot = ProtectionRobot(gen, summary, always, edit=edit, move=move) bot.run() else: wikipedia.showHelp(u'protect')