Revision: 8533 Author: xqt Date: 2010-09-12 12:45:14 +0000 (Sun, 12 Sep 2010)
Log Message: ----------- import wikipedia as pywikibot for merging to rewrite branch
Modified Paths: -------------- trunk/pywikipedia/imagetransfer.py trunk/pywikipedia/inline_images.py
Modified: trunk/pywikipedia/imagetransfer.py =================================================================== --- trunk/pywikipedia/imagetransfer.py 2010-09-12 12:44:49 UTC (rev 8532) +++ trunk/pywikipedia/imagetransfer.py 2010-09-12 12:45:14 UTC (rev 8533) @@ -30,7 +30,8 @@ __version__='$Id$'
import re, sys, md5, urllib -import wikipedia, upload, config, pagegenerators +import wikipedia as pywikibot +import upload, config, pagegenerators
copy_message = { 'ar':u"هذه الصورة تم نقلها من %s. الوصف الأصلي كان:\r\n\r\n%s", @@ -136,6 +137,7 @@ }, }
+ class ImageTransferBot: def __init__(self, generator, targetSite = None, interwiki = False): self.generator = generator @@ -149,10 +151,10 @@ This function is used by imagetransfer.py and by copy_table.py """ sourceSite = sourceImagePage.site() - if debug: print "--------------------------------------------------" + if debug: print "-" * 50 if debug: print "Found image: %s"% imageTitle url = sourceImagePage.fileUrl().encode('utf-8') - wikipedia.output(u"URL should be: %s" % url) + pywikibot.output(u"URL should be: %s" % url) # localize the text that should be printed on the image description page try: description = sourceImagePage.get() @@ -161,17 +163,20 @@ for old, new in licenseTemplates[(sourceSite.sitename(), self.targetSite.sitename())].iteritems(): new = '{{%s}}' % new old = re.compile('{{%s}}' % old) - description = wikipedia.replaceExcept(description, old, new, ['comment', 'math', 'nowiki', 'pre']) + description = pywikibot.replaceExcept(description, old, new, + ['comment', 'math', + 'nowiki', 'pre'])
- description = wikipedia.translate(self.targetSite, copy_message) % (sourceSite, description) + description = pywikibot.translate(self.targetSite, copy_message) \ + % (sourceSite, description) description += '\n\n' + sourceImagePage.getFileVersionHistoryTable() # add interwiki link if sourceSite.family == self.targetSite.family: description += "\r\n\r\n" + sourceImagePage.aslink(forceInterwiki = True) - except wikipedia.NoPage: + except pywikibot.NoPage: description='' print "Image does not exist or description page is empty." - except wikipedia.IsRedirectPage: + except pywikibot.IsRedirectPage: description='' print "Image description page is redirect." else: @@ -180,14 +185,14 @@ targetFilename = bot.run() if targetFilename and self.targetSite.family.name == 'commons' and self.targetSite.lang == 'commons': # upload to Commons was successful - reason = wikipedia.translate(sourceSite, nowCommonsMessage) + reason = pywikibot.translate(sourceSite, nowCommonsMessage) # try to delete the original image if we have a sysop account if sourceSite.family.name in config.sysopnames and sourceSite.lang in config.sysopnames[sourceSite.family.name]: if sourceImagePage.delete(reason): return if sourceSite.lang in nowCommonsTemplate and sourceSite.family.name in config.usernames and sourceSite.lang in config.usernames[sourceSite.family.name]: # add the nowCommons template. - wikipedia.output(u'Adding nowCommons template to %s' % sourceImagePage.title()) + pywikibot.output(u'Adding nowCommons template to %s' % sourceImagePage.title()) sourceImagePage.put(sourceImagePage.get() + '\n\n' + nowCommonsTemplate[sourceSite.lang] % targetFilename, comment = nowCommonsMessage[sourceSite.lang])
def showImageList(self, imagelist): @@ -195,10 +200,10 @@ image = imagelist[i] #sourceSite = sourceImagePage.site() print "-"*60 - wikipedia.output(u"%s. Found image: %s"% (i, image.aslink())) + pywikibot.output(u"%s. Found image: %s"% (i, image.aslink())) try: # Show the image description page's contents - wikipedia.output(image.get(throttle=False)) + pywikibot.output(image.get(throttle=False)) # look if page already exists with this name. # TODO: consider removing this: a different image of the same # name may exist on the target wiki, and the bot user may want @@ -206,21 +211,20 @@ try: # Maybe the image is on the target site already targetTitle = '%s:%s' % (self.targetSite.image_namespace(), image.title().split(':', 1)[1]) - targetImage = wikipedia.Page(self.targetSite, targetTitle) + targetImage = pywikibot.Page(self.targetSite, targetTitle) targetImage.get(throttle=False) - wikipedia.output(u"Image with this name is already on %s." % self.targetSite) + pywikibot.output(u"Image with this name is already on %s." % self.targetSite) print "-"*60 - wikipedia.output(targetImage.get(throttle=False)) + pywikibot.output(targetImage.get(throttle=False)) sys.exit() - except wikipedia.NoPage: + except pywikibot.NoPage: # That's the normal case pass - except wikipedia.IsRedirectPage: - wikipedia.output(u"Description page on target wiki is redirect?!") + except pywikibot.IsRedirectPage: + pywikibot.output(u"Description page on target wiki is redirect?!")
- except wikipedia.NoPage: + except pywikibot.NoPage: break - print "="*60
def run(self): @@ -230,7 +234,7 @@ for linkedPage in page.interwiki(): imagelist += linkedPage.imagelinks(followRedirects = True) elif page.isImage(): - imagePage = wikipedia.ImagePage(page.site(), page.title()) + imagePage = pywikibot.ImagePage(page.site(), page.title()) imagelist = [imagePage] else: imagelist = page.imagelinks(followRedirects = True) @@ -241,21 +245,22 @@ # no need to query the user, only one possibility todo = 0 else: - wikipedia.output(u"Give the number of the image to transfer.") - todo = wikipedia.input(u"To end uploading, press enter:") + pywikibot.output(u"Give the number of the image to transfer.") + todo = pywikibot.input(u"To end uploading, press enter:") if not todo: break todo = int(todo) if todo in range(len(imagelist)): if imagelist[todo].fileIsOnCommons(): - wikipedia.output(u'The image is already on Wikimedia Commons.') + pywikibot.output(u'The image is already on Wikimedia Commons.') else: self.transferImage(imagelist[todo], debug = False) # remove the selected image from the list imagelist = imagelist[:todo] + imagelist[todo + 1:] else: - wikipedia.output(u'No such image number.') + pywikibot.output(u'No such image number.')
+ def main(): # if -file is not used, this temporary array is used to read the page title. pageTitle = [] @@ -265,7 +270,7 @@ targetLang = None targetFamily = None
- for arg in wikipedia.handleArgs(): + for arg in pywikibot.handleArgs(): if arg == '-interwiki': interwiki = True elif arg.startswith('-tolang:'): @@ -274,7 +279,7 @@ targetFamily = arg[10:] elif arg.startswith('-file'): if len(arg) == 5: - filename = wikipedia.input(u'Please enter the list's filename: ') + filename = pywikibot.input(u'Please enter the list's filename: ') else: filename = arg[6:] gen = pagegenerators.TextfilePageGenerator(filename) @@ -286,23 +291,23 @@ # connect the title's parts with spaces if pageTitle != []: pageTitle = ' '.join(pageTitle) - page = wikipedia.Page(wikipedia.getSite(), pageTitle) + page = pywikibot.Page(pywikibot.getSite(), pageTitle) # if no page title was given as an argument, and none was # read from a file, query the user if not page: - pageTitle = wikipedia.input(u'Which page to check:') - page = wikipedia.Page(wikipedia.getSite(), pageTitle) + pageTitle = pywikibot.input(u'Which page to check:') + page = pywikibot.Page(pywikibot.getSite(), pageTitle) # generator which will yield only a single Page gen = iter([page])
if not targetLang and not targetFamily: - targetSite = wikipedia.getSite('commons', 'commons') + targetSite = pywikibot.getSite('commons', 'commons') else: if not targetLang: - targetLang = wikipedia.getSite().language + targetLang = pywikibot.getSite().language if not targetFamily: - targetFamily = wikipedia.getSite().family - targetSite = wikipedia.Site(targetLang, targetFamily) + targetFamily = pywikibot.getSite().family + targetSite = pywikibot.Site(targetLang, targetFamily) bot = ImageTransferBot(gen, interwiki = interwiki, targetSite = targetSite) bot.run()
@@ -310,4 +315,4 @@ try: main() finally: - wikipedia.stopme() + pywikibot.stopme()
Modified: trunk/pywikipedia/inline_images.py =================================================================== --- trunk/pywikipedia/inline_images.py 2010-09-12 12:44:49 UTC (rev 8532) +++ trunk/pywikipedia/inline_images.py 2010-09-12 12:45:14 UTC (rev 8533) @@ -24,13 +24,14 @@
__version__='$Id$'
-import wikipedia, pagegenerators, catlib, weblinkchecker, upload import sys, re +import wikipedia as pywikibot +import pagegenerators, catlib, weblinkchecker, upload
# This is required for the text that is shown when you run this script # with the parameter -help. docuReplacements = { - '¶ms;': pagegenerators.parameterHelp, + '¶ms;': pagegenerators.parameterHelp, }
msg = { @@ -58,9 +59,10 @@ # depends on the variable self.touch_redirects. text = page.get() originalText = text - for url in weblinkchecker.weblinksIn(text, withoutBracketed = True): + for url in weblinkchecker.weblinksIn(text, + withoutBracketed=True): filename = url.split('/')[-1] - description = wikipedia.translate(wikipedia.getSite(), msg) % url + description = pywikibot.translate(pywikibot.getSite(), msg) % url bot = upload.UploadRobot(url, description = description) # TODO: check duplicates #filename = bot.uploadImage() @@ -69,11 +71,11 @@ # only save if there were changes #if text != originalText: # page.put(text) - except wikipedia.NoPage: + except pywikibot.NoPage: print "Page %s does not exist?!" % page.aslink() - except wikipedia.IsRedirectPage: + except pywikibot.IsRedirectPage: print "Page %s is a redirect; skipping." % page.aslink() - except wikipedia.LockedPage: + except pywikibot.LockedPage: print "Page %s is locked?!" % page.aslink()
def main(): @@ -88,18 +90,18 @@ # to work on. genFactory = pagegenerators.GeneratorFactory()
- for arg in wikipedia.handleArgs(): + for arg in pywikibot.handleArgs(): if not genFactory.handleArg(arg): pageTitle.append(arg)
if pageTitle: # work on a single page - page = wikipedia.Page(wikipedia.getSite(), ' '.join(pageTitle)) + page = pywikibot.Page(pywikibot.getSite(), ' '.join(pageTitle)) gen = iter([page]) if not gen: gen = genFactory.getCombinedGenerator() if not gen: - wikipedia.showHelp('inline_images') + pywikibot.showHelp('inline_images') else: preloadingGen = pagegenerators.PreloadingGenerator(gen) bot = InlineImagesRobot(preloadingGen) @@ -109,4 +111,4 @@ try: main() finally: - wikipedia.stopme() + pywikibot.stopme()
pywikipedia-svn@lists.wikimedia.org