Revision: 8629
Author: xqt
Date: 2010-10-09 16:11:46 +0000 (Sat, 09 Oct 2010)
Log Message:
-----------
import wikipedia as pywikibot for merging to rewrite
Modified Paths:
--------------
trunk/pywikipedia/copyright.py
trunk/pywikipedia/lonelypages.py
trunk/pywikipedia/makecat.py
trunk/pywikipedia/misspelling.py
trunk/pywikipedia/movepages.py
trunk/pywikipedia/pagefromfile.py
trunk/pywikipedia/pageimport.py
trunk/pywikipedia/piper.py
trunk/pywikipedia/protect.py
trunk/pywikipedia/rciw.py
trunk/pywikipedia/rcsort.py
Modified: trunk/pywikipedia/copyright.py
===================================================================
--- trunk/pywikipedia/copyright.py 2010-10-09 05:02:29 UTC (rev 8628)
+++ trunk/pywikipedia/copyright.py 2010-10-09 16:11:46 UTC (rev 8629)
@@ -638,7 +638,7 @@
consecutive = False
continue
n_query += 1
- #wikipedia.output(search_words)
+ #pywikibot.output(search_words)
if config.copyright_max_query_for_page and n_query >
config.copyright_max_query_for_page:
warn(u"Max query limit for page reached")
return output
@@ -845,7 +845,7 @@
def get_results(self, query, numresults = 10):
result_list = list()
query = re.sub("[()\"<>]", "", query)
- # wikipedia.output(query)
+ # pywikibot.output(query)
if config.copyright_google:
self.soap('google', query, result_list)
if config.copyright_yahoo:
Modified: trunk/pywikipedia/lonelypages.py
===================================================================
--- trunk/pywikipedia/lonelypages.py 2010-10-09 05:02:29 UTC (rev 8628)
+++ trunk/pywikipedia/lonelypages.py 2010-10-09 16:11:46 UTC (rev 8629)
@@ -46,7 +46,8 @@
__version__ = '$Id: lonelypages.py,v 1.0 2007/12/28 19.16.00 filnik Exp$'
#
-import wikipedia, pagegenerators
+import wikipedia as pywikibot
+import pagegenerators
import re
# This is required for the text that is shown when you run this script
@@ -115,20 +116,20 @@
always = False # Check variable for always
disambigPage = None # If no disambigPage given, not use it.
# Arguments!
- for arg in wikipedia.handleArgs():
+ for arg in pywikibot.handleArgs():
if arg.startswith('-enable'):
if len(arg) == 7:
- enablePage = wikipedia.input(u'Would you like to check if the bot
should run or not?')
+ enablePage = pywikibot.input(u'Would you like to check if the bot
should run or not?')
else:
enablePage = arg[8:]
if arg.startswith('-disambig'):
if len(arg) == 9:
- disambigPage = wikipedia.input(u'In which page should the bot save
the disambig pages?')
+ disambigPage = pywikibot.input(u'In which page should the bot save
the disambig pages?')
else:
disambigPage = arg[10:]
elif arg.startswith('-limit'):
if len(arg) == 6:
- limit = int(wikipedia.input(u'How many pages do you want to
check?'))
+ limit = int(pywikibot.input(u'How many pages do you want to
check?'))
else:
limit = int(arg[7:])
elif arg.startswith('-newpages'):
@@ -136,14 +137,14 @@
nwlimit = 50 # Default: 50 pages
else:
nwlimit = int(arg[10:])
- generator = wikipedia.getSite().newpages(number = nwlimit)
+ generator = pywikibot.getSite().newpages(number = nwlimit)
nwpages = True
elif arg == '-always':
always = True
else:
genFactory.handleArg(arg)
# Retrive the site
- wikiSite = wikipedia.getSite()
+ wikiSite = pywikibot.getSite()
if not generator:
generator = genFactory.getCombinedGenerator()
@@ -152,49 +153,49 @@
if not generator:
generator = wikiSite.lonelypages(repeat = True, number = limit)
# Take the configurations according to our project
- comment = wikipedia.translate(wikiSite, commento)
- commentdisambig = wikipedia.translate(wikiSite, commenttodisambig)
- template = wikipedia.translate(wikiSite, Template)
- exception = wikipedia.translate(wikiSite, exception)
+ comment = pywikibot.translate(wikiSite, commento)
+ commentdisambig = pywikibot.translate(wikiSite, commenttodisambig)
+ template = pywikibot.translate(wikiSite, Template)
+ exception = pywikibot.translate(wikiSite, exception)
# EnablePage part
if enablePage != None:
# Define the Page Object
- enable = wikipedia.Page(wikiSite, enablePage)
+ enable = pywikibot.Page(wikiSite, enablePage)
# Loading the page's data
try:
getenable = enable.get()
- except wikipedia.NoPage:
- wikipedia.output(u"%s doesn't esist, I use the page as if it was
blank!" % enable.title())
+ except pywikibot.NoPage:
+ pywikibot.output(u"%s doesn't esist, I use the page as if it was
blank!" % enable.title())
getenable = ''
except wikiepedia.IsRedirect:
- wikipedia.output(u"%s is a redirect, skip!" % enable.title())
+ pywikibot.output(u"%s is a redirect, skip!" % enable.title())
getenable = ''
# If the enable page is set to disable, turn off the bot
# (useful when the bot is run on a server)
if getenable != 'enable':
- wikipedia.output('The bot is disabled')
+ pywikibot.output('The bot is disabled')
return
# DisambigPage part
if disambigPage != None:
- disambigpage = wikipedia.Page(wikiSite, disambigPage)
+ disambigpage = pywikibot.Page(wikiSite, disambigPage)
try:
disambigtext = disambigpage.get()
- except wikipedia.NoPage:
- wikipedia.output(u"%s doesn't esist, skip!" %
disambigpage.title())
+ except pywikibot.NoPage:
+ pywikibot.output(u"%s doesn't esist, skip!" %
disambigpage.title())
disambigtext = ''
except wikiepedia.IsRedirect:
- wikipedia.output(u"%s is a redirect, don't use it!" %
disambigpage.title())
+ pywikibot.output(u"%s is a redirect, don't use it!" %
disambigpage.title())
disambigPage = None
# Main Loop
for page in generator:
if nwpages == True:
page = page[0] # The newpages generator returns a tuple, not a Page object.
- wikipedia.output(u"Checking %s..." % page.title())
+ pywikibot.output(u"Checking %s..." % page.title())
# Used to skip the first pages in test phase...
#if page.title()[0] in ['A', 'B', 'C', 'D',
'E', 'F', 'G', 'H', 'I', 'J', 'K',
'L', 'M', 'N', 'O', 'P', 'Q']:
#continue
if page.isRedirectPage(): # If redirect, skip!
- wikipedia.output(u'%s is a redirect! Skip...' % page.title())
+ pywikibot.output(u'%s is a redirect! Skip...' % page.title())
continue
# refs is not a list, it's a generator while resList... is a list, yes.
refs = page.getReferences()
@@ -202,27 +203,27 @@
for j in refs:
if j == None:
# We have to find out why the function returns that value
- wikipedia.output(u'Error: 1 --> Skip page')
+ pywikibot.output(u'Error: 1 --> Skip page')
continue
refsList.append(j)
# This isn't possible with a generator
if refsList != []:
- wikipedia.output(u"%s isn't orphan! Skip..." % page.title())
+ pywikibot.output(u"%s isn't orphan! Skip..." % page.title())
continue
# Never understood how a list can turn in "None", but it happened :-S
elif refsList == None:
# We have to find out why the function returns that value
- wikipedia.output(u'Error: 2 --> Skip page')
+ pywikibot.output(u'Error: 2 --> Skip page')
continue
else:
# Ok, no refs, no redirect... let's check if there's already the
template
try:
oldtxt = page.get()
- except wikipedia.NoPage:
- wikipedia.output(u"%s doesn't exist! Skip..." %
page.title())
+ except pywikibot.NoPage:
+ pywikibot.output(u"%s doesn't exist! Skip..." %
page.title())
continue
- except wikipedia.IsRedirectPage:
- wikipedia.output(u"%s is a redirect! Skip..." % page.title())
+ except pywikibot.IsRedirectPage:
+ pywikibot.output(u"%s is a redirect! Skip..." % page.title())
continue
# I've used a loop in a loop. If I use continue in the second loop, it
won't do anything
# in the first. So let's create a variable to avoid this problem.
@@ -231,7 +232,7 @@
res = re.findall(regexp, oldtxt.lower())
# Found a template! Let's skip the page!
if res != []:
- wikipedia.output(u'Your regex has found something in %s,
skipping...' % page.title())
+ pywikibot.output(u'Your regex has found something in %s,
skipping...' % page.title())
Find = True
break
# Skip the page..
@@ -239,34 +240,34 @@
continue
# Is the page a disambig?
if page.isDisambig() and disambigPage != None:
- wikipedia.output(u'%s is a disambig page, report..' %
page.title())
+ pywikibot.output(u'%s is a disambig page, report..' %
page.title())
if not page.title().lower() in disambigtext.lower():
disambigtext = u"%s\n*[[%s]]" % (disambigtext,
page.title())
disambigpage.put(disambigtext, commentdisambig)
continue
# Is the page a disambig but there's not disambigPage? Skip!
elif page.isDisambig():
- wikipedia.output(u'%s is a disambig page, skip...' %
page.title())
+ pywikibot.output(u'%s is a disambig page, skip...' %
page.title())
continue
else:
# Ok, the page need the template. Let's put it there!
newtxt = u"%s\n%s" % (template, oldtxt) # Adding the template
in the text
- wikipedia.output(u"\t\t>>> %s <<<" %
page.title()) # Showing the title
- wikipedia.showDiff(oldtxt, newtxt) # Showing the changes
+ pywikibot.output(u"\t\t>>> %s <<<" %
page.title()) # Showing the title
+ pywikibot.showDiff(oldtxt, newtxt) # Showing the changes
choice = 'y' # Default answer
if not always:
- choice = wikipedia.inputChoice(u'Orphan page found, shall I add
the template?', ['Yes', 'No', 'All'], ['y',
'n', 'a'])
+ choice = pywikibot.inputChoice(u'Orphan page found, shall I add
the template?', ['Yes', 'No', 'All'], ['y',
'n', 'a'])
if choice == 'a':
always = True
choice = 'y'
if choice == 'y':
try:
page.put(newtxt, comment)
- except wikipedia.EditConflict:
- wikipedia.output(u'Edit Conflict! Skip...')
+ except pywikibot.EditConflict:
+ pywikibot.output(u'Edit Conflict! Skip...')
continue
if __name__ == '__main__':
try:
main()
finally:
- wikipedia.stopme()
+ pywikibot.stopme()
Modified: trunk/pywikipedia/makecat.py
===================================================================
--- trunk/pywikipedia/makecat.py 2010-10-09 05:02:29 UTC (rev 8628)
+++ trunk/pywikipedia/makecat.py 2010-10-09 16:11:46 UTC (rev 8629)
@@ -32,14 +32,17 @@
"""
# (C) Andre Engels, 2004
+# (C) Pywikipedia bot team 2005-2010
#
# Distributed under the terms of the MIT license.
#
-
__version__='$Id$'
+#
import sys, codecs, re
-import wikipedia, date, catlib
+import date
+import wikipedia as pywikibot
+import catlib
msg={
'ar':u'إنشاء أو تحديث التصنيف:',
@@ -60,12 +63,12 @@
def rawtoclean(c):
#Given the 'raw' category, provides the 'clean' category
c2 = c.title().split('|')[0]
- return wikipedia.Page(mysite,c2)
+ return pywikibot.Page(mysite,c2)
def isdate(s):
"""returns true iff s is a date or year
"""
- dict,val = date.getAutoFormat( wikipedia.getSite().language(), s )
+ dict,val = date.getAutoFormat( pywikibot.getSite().language(), s )
return dict is not None
def needcheck(pl):
@@ -82,15 +85,16 @@
def include(pl,checklinks=True,realinclude=True,linkterm=None):
cl = checklinks
if linkterm:
- actualworkingcat = catlib.Category(mysite,workingcat.title(),sortKey=linkterm)
+ actualworkingcat = catlib.Category(mysite,workingcat.title(),
+ sortKey=linkterm)
else:
actualworkingcat = workingcat
if realinclude:
try:
text = pl.get()
- except wikipedia.NoPage:
+ except pywikibot.NoPage:
pass
- except wikipedia.IsRedirectPage:
+ except pywikibot.IsRedirectPage:
cl = True
pass
else:
@@ -103,7 +107,8 @@
catlib.change_category(pl,c,actualworkingcat)
break
else:
- pl.put(wikipedia.replaceCategoryLinks(text, cats +
[actualworkingcat]))
+ pl.put(pywikibot.replaceCategoryLinks(
+ text, cats + [actualworkingcat]))
if cl:
if checkforward:
for page2 in pl.linkedPages():
@@ -130,8 +135,8 @@
checked[pl2]=pl2
return
ctoshow = 500
- wikipedia.output(u'')
- wikipedia.output(u"==%s=="%pl.title())
+ pywikibot.output(u'')
+ pywikibot.output(u"==%s=="%pl.title())
while 1:
answer = raw_input("y(es)/n(o)/i(gnore)/(o)ther options? ")
if answer=='y':
@@ -143,7 +148,8 @@
if answer=='z':
if pl.exists():
if not pl.isRedirectPage():
- linkterm = wikipedia.input(u"In what manner should it be
alphabetized?")
+ linkterm = pywikibot.input(
+ u"In what manner should it be alphabetized?")
include(pl,linkterm=linkterm)
break
include(pl)
@@ -155,42 +161,46 @@
exclude(pl,real_exclude=False)
break
elif answer=='o':
- wikipedia.output(u"t: Give the beginning of the text of the page")
- wikipedia.output(u"z: Add under another title (as
[[Category|Title]])")
- wikipedia.output(u"x: Add the page, but do not check links to and from
it")
- wikipedia.output(u"c: Do not add the page, but do check links")
- wikipedia.output(u"a: Add another page")
- wikipedia.output(u"l: Give a list of the pages to check")
+ pywikibot.output(u"t: Give the beginning of the text of the page")
+ pywikibot.output(
+ u"z: Add under another title (as [[Category|Title]])")
+ pywikibot.output(
+ u"x: Add the page, but do not check links to and from it")
+ pywikibot.output(u"c: Do not add the page, but do check links")
+ pywikibot.output(u"a: Add another page")
+ pywikibot.output(u"l: Give a list of the pages to check")
elif answer=='a':
pagetitle = raw_input("Specify page to add:")
- page=wikipedia.Page(wikipedia.getSite(),pagetitle)
+ page=pywikibot.Page(pywikibot.getSite(),pagetitle)
if not page in checked.keys():
include(page)
elif answer=='x':
if pl.exists():
if pl.isRedirectPage():
- wikipedia.output(u"Redirect page. Will be included
normally.")
+ pywikibot.output(
+ u"Redirect page. Will be included normally.")
include(pl,realinclude=False)
else:
include(pl,checklinks=False)
else:
- wikipedia.output(u"Page does not exist; not added.")
+ pywikibot.output(u"Page does not exist; not added.")
exclude(pl,real_exclude=False)
break
elif answer=='l':
- wikipedia.output(u"Number of pages still to check:
%s"%len(tocheck))
- wikipedia.output(u"Pages to be checked:")
- wikipedia.output(u" - ".join(page.title() for page in tocheck))
- wikipedia.output(u"==%s=="%pl.title())
+ pywikibot.output(u"Number of pages still to check: %s"
+ % len(tocheck))
+ pywikibot.output(u"Pages to be checked:")
+ pywikibot.output(u" - ".join(page.title() for page in tocheck))
+ pywikibot.output(u"==%s=="%pl.title())
elif answer=='t':
- wikipedia.output(u"==%s=="%pl.title())
+ pywikibot.output(u"==%s=="%pl.title())
try:
- wikipedia.output(u''+pl.get(get_redirect=True)[0:ctoshow])
- except wikipedia.NoPage:
- wikipedia.output(u"Page does not exist.")
+ pywikibot.output(u''+pl.get(get_redirect=True)[0:ctoshow])
+ except pywikibot.NoPage:
+ pywikibot.output(u"Page does not exist.")
ctoshow += 500
else:
- wikipedia.output(u"Not understood.")
+ pywikibot.output(u"Not understood.")
try:
checked = {}
@@ -202,7 +212,7 @@
main = True
workingcatname = []
tocheck = []
- for arg in wikipedia.handleArgs():
+ for arg in pywikibot.handleArgs():
if arg.startswith('-nodate'):
skipdates = True
elif arg.startswith('-forward'):
@@ -221,11 +231,14 @@
workingcatname = raw_input("Which page to start with? ")
else:
workingcatname = ' '.join(workingcatname)
- mysite = wikipedia.getSite()
- wikipedia.setAction(wikipedia.translate(mysite,msg) + ' ' + workingcatname)
- workingcat =
catlib.Category(mysite,mysite.category_namespace()+':'+workingcatname)
- filename = wikipedia.config.datafilepath('category',
- wikipedia.UnicodeToAsciiHtml(workingcatname) +
'_exclude.txt')
+ mysite = pywikibot.getSite()
+ pywikibot.setAction(pywikibot.translate(mysite,msg) + ' ' + workingcatname)
+ workingcat = catlib.Category(mysite,
+ u'%s:%s'
+ % (mysite.category_namespace(),
+ workingcatname))
+ filename = pywikibot.config.datafilepath('category',
+ pywikibot.UnicodeToAsciiHtml(workingcatname) +'_exclude.txt')
try:
f = codecs.open(filename, 'r', encoding = mysite.encoding())
for line in f.readlines():
@@ -236,7 +249,7 @@
except IndexError:
pass
exclude(line,real_exclude=False)
- pl = wikipedia.Page(mysite,line)
+ pl = pywikibot.Page(mysite,line)
checked[pl] = pl
f.close()
excludefile = codecs.open(filename, 'a', encoding = mysite.encoding())
@@ -245,12 +258,12 @@
excludefile = codecs.open(filename, 'w', encoding = mysite.encoding())
try:
parentcats = workingcat.categories()
- except wikipedia.Error:
+ except pywikibot.Error:
parentcats = []
# Do not include articles already in subcats; only checking direct subcats
subcatlist = workingcat.subcategoriesList()
if subcatlist:
- wikipedia.getall(mysite,subcatlist)
+ pywikibot.getall(mysite,subcatlist)
for cat in subcatlist:
list = cat.articlesList()
for page in list:
@@ -260,16 +273,18 @@
if list:
for pl in list:
checked[pl]=pl
- wikipedia.getall(mysite,list)
+ pywikibot.getall(mysite,list)
for pl in list:
include(pl)
else:
- wikipedia.output(u"Category %s does not exist or is empty. Which page to
start with?"%workingcatname)
- answer = wikipedia.input(u"(Default is [[%s]]):"%workingcatname)
+ pywikibot.output(
+ u"Category %s does not exist or is empty. Which page to start
with?"
+ % workingcatname)
+ answer = pywikibot.input(u"(Default is [[%s]]):" % workingcatname)
if not answer:
answer = workingcatname
- wikipedia.output(u''+answer)
- pl = wikipedia.Page(mysite,answer)
+ pywikibot.output(u''+answer)
+ pl = pywikibot.Page(mysite,answer)
tocheck = []
checked[pl] = pl
include(pl)
@@ -280,7 +295,7 @@
loaded = len(tocheck)
else:
loaded = 50
- wikipedia.getall(mysite,tocheck[:loaded])
+ pywikibot.getall(mysite,tocheck[:loaded])
if not checkbroken:
if not tocheck[0].exists():
pass
@@ -290,8 +305,9 @@
asktoadd(tocheck[0])
tocheck = tocheck[1:]
loaded -= 1
+
finally:
- wikipedia.stopme()
+ pywikibot.stopme()
try:
excludefile.close()
except:
Modified: trunk/pywikipedia/misspelling.py
===================================================================
--- trunk/pywikipedia/misspelling.py 2010-10-09 05:02:29 UTC (rev 8628)
+++ trunk/pywikipedia/misspelling.py 2010-10-09 16:11:46 UTC (rev 8629)
@@ -13,9 +13,9 @@
e.g. "l" or "m".
-start:XY goes through all misspellings in the category on your wiki
- that is defined (to the bot) as the category containing misspelling
- pages, starting at XY. If the -start argument is not given, it starts
- at the beginning.
+ that is defined (to the bot) as the category containing
+ misspelling pages, starting at XY. If the -start argument is not
+ given, it starts at the beginning.
-main only check pages in the main namespace, not in the talk,
wikipedia, user, etc. namespaces.
@@ -26,7 +26,9 @@
#
# Distributed under the terms of the MIT license.
-import wikipedia, solve_disambiguation, catlib, pagegenerators
+import wikipedia as pywikibot
+import catlib, pagegenerators
+import solve_disambiguation
class MisspellingRobot(solve_disambiguation.DisambiguationRobot):
@@ -64,19 +66,27 @@
}
def __init__(self, always, firstPageTitle, main_only):
- solve_disambiguation.DisambiguationRobot.__init__(self, always, [], True,
self.createPageGenerator(firstPageTitle), False, main_only)
+ solve_disambiguation.DisambiguationRobot.__init__(
+ self, always, [], True, self.createPageGenerator(firstPageTitle),
+ False, main_only)
def createPageGenerator(self, firstPageTitle):
- if wikipedia.getSite().lang in self.misspellingCategory:
- misspellingCategoryTitle =
self.misspellingCategory[wikipedia.getSite().lang]
- misspellingCategory = catlib.Category(wikipedia.getSite(),
misspellingCategoryTitle)
- generator = pagegenerators.CategorizedPageGenerator(misspellingCategory,
recurse = True, start = firstPageTitle)
+ if pywikibot.getSite().lang in self.misspellingCategory:
+ misspellingCategoryTitle =
self.misspellingCategory[pywikibot.getSite().lang]
+ misspellingCategory = catlib.Category(pywikibot.getSite(),
+ misspellingCategoryTitle)
+ generator = pagegenerators.CategorizedPageGenerator(
+ misspellingCategory, recurse = True, start=firstPageTitle)
else:
- misspellingTemplateName = 'Template:%s' %
self.misspellingTemplate[wikipedia.getSite().lang]
- misspellingTemplate = wikipedia.Page(wikipedia.getSite(),
misspellingTemplateName)
- generator = pagegenerators.ReferringPageGenerator(misspellingTemplate,
onlyTemplateInclusion = True)
+ misspellingTemplateName = 'Template:%s' \
+ %
self.misspellingTemplate[pywikibot.getSite().lang]
+ misspellingTemplate = pywikibot.Page(pywikibot.getSite(),
+ misspellingTemplateName)
+ generator = pagegenerators.ReferringPageGenerator(
+ misspellingTemplate, onlyTemplateInclusion=True)
if firstPageTitle:
- wikipedia.output(u'-start parameter unsupported on this wiki because
there is no category for misspellings.')
+ pywikibot.output(
+ u'-start parameter unsupported on this wiki because there is no
category for misspellings.')
preloadingGen = pagegenerators.PreloadingGenerator(generator)
return preloadingGen
@@ -87,7 +97,7 @@
return True
elif self.misspellingTemplate[disambPage.site().lang] is not None:
for templateName, params in disambPage.templatesWithParams():
- if templateName in self.misspellingTemplate[wikipedia.getSite().lang]:
+ if templateName in self.misspellingTemplate[pywikibot.getSite().lang]:
# The correct spelling is in the last paramter.
correctSpelling = params[-1]
# On de.wikipedia, there are some cases where the
@@ -106,8 +116,9 @@
def setSummaryMessage(self, disambPage, new_targets, unlink):
# TODO: setSummaryMessage() in solve_disambiguation now has parameters
# new_targets and unlink. Make use of these here.
- comment = wikipedia.translate(self.mysite, self.msg) % disambPage.title()
- wikipedia.setAction(comment)
+ comment = pywikibot.translate(self.mysite, self.msg) \
+ % disambPage.title()
+ pywikibot.setAction(comment)
def main():
# the option that's always selected when the bot wonders what to do with
@@ -116,12 +127,13 @@
main_only = False
firstPageTitle = None
- for arg in wikipedia.handleArgs():
+ for arg in pywikibot.handleArgs():
if arg.startswith('-always:'):
always = arg[8:]
elif arg.startswith('-start'):
if len(arg) == 6:
- firstPageTitle = wikipedia.input(u'At which page do you want to
start?')
+ firstPageTitle = pywikibot.input(
+ u'At which page do you want to start?')
else:
firstPageTitle = arg[7:]
elif arg == '-main':
@@ -135,4 +147,4 @@
try:
main()
finally:
- wikipedia.stopme()
+ pywikibot.stopme()
Modified: trunk/pywikipedia/movepages.py
===================================================================
--- trunk/pywikipedia/movepages.py 2010-10-09 05:02:29 UTC (rev 8628)
+++ trunk/pywikipedia/movepages.py 2010-10-09 16:11:46 UTC (rev 8629)
@@ -13,8 +13,8 @@
-noredirect Leave no redirect behind.
--prefix Move pages by adding a namespace prefix to the names of the pages.
- (Will remove the old namespace prefix if any)
+-prefix Move pages by adding a namespace prefix to the names of the
+ pages. (Will remove the old namespace prefix if any)
Argument can also be given as "-prefix:namespace:".
-always Don't prompt to make changes, just do them.
@@ -22,11 +22,10 @@
-skipredirects Skip redirect pages (Warning: increases server load)
-summary Prompt for a custom summary, bypassing the predefined message
- texts.
- Argument can also be given as "-summary:XYZ".
+ texts. Argument can also be given as "-summary:XYZ".
--pairs Read pairs of file names from a file. The file must be in a format
- [[frompage]] [[topage]] [[frompage]] [[topage]] ...
+-pairs Read pairs of file names from a file. The file must be in a
+ format [[frompage]] [[topage]] [[frompage]] [[topage]] ...
Argument can also be given as "-pairs:filename"
"""
@@ -40,8 +39,9 @@
__version__='$Id$'
-import wikipedia, pagegenerators
import sys, re
+import wikipedia as pywikibot
+import pagegenerators
# This is required for the text that is shown when you run this script
# with the parameter -help.
@@ -72,7 +72,8 @@
class MovePagesBot:
- def __init__(self, generator, addprefix, noredirect, always, skipredirects,
summary):
+ def __init__(self, generator, addprefix, noredirect, always, skipredirects,
+ summary):
self.generator = generator
self.addprefix = addprefix
self.noredirect = noredirect
@@ -84,30 +85,34 @@
try:
msg = self.summary
if not msg:
- msg = wikipedia.translate(wikipedia.getSite(), summary)
- wikipedia.output(u'Moving page %s to [[%s]]' % (page.aslink(),
newPageTitle))
- page.move(newPageTitle, msg, throttle=True, leaveRedirect=self.noredirect)
- except wikipedia.NoPage:
- wikipedia.output(u'Page %s does not exist!' % page.title())
- except wikipedia.IsRedirectPage:
- wikipedia.output(u'Page %s is a redirect; skipping.' % page.title())
- except wikipedia.LockedPage:
- wikipedia.output(u'Page %s is locked!' % page.title())
- except wikipedia.PageNotSaved, e:
+ msg = pywikibot.translate(pywikibot.getSite(), summary)
+ pywikibot.output(u'Moving page %s to [[%s]]'
+ % (page.title(asLink=True), newPageTitle))
+ page.move(newPageTitle, msg, throttle=True,
+ leaveRedirect=self.noredirect)
+ except pywikibot.NoPage:
+ pywikibot.output(u'Page %s does not exist!' % page.title())
+ except pywikibot.IsRedirectPage:
+ pywikibot.output(u'Page %s is a redirect; skipping.' % page.title())
+ except pywikibot.LockedPage:
+ pywikibot.output(u'Page %s is locked!' % page.title())
+ except pywikibot.PageNotSaved, e:
#target newPageTitle already exists
- wikipedia.output(e.message)
+ pywikibot.output(e.message)
def treat(self, page):
# Show the title of the page we're working on.
# Highlight the title in purple.
- wikipedia.output(u"\n\n>>> \03{lightpurple}%s\03{default}
<<<"% page.title())
+ pywikibot.output(u"\n\n>>> \03{lightpurple}%s\03{default}
<<<"
+ % page.title())
if self.skipredirects and page.isRedirectPage():
- wikipedia.output(u'Page %s is a redirect; skipping.' % page.title())
+ pywikibot.output(u'Page %s is a redirect; skipping.' % page.title())
return
pagetitle = page.titleWithoutNamespace()
namesp = page.site().namespace(page.namespace())
if self.appendAll:
- newPageTitle = (u'%s%s%s' % (self.pagestart, pagetitle,
self.pageend))
+ newPageTitle = (u'%s%s%s'
+ % (self.pagestart, pagetitle, self.pageend))
if not self.noNamespace and namesp:
newPageTitle = (u'%s:%s' % (namesp, newPageTitle))
elif self.regexAll:
@@ -118,7 +123,9 @@
newPageTitle = (u'%s%s' % (self.addprefix, pagetitle))
if self.addprefix or self.appendAll or self.regexAll:
if not self.always:
- choice2 = wikipedia.inputChoice(u'Change the page title to
"%s"?' % newPageTitle, ['yes', 'no', 'all',
'quit'], ['y', 'n', 'a', 'q'])
+ choice2 = pywikibot.inputChoice(
+ u'Change the page title to "%s"?' % newPageTitle,
+ ['yes', 'no', 'all', 'quit'],
['y', 'n', 'a', 'q'])
if choice2 == 'y':
self.moveOne(page, newPageTitle)
elif choice2 == 'a':
@@ -133,21 +140,32 @@
else:
self.moveOne(page, newPageTitle)
else:
- choice = wikipedia.inputChoice(u'What do you want to do?',
['change page name', 'append to page name', 'use a regular
expression', 'next page', 'quit'], ['c', 'a',
'r', 'n', 'q'])
+ choice = pywikibot.inputChoice(u'What do you want to do?',
+ ['change page name',
+ 'append to page name',
+ 'use a regular expression',
+ 'next page', 'quit'],
+ ['c', 'a', 'r',
'n', 'q'])
if choice == 'c':
- newPageTitle = wikipedia.input(u'New page name:')
+ newPageTitle = pywikibot.input(u'New page name:')
self.moveOne(page, newPageTitle)
elif choice == 'a':
- self.pagestart = wikipedia.input(u'Append this to the start:')
- self.pageend = wikipedia.input(u'Append this to the end:')
- newPageTitle = (u'%s%s%s' % (self.pagestart, pagetitle,
self.pageend))
+ self.pagestart = pywikibot.input(u'Append this to the start:')
+ self.pageend = pywikibot.input(u'Append this to the end:')
+ newPageTitle = (u'%s%s%s'
+ % (self.pagestart, pagetitle, self.pageend))
if namesp:
- choice2 = wikipedia.inputChoice(u'Do you want to remove the
namespace prefix "%s:"?' % namesp, ['yes', 'no'],
['y', 'n'])
+ choice2 = pywikibot.inputChoice(
+ u'Do you want to remove the namespace prefix
"%s:"?'
+ % namesp, ['yes', 'no'], ['y',
'n'])
if choice2 == 'y':
noNamespace = True
else:
newPageTitle = (u'%s:%s' % (namesp, newPageTitle))
- choice2 = wikipedia.inputChoice(u'Change the page title to
"%s"?' % newPageTitle, ['yes', 'no', 'all',
'quit'], ['y', 'n', 'a', 'q'])
+ choice2 = pywikibot.inputChoice(
+ u'Change the page title to "%s"?'
+ % newPageTitle, ['yes', 'no', 'all',
'quit'],
+ ['y', 'n', 'a', 'q'])
if choice2 == 'y':
self.moveOne(page, newPageTitle)
elif choice2 == 'a':
@@ -160,19 +178,28 @@
else:
self.treat(page)
elif choice == 'r':
- searchPattern = wikipedia.input(u'Enter the search pattern:')
- self.replacePattern = wikipedia.input(u'Enter the replace
pattern:')
+ searchPattern = pywikibot.input(u'Enter the search pattern:')
+ self.replacePattern = pywikibot.input(
+ u'Enter the replace pattern:')
self.regex=re.compile(searchPattern)
if page.title() == page.titleWithoutNamespace():
- newPageTitle = self.regex.sub(self.replacePattern, page.title())
+ newPageTitle = self.regex.sub(self.replacePattern,
+ page.title())
else:
- choice2 = wikipedia.inputChoice(u'Do you want to remove the
namespace prefix "%s:"?' % namesp, ['yes', 'no'],
['y', 'n'])
+ choice2 = pywikibot.inputChoice(
+ u'Do you want to remove the namespace prefix
"%s:"?'
+ % namesp, ['yes', 'no'], ['y',
'n'])
if choice2 == 'y':
- newPageTitle = self.regex.sub(self.replacePattern,
page.titleWithoutNamespace())
+ newPageTitle = self.regex.sub(
+ self.replacePattern, page.titleWithoutNamespace())
noNamespace = True
else:
- newPageTitle = self.regex.sub(self.replacePattern, page.title())
- choice2 = wikipedia.inputChoice(u'Change the page title to
"%s"?' % newPageTitle, ['yes', 'no', 'all',
'quit'], ['y', 'n', 'a', 'q'])
+ newPageTitle = self.regex.sub(self.replacePattern,
+ page.title())
+ choice2 = pywikibot.inputChoice(
+ u'Change the page title to "%s"?'
+ % newPageTitle, ['yes', 'no', 'all',
'quit'],
+ ['y', 'n', 'a', 'q'])
if choice2 == 'y':
self.moveOne(page, newPageTitle)
elif choice2 == 'a':
@@ -215,10 +242,11 @@
# to work on.
genFactory = pagegenerators.GeneratorFactory()
- for arg in wikipedia.handleArgs():
+ for arg in pywikibot.handleArgs():
if arg.startswith('-pairs'):
if len(arg) == len('-pairs'):
- filename = wikipedia.input(u'Enter the name of the file containing
pairs:')
+ filename = pywikibot.input(
+ u'Enter the name of the file containing pairs:')
else:
filename = arg[len('-pairs:'):]
oldName1 = None
@@ -229,7 +257,8 @@
else:
oldName1 = page.title()
if oldName1:
- wikipedia.output(u'WARNING: file %s contains odd number of links'
% filename)
+ pywikibot.output(
+ u'WARNING: file %s contains odd number of links' % filename)
elif arg == '-noredirect':
noredirect = False
elif arg == '-always':
@@ -238,45 +267,47 @@
skipredirects = True
elif arg.startswith('-from:'):
if oldName:
- wikipedia.output(u'WARNING: -from:%s without -to:' % oldName)
+ pywikibot.output(u'WARNING: -from:%s without -to:' % oldName)
oldName = arg[len('-from:'):]
elif arg.startswith('-to:'):
if oldName:
fromToPairs.append([oldName, arg[len('-to:'):]])
oldName = None
else:
- wikipedia.output(u'WARNING: %s without -from' % arg)
+ pywikibot.output(u'WARNING: %s without -from' % arg)
elif arg.startswith('-prefix'):
if len(arg) == len('-prefix'):
- prefix = wikipedia.input(u'Enter the prefix:')
+ prefix = pywikibot.input(u'Enter the prefix:')
else:
prefix = arg[8:]
elif arg.startswith('-summary'):
if len(arg) == len('-summary'):
- summary = wikipedia.input(u'Enter the summary:')
+ summary = pywikibot.input(u'Enter the summary:')
else:
summary = arg[9:]
else:
genFactory.handleArg(arg)
if oldName:
- wikipedia.output(u'WARNING: -from:%s without -to:' % oldName)
+ pywikibot.output(u'WARNING: -from:%s without -to:' % oldName)
for pair in fromToPairs:
- page = wikipedia.Page(wikipedia.getSite(), pair[0])
- bot = MovePagesBot(None, prefix, noredirect, always, skipredirects, summary)
+ page = pywikibot.Page(pywikibot.getSite(), pair[0])
+ bot = MovePagesBot(None, prefix, noredirect, always, skipredirects,
+ summary)
bot.moveOne(page, pair[1])
if not gen:
gen = genFactory.getCombinedGenerator()
if gen:
preloadingGen = pagegenerators.PreloadingGenerator(gen)
- bot = MovePagesBot(preloadingGen, prefix, noredirect, always, skipredirects,
summary)
+ bot = MovePagesBot(preloadingGen, prefix, noredirect, always,
+ skipredirects, summary)
bot.run()
elif not fromToPairs:
- wikipedia.showHelp('movepages')
+ pywikibot.showHelp('movepages')
if __name__ == '__main__':
try:
main()
finally:
- wikipedia.stopme()
+ pywikibot.stopme()
Modified: trunk/pywikipedia/pagefromfile.py
===================================================================
--- trunk/pywikipedia/pagefromfile.py 2010-10-09 05:02:29 UTC (rev 8628)
+++ trunk/pywikipedia/pagefromfile.py 2010-10-09 16:11:46 UTC (rev 8629)
@@ -46,11 +46,12 @@
#
# Distributed under the terms of the MIT license.
#
-
__version__='$Id$'
+#
import re, codecs
-import wikipedia, config
+import wikipedia as pywikibot
+import config
class NoTitle(Exception):
"""No title found"""
@@ -138,7 +139,8 @@
'zh': u'機器人: 覆寫已存在的文字',
}
- def __init__(self, reader, force, append, summary, minor, autosummary, debug):
+ def __init__(self, reader, force, append, summary, minor, autosummary,
+ debug):
self.reader = reader
self.force = force
self.append = append
@@ -152,47 +154,54 @@
self.put(title, contents)
def put(self, title, contents):
- mysite = wikipedia.getSite()
+ mysite = pywikibot.getSite()
- page = wikipedia.Page(mysite, title)
+ page = pywikibot.Page(mysite, title)
# Show the title of the page we're working on.
# Highlight the title in purple.
- wikipedia.output(u">>> \03{lightpurple}%s\03{default}
<<<" % page.title())
+ pywikibot.output(u">>> \03{lightpurple}%s\03{default}
<<<"
+ % page.title())
if self.summary:
comment = self.summary
else:
- comment = wikipedia.translate(mysite, self.msg)
+ comment = pywikibot.translate(mysite, self.msg)
- comment_top = comment + " - " + wikipedia.translate(mysite,
self.msg_top)
- comment_bottom = comment + " - " + wikipedia.translate(mysite,
self.msg_bottom)
- comment_force = comment + " *** " + wikipedia.translate(mysite,
self.msg_force) + " ***"
+ comment_top = comment + " - " + pywikibot.translate(mysite,
+ self.msg_top)
+ comment_bottom = comment + " - " + pywikibot.translate(mysite,
+ self.msg_bottom)
+ comment_force = comment + " *** " + pywikibot.translate(mysite,
+ self.msg_force) + "
***"
# Remove trailing newlines (cause troubles when creating redirects)
contents = re.sub('^[\r\n]*','', contents)
if page.exists():
if self.append == "Top":
- wikipedia.output(u"Page %s already exists, appending on top!" %
title)
+ pywikibot.output(u"Page %s already exists, appending on top!"
+ % title)
contents = contents + page.get()
comment = comment_top
elif self.append == "Bottom":
- wikipedia.output(u"Page %s already exists, appending on
bottom!" % title)
+ pywikibot.output(u"Page %s already exists, appending on
bottom!"
+ % title)
contents = page.get() + contents
comment = comment_bottom
elif self.force:
- wikipedia.output(u"Page %s already exists, ***overwriting!" %
title)
+ pywikibot.output(u"Page %s already exists, ***overwriting!"
+ % title)
comment = comment_force
else:
- wikipedia.output(u"Page %s already exists, not adding!" %
title)
+ pywikibot.output(u"Page %s already exists, not adding!" %
title)
return
else:
if self.autosummary:
comment = ''
- wikipedia.setAction('')
+ pywikibot.setAction('')
if self.dry:
- wikipedia.output("*** Dry mode ***\n" + \
+ pywikibot.output("*** Dry mode ***\n" + \
"\03{lightpurple}title\03{default}: " + title + "\n"
+ \
"\03{lightpurple}contents\03{default}:\n" + contents +
"\n" \
"\03{lightpurple}comment\03{default}: " + comment +
"\n")
@@ -200,12 +209,14 @@
try:
page.put(contents, comment = comment, minorEdit = self.minor)
- except wikipedia.LockedPage:
- wikipedia.output(u"Page %s is locked; skipping." % title)
- except wikipedia.EditConflict:
- wikipedia.output(u'Skipping %s because of edit conflict' % title)
- except wikipedia.SpamfilterError, error:
- wikipedia.output(u'Cannot change %s because of spam blacklist entry
%s' % (title, error.url))
+ except pywikibot.LockedPage:
+ pywikibot.output(u"Page %s is locked; skipping." % title)
+ except pywikibot.EditConflict:
+ pywikibot.output(u'Skipping %s because of edit conflict' % title)
+ except pywikibot.SpamfilterError, error:
+ pywikibot.output(
+ u'Cannot change %s because of spam blacklist entry %s'
+ % (title, error.url))
class PageFromFileReader:
"""
@@ -213,7 +224,8 @@
The run() method yields a (title, contents) tuple for each found page.
"""
- def __init__(self, filename, pageStartMarker, pageEndMarker, titleStartMarker,
titleEndMarker, include, notitle):
+ def __init__(self, filename, pageStartMarker, pageEndMarker,
+ titleStartMarker, titleEndMarker, include, notitle):
self.filename = filename
self.pageStartMarker = pageStartMarker
self.pageEndMarker = pageEndMarker
@@ -223,9 +235,10 @@
self.notitle = notitle
def run(self):
- wikipedia.output('Reading \'%s\'...' % self.filename)
+ pywikibot.output('Reading \'%s\'...' % self.filename)
try:
- f = codecs.open(self.filename, 'r', encoding =
config.textfile_encoding)
+ f = codecs.open(self.filename, 'r',
+ encoding=config.textfile_encoding)
except IOError, err:
print err
return
@@ -238,12 +251,12 @@
length, title, contents = self.findpage(text[position:])
except AttributeError:
if not length:
- wikipedia.output(u'\nStart or end marker not found.')
+ pywikibot.output(u'\nStart or end marker not found.')
else:
- wikipedia.output(u'End of file.')
+ pywikibot.output(u'End of file.')
break
except NoTitle, err:
- wikipedia.output(u'\nNo title found - skipping a page.')
+ pywikibot.output(u'\nNo title found - skipping a page.')
position += err.offset
continue
@@ -270,9 +283,9 @@
return location.end(), title, contents
def main():
- # Adapt these to the file you are using. 'pageStartMarker' and
'pageEndMarker' are
- # the beginning and end of each entry. Take text that should be included
- # and does not occur elsewhere in the text.
+ # Adapt these to the file you are using. 'pageStartMarker' and
+ # 'pageEndMarker' are the beginning and end of each entry. Take text that
+ # should be included and does not occur elsewhere in the text.
# TODO: make config variables for these.
filename = "dict.txt"
@@ -290,7 +303,7 @@
autosummary = False
dry = False
- for arg in wikipedia.handleArgs():
+ for arg in pywikibot.handleArgs():
if arg.startswith("-start:"):
pageStartMarker = arg[7:]
elif arg.startswith("-end:"):
@@ -323,10 +336,10 @@
elif arg == '-autosummary':
autosummary = True
else:
- wikipedia.output(u"Disregarding unknown argument %s." % arg)
+ pywikibot.output(u"Disregarding unknown argument %s." % arg)
- reader = PageFromFileReader(filename, pageStartMarker, pageEndMarker,
titleStartMarker, titleEndMarker, include, notitle)
-
+ reader = PageFromFileReader(filename, pageStartMarker, pageEndMarker,
+ titleStartMarker, titleEndMarker, include, notitle)
bot = PageFromFileRobot(reader, force, append, summary, minor, autosummary, dry)
bot.run()
@@ -334,4 +347,4 @@
try:
main()
finally:
- wikipedia.stopme()
+ pywikibot.stopme()
Modified: trunk/pywikipedia/pageimport.py
===================================================================
--- trunk/pywikipedia/pageimport.py 2010-10-09 05:02:29 UTC (rev 8628)
+++ trunk/pywikipedia/pageimport.py 2010-10-09 16:11:46 UTC (rev 8629)
@@ -21,39 +21,41 @@
"""
#
# (C) Filnik, 2007
+# (C) Pywikipedia bot team, 2008-2010
#
# Greetings:
# Lorenzo Paulatto and Misza13
#
# Distributed under the terms of the MIT license.
#
-
__version__ = '$Id$'
+#
import urllib
-import wikipedia, login, config
+import wikipedia as pywikibot,
+import login, config
-class Importer(wikipedia.Page):
+class Importer(pywikibot.Page):
def __init__(self, site):
self.importsite = site
- wikipedia.Page.__init__(self, site, 'Special:Import', None, 0)
+ pywikibot.Page.__init__(self, site, 'Special:Import', None, 0)
def Import(self, target, project = 'w', crono = '1', namespace =
'', prompt = True):
"""Import the page from the wiki. Requires administrator status.
If prompt is True, asks the user if he wants to delete the page.
"""
if project == 'w':
- site = wikipedia.getSite(fam = 'wikipedia')
+ site = pywikibot.getSite(fam = 'wikipedia')
elif project == 'b':
- site = wikipedia.getSite(fam = 'wikibooks')
+ site = pywikibot.getSite(fam = 'wikibooks')
elif project == 'wikt':
- site = wikipedia.getSite(fam = 'wiktionary')
+ site = pywikibot.getSite(fam = 'wiktionary')
elif project == 's':
- site = wikipedia.getSite(fam = 'wikisource')
+ site = pywikibot.getSite(fam = 'wikisource')
elif project == 'q':
- site = wikipedia.getSite(fam = 'wikiquote')
+ site = pywikibot.getSite(fam = 'wikiquote')
else:
- site = wikipedia.getSite()
+ site = pywikibot.getSite()
# Fixing the crono value...
if crono == True:
crono = '1'
@@ -64,7 +66,7 @@
namespace == ''
answer = 'y'
if prompt:
- answer = wikipedia.inputChoice(u'Do you want to import %s?' % target,
['Yes', 'No'], ['y', 'N'], 'N')
+ answer = pywikibot.inputChoice(u'Do you want to import %s?' % target,
['Yes', 'No'], ['y', 'N'], 'N')
if answer == 'y':
host = self.site().hostname()
address = self.site().path() + '?title=%s&action=submit' %
self.urlname()
@@ -87,14 +89,14 @@
}
response, data = self.site().postForm(address, predata, sysop = True)
if data:
- wikipedia.output(u'Page imported, checking...')
- if wikipedia.Page(self.importsite, target).exists():
- wikipedia.output(u'Import success!')
+ pywikibot.output(u'Page imported, checking...')
+ if pywikibot.Page(self.importsite, target).exists():
+ pywikibot.output(u'Import success!')
return True
else:
- wikipedia.output(u'Import failed!')
+ pywikibot.output(u'Import failed!')
return False
if __name__=='__main__':
- wikipedia.output(u'This is just a module! Read the documentation and write your
own script!')
- wikipedia.stopme()
+ pywikibot.output(u'This is just a module! Read the documentation and write your
own script!')
+ pywikibot.stopme()
Modified: trunk/pywikipedia/piper.py
===================================================================
--- trunk/pywikipedia/piper.py 2010-10-09 05:02:29 UTC (rev 8628)
+++ trunk/pywikipedia/piper.py 2010-10-09 16:11:46 UTC (rev 8629)
@@ -40,13 +40,13 @@
# Distributed under the terms of the MIT license.
#
__version__ = '$Id$'
+#
-import wikipedia
-import pagegenerators
-
import os
import pipes
import tempfile
+import wikipedia as pywikibot
+import pagegenerators
# This is required for the text that is shown when you run this script
# with the parameter -help.
@@ -82,7 +82,8 @@
def run(self):
# Set the edit summary message
pipes = ', '.join(self.filters)
- wikipedia.setAction(wikipedia.translate(wikipedia.getSite(), self.msg) % pipes)
+ pywikibot.setAction(pywikibot.translate(pywikibot.getSite(), self.msg)
+ % pipes)
for page in self.generator:
self.treat(page)
@@ -118,11 +119,13 @@
try:
# Load the page
text = page.get()
- except wikipedia.NoPage:
- wikipedia.output(u"Page %s does not exist; skipping." %
page.aslink())
+ except pywikibot.NoPage:
+ pywikibot.output(u"Page %s does not exist; skipping."
+ % page.title(asLink=True))
return
- except wikipedia.IsRedirectPage:
- wikipedia.output(u"Page %s is a redirect; skipping." %
page.aslink())
+ except pywikibot.IsRedirectPage:
+ pywikibot.output(u"Page %s is a redirect; skipping."
+ % page.title(asLink=True))
return
# Munge!
@@ -133,24 +136,31 @@
if text != page.get():
# Show the title of the page we're working on.
# Highlight the title in purple.
- wikipedia.output(u"\n\n>>> %s <<<" %
page.title())
+ pywikibot.output(u"\n\n>>> %s <<<" %
page.title())
# show what was changed
- wikipedia.showDiff(page.get(), text)
+ pywikibot.showDiff(page.get(), text)
if not self.dry:
if not self.always:
- choice = wikipedia.inputChoice(u'Do you want to accept these
changes?', ['Yes', 'No'], ['y', 'N'], 'N')
+ choice = pywikibot.inputChoice(
+ u'Do you want to accept these changes?',
+ ['Yes', 'No'], ['y', 'N'],
'N')
else:
choice = 'y'
if choice == 'y':
try:
# Save the page
page.put(text)
- except wikipedia.LockedPage:
- wikipedia.output(u"Page %s is locked; skipping." %
page.aslink())
- except wikipedia.EditConflict:
- wikipedia.output(u'Skipping %s because of edit conflict'
% (page.title()))
- except wikipedia.SpamfilterError, error:
- wikipedia.output(u'Cannot change %s because of spam blacklist
entry %s' % (page.title(), error.url))
+ except pywikibot.LockedPage:
+ pywikibot.output(u"Page %s is locked; skipping."
+ % page.title(asLink=True))
+ except pywikibot.EditConflict:
+ pywikibot.output(
+ u'Skipping %s because of edit conflict'
+ % (page.title()))
+ except pywikibot.SpamfilterError, error:
+ pywikibot.output(
+ u'Cannot change %s because of spam blacklist entry
%s'
+ % (page.title(), error.url))
def main():
@@ -172,7 +182,7 @@
filters = []
# Parse command line arguments
- for arg in wikipedia.handleArgs():
+ for arg in pywikibot.handleArgs():
if arg.startswith("-dry"):
dry = True
elif arg.startswith("-filter:"):
@@ -189,7 +199,7 @@
if pageTitleParts != []:
# We will only work on a single page.
pageTitle = ' '.join(pageTitleParts)
- page = wikipedia.Page(wikipedia.getSite(), pageTitle)
+ page = pywikibot.Page(pywikibot.getSite(), pageTitle)
gen = iter([page])
if not gen:
@@ -201,10 +211,10 @@
bot = PiperBot(gen, dry, filters, always)
bot.run()
else:
- wikipedia.showHelp()
+ pywikibot.showHelp()
if __name__ == "__main__":
try:
main()
finally:
- wikipedia.stopme()
+ pywikibot.stopme()
Modified: trunk/pywikipedia/protect.py
===================================================================
--- trunk/pywikipedia/protect.py 2010-10-09 05:02:29 UTC (rev 8628)
+++ trunk/pywikipedia/protect.py 2010-10-09 16:11:46 UTC (rev 8629)
@@ -36,15 +36,19 @@
python protect.py -file:unprotect.txt -unprotect
"""
+#
# Written by
http://it.wikisource.org/wiki/Utente:Qualc1
# Created by modifying delete.py
-__version__ = '$Id$'
-
#
+# (C) Pywikipedia bot team, 2008-2010
+#
# Distributed under the terms of the MIT license.
#
+__version__ = '$Id$'
+#
-import wikipedia, catlib
+import wikipedia as pywikibot
+import catlib
import pagegenerators
# Summary messages for protecting from a category.
@@ -121,7 +125,7 @@
"""
#Loop through everything in the page generator and (un)protect it.
for page in self.generator:
- wikipedia.output(u'Processing page %s' % page.title())
+ pywikibot.output(u'Processing page %s' % page.title())
print self.edit, self.move#, self.create
page.protect(unprotect=self.unprotect, reason=self.summary,
prompt=self.always,
editcreate=self.edit, move=self.move)
@@ -131,7 +135,7 @@
def choiceProtectionLevel(operation, default):
default = default[0]
firstChar = map(lambda level: level[0], protectionLevels)
- choiceChar = wikipedia.inputChoice('Choice a protection level to %s:' %
operation,
+ choiceChar = pywikibot.inputChoice('Choice a protection level to %s:' %
operation,
protectionLevels, firstChar, default = default)
for level in protectionLevels:
if level.startswith(choiceChar):
@@ -157,23 +161,23 @@
defaultProtection = 'sysop'
# read command line parameters
- for arg in wikipedia.handleArgs():
+ for arg in pywikibot.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:')
+ fileName = pywikibot.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:')
+ summary = pywikibot.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:')
+ pageName = pywikibot.input(u'Enter the category to protect
from:')
else:
pageName = arg[len('-cat:'):]
elif arg.startswith('-nosubcats'):
@@ -181,25 +185,25 @@
elif arg.startswith('-links'):
doLinks = True
if len(arg) == len('-links'):
- pageName = wikipedia.input(u'Enter the page to protect from:')
+ pageName = pywikibot.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:')
+ pageName = pywikibot.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:')
+ pageName = pywikibot.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:')
+ pageName = pywikibot.input(u'Enter the page with the images to
protect:')
else:
pageName = arg[len('-images:'):]
elif arg.startswith('-unprotect'):
@@ -217,40 +221,40 @@
if create not in protectionLevels:
create = choiceProtectionLevel('create', defaultProtection)
- mysite = wikipedia.getSite()
+ mysite = pywikibot.getSite()
if doSinglePage:
if not summary:
- summary = wikipedia.input(u'Enter a reason for the protection:')
- page = wikipedia.Page(mysite, pageName)
+ summary = pywikibot.input(u'Enter a reason for the protection:')
+ page = pywikibot.Page(mysite, pageName)
gen = iter([page])
elif doCategory:
if not summary:
- summary = wikipedia.translate(mysite, msg_protect_category) % pageName
+ summary = pywikibot.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)
+ summary = pywikibot.translate(mysite, msg_protect_links) % pageName
+ linksPage = pywikibot.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)
+ summary = pywikibot.translate(mysite, msg_protect_ref) % pageName
+ refPage = pywikibot.Page(mysite, pageName)
gen = pagegenerators.ReferringPageGenerator(refPage)
elif fileName:
if not summary:
- summary = wikipedia.translate(mysite, msg_simple_protect)
+ summary = pywikibot.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))
+ summary = pywikibot.translate(mysite, msg_protect_images) % pageName
+ gen = pagegenerators.ImagesPageGenerator(pywikibot.Page(mysite, pageName))
if gen:
- wikipedia.setAction(summary)
+ pywikibot.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
@@ -258,10 +262,10 @@
bot = ProtectionRobot(gen, summary, always, edit=edit, move=move)
bot.run()
else:
- wikipedia.showHelp(u'protect')
+ pywikibot.showHelp(u'protect')
if __name__ == "__main__":
try:
main()
finally:
- wikipedia.stopme()
+ pywikibot.stopme()
Modified: trunk/pywikipedia/rciw.py
===================================================================
--- trunk/pywikipedia/rciw.py 2010-10-09 05:02:29 UTC (rev 8628)
+++ trunk/pywikipedia/rciw.py 2010-10-09 16:11:46 UTC (rev 8629)
@@ -16,18 +16,24 @@
Warning: experimental software, use at your own risk
"""
-__version__ = '$Id$'
# Authors: Kisbes
#
http://hu.wikipedia.org/wiki/User:Kisbes
# License : GFDL
+#
+# (C) Pywikipedia bot team, 2008, 2010
+#
+# Distributed under the terms of the MIT license.
+#
+__version__ = '$Id$'
+#
-import interwiki
import threading
import re
-import wikipedia
import time
from Queue import Queue
+import wikipedia as pywikibot
+import interwiki
class IWRCBot():
def __init__(self, site, safe = True):
@@ -58,13 +64,13 @@
if name in self.processed:
return
self.processed.append(name)
- page = wikipedia.Page(self.site, name)
+ page = pywikibot.Page(self.site, name)
# the Queue has for now an unlimited size,
# it is a simple atomic append(), no need to acquire a semaphore
self.queue.put_nowait(page)
def main():
- wikipedia.output('Warning: this script can not be run manually/directly, but
automatically by maintainer.py')
+ pywikibot.output('Warning: this script can not be run manually/directly, but
automatically by maintainer.py')
if __name__ == "__main__":
main()
Modified: trunk/pywikipedia/rcsort.py
===================================================================
--- trunk/pywikipedia/rcsort.py 2010-10-09 05:02:29 UTC (rev 8628)
+++ trunk/pywikipedia/rcsort.py 2010-10-09 16:11:46 UTC (rev 8629)
@@ -1,17 +1,26 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
-# A tool to see the recentchanges ordered by user instead of by date. This
-# is meant to be run as a CGI script.
-# Apart from the normal options of the recent changes page, you can add an option
-# ?newbies=true which will make the bot go over recently registered users only.
-# Currently only works on Dutch Wikipedia, I do intend to make it more generally
-# usable.
-# Permission has been asked to run this on the toolserver.
+"""
+A tool to see the recentchanges ordered by user instead of by date. This
+is meant to be run as a CGI script.
+Apart from the normal options of the recent changes page, you can add an option
+?newbies=true which will make the bot go over recently registered users only.
+Currently only works on Dutch Wikipedia, I do intend to make it more generally
+usable.
+Permission has been asked to run this on the toolserver.
+"""
+# (C) Pywikipedia bot team, 2007-2010
+#
+# Distributed under the terms of the MIT license.
+#
__version__ = '$Id$'
+#
import cgi
import cgitb
import re
+import wikipedia
+
cgitb.enable()
form = cgi.FieldStorage()
@@ -21,13 +30,12 @@
print "<html>"
print "<head>"
print '<meta http-equiv="Content-Type" content="text/html;
charset=utf-8" />'
-print '<style type="text/css"
media="screen,projection">/*<![CDATA[*/ @import
"http://nl.wikipedia.org/skins-1.5/monobook/main.css?59";
/*]]>*/</style>'
+print '<style type="text/css"
media="screen,projection">/*<![CDATA[*/ @import
"http://nl.pywikibot.org/skins-1.5/monobook/main.css?59";
/*]]>*/</style>'
print "</head>"
print "<body>"
print "<!--"
-import wikipedia
print "-->"
-mysite = wikipedia.getSite()
+mysite = pywikibot.getSite()
newbies = 'newbies' in form
@@ -63,10 +71,13 @@
count += 1
lines.append((user,count,line))
elif 'rcoptions' in line:
- print line.replace(mysite.path() +
"?title=Speciaal:RecenteWijzigingen&","rcsort.py?")
+ print line.replace(mysite.path() +
"?title=Speciaal:RecenteWijzigingen&",
+ "rcsort.py?")
rcoptions = True
elif newbies and 'Nieuwste' in line:
- line = line.replace(mysite.path() +
"?title=Speciaal:Bijdragen&","rcsort.py?").replace("target=newbies","newbies=true")
+ line = line.replace(mysite.path() +
"?title=Speciaal:Bijdragen&",
+ "rcsort.py?").replace("target=newbies",
+ "newbies=true")
if '</fieldset>' in line:
line = line[line.find('</fieldset>')+11:]
print line
@@ -80,10 +91,10 @@
if line[0] == None:
print "<h2>Gebruiker onbekend</h2>"
else:
- wikipedia.output(u"<h2>%s</h2>"%line[0],toStdout=True)
+ pywikibot.output(u"<h2>%s</h2>"%line[0],toStdout=True)
print "<ul>"
last = line[0]
-
wikipedia.output(line[2].replace('href="/w','href="ht…//nl.wikipedia.org/w'),
toStdout = True)
+
pywikibot.output(line[2].replace('href="/w','href="ht…//nl.wikipedia.org/w'),
toStdout = True)
print
print "</ul>"