Pull to refresh

Загрузка скриншотов на Imgur в один клик

Reading time1 min
Views9.4K
По мотивам поста о загрузке скриншотов в один клик захотелось адаптировать это под свой любимый imgur с использованием его api

Скрипт довольно прост, загружаем картинку и открываем её в браузере в новой вкладке.
Остальные инструкции смотрите по ссылке выше.
#!/usr/bin/env python
import webbrowser
import StringIO
import sys
import os
from xml.dom import minidom


try:
    import pycurl
except ImportError:
    sys.exit('Error: pycurl not found')

class XmlResponse:
   def __init__(self):
       self.contents = ''

   def body_callback(self, buf):
       self.contents = self.contents + buf

if len(sys.argv) > 1:
    img = sys.argv[1]
else:
    img = '/tmp/imgur.png'
    os.system('scrot -s %s' % img)
    
t = XmlResponse()	
curl = pycurl.Curl()
values = [
	  ("key", "a3793a1cce95f32435bb002b92e0fa5e"),
	  ("image", (curl.FORM_FILE, img))]

curl.setopt(curl.URL, "http://imgur.com/api/upload.xml")
curl.setopt(curl.HTTPPOST, values)
curl.setopt(pycurl.WRITEFUNCTION, t.body_callback)
curl.perform()
curl.close()
	
dom = minidom.parseString(t.contents)

settings = {
	'original_image' : dom.getElementsByTagName("original_image")[0].childNodes[0].nodeValue,
	'large_thumbnail' : dom.getElementsByTagName("large_thumbnail")[0].childNodes[0].nodeValue,
	'small_thumbnail' : dom.getElementsByTagName("small_thumbnail")[0].childNodes[0].nodeValue,
	'imgur_page' : dom.getElementsByTagName("imgur_page")[0].childNodes[0].nodeValue,
	'delete_page' : dom.getElementsByTagName("delete_page")[0].childNodes[0].nodeValue,
}

webbrowser.open_new_tab(settings['original_image'])

Tags:
Hubs:
+3
Comments5

Articles