Revision: 4855 Author: filnik Date: 2008-01-12 12:50:31 +0000 (Sat, 12 Jan 2008)
Log Message: ----------- Some minor fixes, better written (I hope). The most important: Replaced all the print with wikipedia.output() and also added the italian message.
Modified Paths: -------------- trunk/pywikipedia/catall.py
Modified: trunk/pywikipedia/catall.py =================================================================== --- trunk/pywikipedia/catall.py 2008-01-12 12:20:37 UTC (rev 4854) +++ trunk/pywikipedia/catall.py 2008-01-12 12:50:31 UTC (rev 4855) @@ -2,32 +2,30 @@ """ Add or change categories on a number of pages. Usage: catall.py name - goes through pages, starting at 'name'. Provides - the categories on the page and asks whether to change them. If no - starting name is provided, the bot starts at 'A'. +the categories on the page and asks whether to change them. If no +starting name is provided, the bot starts at 'A'.
Options: -onlynew : Only run on pages that do not yet have a category. """ # # (C) Rob W.W. Hooft, Andre Engels, 2004 +# (C) Filnik, 2008 # # Distributed under the terms of the MIT license. # -__version__ = '$Id$' +__version__ = '$Id: catall.py,v 1.5 2008/01/12 12:49:25 filnik Exp$' #
-import wikipedia,sys +import wikipedia, sys
-# This is a purely interactive robot. We set the delays lower. -wikipedia.get_throttle.setDelay(5) -wikipedia.put_throttle.setDelay(10) - -msg={ +msg = { 'en':u'Bot: Changing categories', 'he':u'Bot: משנה קטגוריות', 'fr':u'Bot: Change categories', 'he':u'בוט: משנה קטגוריות', 'ia':u'Bot: Alteration de categorias', + 'it':u'Bot: Cambio categorie', 'ja':u'ロボットによる: カテゴリ変更', 'lt':u'robotas: Keičiamos kategorijos', 'nl':u'Bot: Verandering van categorieen', @@ -38,35 +36,36 @@ }
def choosecats(pagetext): - chosen=[] - flag=False - length=1000 - print ("Give the new categories, one per line.") - print ("Empty line: if the first, don't change. Otherwise: Ready.") - print ("-: I made a mistake, let me start over.") - print ("?: Give the text of the page with GUI.") - print ("??: Give the text of the page in console.") - print ("xx: if the first, remove all categories and add no new.") - print ("q: quit.") + chosen = [] + flag = False + length = 1000 + textToPrint = """Give the new categories, one per line. +Empty line: if the first, don't change. Otherwise: Ready. +-: I made a mistake, let me start over. +?: Give the text of the page with GUI. +??: Give the text of the page in console. +xx: if the first, remove all categories and add no new. +q: quit.""" + wikipedia.output(textToPrint) while flag == False: - choice=wikipedia.input(u"?") - if choice=="": - flag=True - elif choice=="-": - chosen=choosecats(pagetext) - flag=True - elif choice=="?": + choice = wikipedia.input(u"\nSo, what do you want to do?") + if choice == "": + flag = True + elif choice == "-": + chosen = choosecats(pagetext) + flag = True + elif choice == "?": import editarticle editor = editarticle.TextEditor() newtext = editor.edit(pagetext) - elif choice =="??": + elif choice == "??": wikipedia.output(pagetext[0:length]) length = length+500 - elif choice=="xx" and chosen==[]: + elif choice== "xx" and chosen == []: chosen = None - flag=True - elif choice=="q": - print "quit..." + flag = True + elif choice == "q": + wikipedia.output("quit...") sys.exit() else: chosen.append(choice) @@ -75,37 +74,39 @@ def make_categories(page, list, site = None): if site is None: site = wikipedia.getSite() - pllist=[] + pllist = [] for p in list: - cattitle="%s:%s" % (site.category_namespace(), p) + cattitle = "%s:%s" % (site.category_namespace(), p) pllist.append(wikipedia.Page(site,cattitle)) page.put(wikipedia.replaceCategoryLinks(page.get(), pllist), comment = wikipedia.translate(site.lang, msg))
-docorrections=True -start=[] +try: + # This is a purely interactive robot. We set the delays lower. + wikipedia.get_throttle.setDelay(5) + wikipedia.put_throttle.setDelay(10) + docorrections=True + start = []
-for arg in wikipedia.handleArgs(): - if arg == '-onlynew': - docorrections=False + for arg in wikipedia.handleArgs(): + if arg == '-onlynew': + docorrections=False + else: + start.append(arg) + + if start == []: + start = 'A' else: - start.append(arg) + start = ' '.join(start)
-if start == []: - start='A' -else: - start=' '.join(start) - -mysite = wikipedia.getSite() - -try: + mysite = wikipedia.getSite() for p in mysite.allpages(start = start): try: - text=p.get() - cats=p.categories() + text = p.get() + cats = p.categories() if cats == []: wikipedia.output(u"========== %s ==========" % p.title()) - print "No categories" - print "----------------------------------------" + wikipedia.output("No categories") + wikipedia.output("----------------------------------------") newcats=choosecats(text) if newcats != [] and newcats is not None: make_categories(p, newcats, mysite) @@ -113,14 +114,15 @@ if docorrections: wikipedia.output(u"========== %s ==========" % p.title()) for c in cats: - print c.title() - print "----------------------------------------" + wikipedia.output(c.title()) + wikipedia.output("----------------------------------------" newcats=choosecats(text) if newcats == None: make_categories(p, [], mysite) elif newcats != []: make_categories(p, newcats, mysite) except wikipedia.IsRedirectPage: - pass + wikipedia.output(u'%s is a redirect, skip...' % p.title()) + continue finally: wikipedia.stopme()