Блога на Алекс Един блог за web 2.0, php, linux и open source

29.06.2009 в 16:37

lxshot: лесен linux скрииншот

 Омръзна ми да си пълня home папката с скрииншотове само за да покажа на някой нещо
За това си написах тази програмка
Клиента е написан на python и ползва pygtk и pycurl
Сървърната част взима картинката, качва я в прикачи.ком и дава линк обратно на клиента, който тихичко го слага в клипборда

Направих нещо като документация, там е обяснено как се качва
http://lxshot.tk/

Общо взето това са командите:
apt-get install python-pycurl,y um install python-pycurl, emerge python-pycurl или от сорс в зависимост от линукса ви
След това командите са тези:

$ su
# cd /usr/share
# wget http://lxshot.hit.bg/lxshot.py
# wget http://lxshot.hit.bg/easygui.py
# cd /usr/bin
# wget http://lxshot.hit.bg/lxshot
# chmod +x ./lxshot

Като не трябва да копирате # и $, те показват с какъв юзър трябва да сте

Малко се бави заради хоста, но след около 5 секунди е готов

Ето и питон кода за по-заинтересованите

Написах го на drPython

lxshot.py
#!/usr/bin/python

try:
import gtk.gdk, os, pycurl, random, StringIO, pygtk, gobject, threading, gtk, sys
from easygui import *
pygtk.require('2.0')
except:
print "lxshot iziskva python-pycurl i pygtk";
import os
#os.exit(1)


w = gtk.gdk.get_default_root_window()
sz = w.get_size() # masiv s width i height

print "lxshot: using imgsize: %d x %d" % sz

pb = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB,False,8,sz[0],sz[1])
pb = pb.get_from_drawable(w,w.get_colormap(),0,0,0,0,sz[0],sz[1])
if (pb != None):

ime = str(random.uniform(1, 10))
pb.save("/tmp/" + ime + ".png","png")
#print "using tmpnam: /tmp/" + ime + ".png"


b = StringIO.StringIO()
c = pycurl.Curl()
c.setopt(c.POST, 1)
c.setopt(c.URL, "http://lxshots.byethost31.com/up.php")
c.setopt(c.HTTPPOST, [("file1", (c.FORM_FILE, "/tmp/" + ime + ".png"))])
c.setopt(pycurl.WRITEFUNCTION, b.write)
#c.setopt(c.VERBOSE, 1)
c.perform()
c.close()
url = b.getvalue()

clipboard = gtk.clipboard_get()
clipboard.set_text(url)
clipboard.store()

print url

os.system("rm /tmp/" + ime + ".png")

msgbox(str(url) + "nCopied to clipboard", "lxshot")


else:
print "lxshot: unable to get the screenshot."

Коментари

  1. federer_11 на 01.07.2009 в 08:26

    else:
    print "lxshot: unable to get the screenshot."

Предишна страница 1 Следваща страница

Добави коментар

Veryhappy Smile Sad Surprised Shocked Confused Cool Laughing Mad Razz Embarrased Cryingorvery sad Winking Exclamation Question Idea