http://www.mediawiki.org/wiki/Special:Code/pywikipedia/9608
Revision: 9608 Author: xqt Date: 2011-10-08 17:00:51 +0000 (Sat, 08 Oct 2011) Log Message: ----------- new -keepname option: Keep the filename and do not verify description while replacing
Modified Paths: -------------- trunk/pywikipedia/imagetransfer.py
Modified: trunk/pywikipedia/imagetransfer.py =================================================================== --- trunk/pywikipedia/imagetransfer.py 2011-10-08 16:29:04 UTC (rev 9607) +++ trunk/pywikipedia/imagetransfer.py 2011-10-08 17:00:51 UTC (rev 9608) @@ -10,6 +10,8 @@
-interwiki Look for images in pages found through interwiki links.
+ -keepname Keep the filename and do not verify description while replacing + -tolang:xx Copy the image to the wiki in language xx
-tofamily:yy Copy the image to a wiki in the family yy @@ -127,19 +129,19 @@ }, ('wikipedia:fa', 'commons:commons'): { u'مالکیت عمومی': u'PD', - u'مالکیت عمومی-خود': u'PD-self', + u'مالکیت عمومی-خود': u'PD-self', u'مجوز گنو': u'GFDL', - u'مجوز گنو-خود': u'GFDL-self', + u'مجوز گنو-خود': u'GFDL-self', u'نگاره قدیمی': u'PD-Iran', - u'نگاره نوشتاری': u'PD-textlogo', - u'نگاره عراقی': u'PD-Iraq', - u'نگاره بریتانیا': u'PD-UK', - u'نگاره هابل': u'PD-Hubble', - u'نگاره آمریکا': u'PD-US', - u'نگاره دولت آمریکا': u'PD-USGov', - u'کک-یاد-دو': u'Cc-by-2.0', - u'کک-یاد-حفظ-دونیم': u'Cc-by-sa-2.5', - u'کک-یاد-سه': u'Cc-by-3.0', + u'نگاره نوشتاری': u'PD-textlogo', + u'نگاره عراقی': u'PD-Iraq', + u'نگاره بریتانیا': u'PD-UK', + u'نگاره هابل': u'PD-Hubble', + u'نگاره آمریکا': u'PD-US', + u'نگاره دولت آمریکا': u'PD-USGov', + u'کک-یاد-دو': u'Cc-by-2.0', + u'کک-یاد-حفظ-دونیم': u'Cc-by-sa-2.5', + u'کک-یاد-سه': u'Cc-by-3.0', }, ('wikipedia:fr', 'commons:commons'): { u'Domaine public': u'PD' @@ -163,10 +165,12 @@
class ImageTransferBot: - def __init__(self, generator, targetSite = None, interwiki = False): + def __init__(self, generator, targetSite=None, interwiki=False, + keep_name=False): self.generator = generator self.interwiki = interwiki self.targetSite = targetSite + self.keep_name = keep_name
def transferImage(self, sourceImagePage, debug=False): """Gets a wikilink to an image, downloads it and its description, @@ -204,7 +208,11 @@ description='' print "Image description page is redirect." else: - bot = upload.UploadRobot(url = url, description = description, targetSite = self.targetSite, urlEncoding = sourceSite.encoding()) + bot = upload.UploadRobot(url=url, description=description, + targetSite=self.targetSite, + urlEncoding=sourceSite.encoding(), + keepFilename=self.keep_name, + verifyDescription = not self.keep_name) # try to upload targetFilename = bot.run() if targetFilename and self.targetSite.family.name == 'commons' and self.targetSite.lang == 'commons': @@ -291,12 +299,15 @@ page = None gen = None interwiki = False + keep_name = False targetLang = None targetFamily = None
for arg in pywikibot.handleArgs(): if arg == '-interwiki': interwiki = True + elif arg.startswith('-keepname'): + keepname = True elif arg.startswith('-tolang:'): targetLang = arg[8:] elif arg.startswith('-tofamily:'): @@ -332,7 +343,8 @@ if not targetFamily: targetFamily = pywikibot.getSite().family targetSite = pywikibot.Site(targetLang, targetFamily) - bot = ImageTransferBot(gen, interwiki = interwiki, targetSite = targetSite) + bot = ImageTransferBot(gen, interwiki=interwiki, targetSite=targetSite, + keep_name=keep_name) bot.run()
if __name__ == "__main__":