Меню
Главная
Случайная статья
Настройки
|
#!/usr/bin/env python
# -*- mode: python; coding: utf-8; -*-
# (c) Lankier mailto:lankier@gmail.com
#
# $Id$
#
from StringIO import StringIO
import Image
import wikipedia
import upload
import pagegenerators
max_size = 600,600
msg = u'Бот: Изменение размера файла'
site = wikipedia.getSite()
def resize(pagename):
wikipedia.output('resize: '+pagename)
# download
page = wikipedia.ImagePage(site, pagename)
if not page.exists():
wikipedia.output('file does not exists')
if page.fileIsOnCommons():
wikipedia.output('file is stored on commons')
return
url = page.fileUrl().encode('utf-8')
content = wikipedia.MyURLopener.open(url).read()
# resize
buf = StringIO(content)
image = Image.open(buf)
if image.size[0] <= max_size[0] and image.size[1] <= max_size[1]:
wikipedia.output('no need to resize: size: %s x %s' % image.size)
return
xf, yf = float(max_size[0])/image.size[0], float(max_size[1])/image.size[1]
f = min(xf, yf)
size = int(image.size[0]*f), int(image.size[1]*f)
format = image.format
image = image.resize(size, Image.ANTIALIAS)
buf = StringIO()
image.save(buf, format)
content = buf.getvalue()
# upload
bot = upload.UploadRobot(url, keepFilename=True, verifyDescription=False,
ignoreWarning=True, description=msg, targetSite=site)
bot._contents = content
bot.upload_image(debug=False)
return page
def main():
#genFactory = pagegenerators.GeneratorFactory()
pages = []
for arg in wikipedia.handleArgs():
#if genFactory.handleArg(arg):
# continue
pages.append(arg)
if not pages:
wikipedia.output('missing page(s) name')
return
for p in pages:
resize(u'Файл:'+p)
try:
main()
finally:
wikipedia.stopme()
|
|