#!/usr/bin/env python
# -*- coding: cp1252 -*-
#Desarrollado por RadicalEd
import feedparser
import pynotify
import urllib2, urllib
import time
import re
class FeedRSS():
#Inicializamos valores
def __init__ (self, rss, blog):
self.blog = blog
#Nos conectamos al feed del blog
self.rss = feedparser.parse(rss)
#Extraemos lo que necesitamos
self.title = self.rss.entries[0].title
self.link = self.rss.entries[0].link
#Vamos a convertir los links grandes en pequeños
def mostrar (self, tinyurl = 'http://tinyurl.com/create.php', nuevo=''):
#Los datos a envíar en el campo url del formulario
data = urllib.urlencode([('url', self.link)])
#Envíamos los datos
req = urllib2.Request(tinyurl)
pagina = urllib2.urlopen(req, data)
#Al recibir los datos los empezamos a leer
while True:
data = pagina.read(1024)
if not len(data):
break
nuevo += data
#Con expresiones regulares buscamos cada dato que tenga la linea <b>http://tinyurl.com/
r = re.compile('<b>http://tinyurl.com/([a-zA-Z0-9]+)</b>',re.S)
#Buscamos en todo el source de la pagina
x = r.findall(nuevo)
#Este sera el mensaje a mostrar en el notificador
msg = "%sn<a href='http://tinyurl.com/%s'>http://tinyurl.com/%s</a>" % (self.title, x[0], x[0])
if not pynotify.init('Al no iniciarse'):
sys.exit(1)
#Mostramos la Notificación
n = pynotify.Notification(self.blog,msg)
n.set_timeout(15000) #Que se muestre el mensaje durante 15 segundos
n.show()
#Sino se muestra
if not n.show():
print "Fallo al mostrar la info"
sys.exit(1)
#Blogs de ejemplo
rp = FeedRSS('http://radicalpython.blogspot.com/feeds/posts/default', 'RadicalPython')
rp.mostrar()
wb = FeedRSS('http://willy-n-billy.blogspot.com/feeds/posts/default', 'Willy-n-Billy')
wb.mostrar()
mb = FeedRSS('http://mbrenes.blogspot.com/feeds/posts/default', '{ Blog de Shakka }')
mb.mostrar()
lm = FeedRSS('http://elladodelmal.blogspot.com/feeds/posts/default', 'El lado del mal')
lm.mostrar()