Twitter_Notify.PY

Bueno pues, en una de estas veces que andaba aburrido dije, me fastidia entrar al Twitter o estarle dando F5, o sea ni que fuera yo qué. Así que decidí hacer una app. Sé que seguramente hay más y mejores, pero no importa, el punto es que la quize hacer yo y pues ahí vamos, la ando mejorando. La primera versión solo era un globo y esta versión ya tiene botoncitos hihi, uno de ellos responder que te lleva directo a la página para un reply al tweet =)

Totalmente hecho con python y libnotify.

[cc lang=“python“]

import pynotify
import pycurl
import simplejson
import time
import os
import pygtk
import gtk

pygtk.require(‚2.0‘)

u  = „der_ketzer“
p  = „********“
filename = ‚/home/derketzer/.Twitter_id‘

file = open(filename, ‚r‘)
id = file.readline()
file.close()

class Test:
def __init__(self):
self.contents = “

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

t = Test()
c = pycurl.Curl();

c.setopt(c.URL, ‚http://www.twitter.com/statuses/friends_timeline.json?since_id=’+id);

c.setopt(c.USERPWD, u+“:“+p);

c.setopt(c.WRITEFUNCTION, t.body_callback);
c.perform();
c.close();

json = simplejson.loads(t.contents)

def default_cb(n, action):
id = int(action)

os.system(„firefox http://twitter.com/?status=@“+json[id][‚user‘][’screen_name‘]+“%20&in_reply_to_status_id=“+str(json[id][‚id‘])+“&in_reply_to=“+json[id][‚user‘][’screen_name‘])

n.close()
gtk.main_quit()

paso = 0

if len(json) != 0:
pynotify.init(„Twitter messages“)

json.reverse()

id = json[len(json)-1][‚id‘]

for text in json:
pynotify.init („Twitter Notify“)
n = pynotify.Notification(text[‚user‘][’screen_name‘]+“ dijo:“+text[‚text‘])
n.set_urgency(pynotify.URGENCY_NORMAL)
#n.set_timeout(30000) #20 segundos
#n.set_category(„device“)
n.add_action(str(paso), „Responder“, default_cb)
n.show()
paso += 1

file = open(filename, ‚w‘)
file.write(str(id))
file.close()

gtk.main()

[/cc]

Y bueno, todo funciona con un archivo llamado .Twitter_id que guarda al final del chequeo el id del último mensaje, para la próxima vez que visite Twitter, cheque a partir de ese ID

[cc lang=“python“]

3462859311

[/cc]

Saludos