Aprende a programar: feed de Meneame

6

Escrito el : 11-05-2010 | Por : Ivan | En : Informática y Programación
Bueno, como prometí, aquí os pongo este post intentando explicar lo mas sencillamente posible el funcionamiento de un script que muestra las ultimas noticias de Meneame como una ventana de información de linux.
En primer lugar, os pongo los requisitos:
-Tener instalado Python.
-Descargar el modulo Feedparser (http://code.google.com/p/feedparser/downloads/list)
-Instalar el paquete “notify-send” con la orden “apt-get install libnotify-bin”
Bien, empezemos.
En primer lugar, el script está compuesto por dos archivos, meneame.py (el archivo en Python) y meneame.sh (un archivo escrito en Shell). No me centraré en explicar como funciona Python o Shell en general, simplemente os explicaré el codigo para que podais modificarlo:
meneame.py

import feedparser
d=feedparser.parse("http://feeds.feedburner.com/MeneamePublicadas?format=xml")
titulo=d['entries'][0]['title']
titulo=titulo.encode("utf-8")
print titulo

La primera linea de codigo sirve para decirle al programa que utilice ciertas caracteristicas que están ya hechas en ese archivo.
La linea 2 lo que hace  es leer el XML de la página, en nuestro caso, la de Meneame. Si quisierais otra página, simplemente tendriais que cambiar esa linea por la del XML que quisierais).
La linea 3 guarda en una variable llamada “titulo” el titulo de la noticia. Puede sacarse más información pero requeriría ciertos conocimientos de programación ya que hay que saber manejar diccionarios y vectores.
La linea 4 codifica el texto del titulo a formato UTF-8, para que funciona correctamente con acentos, eñes y simbolos extraños.
Por ultimo, imprime el titulo de la ultima noticia.
Gracias a esto, tenemos un programa que al ejecutarlo, nos devuelve la ultima noticia de Menéame. Ahora tendremos que combinar esto con Shell para poder mostrar el resultado como una ventana emergente. Veamos el codigo en Shell:

anterior=""
sleep 10
while true
do
noticia="`python /home/ivan/Documentos/Proyectos/Python/meneame.py`"
if [ "$noticia" != "$anterior" ]
then
notify-send "$noticia" -i /home/ivan/Documentos/Proyectos/Python/eli.png
anterior=$noticia
fi
sleep 300
done

El código es un poco más largo, pero tranquilos, no es nada complicado.
Linea 1: creo una variable llamada “anterior” donde guardaré la ultima noticia mostrada.
Linea 2: digo al programa que se espere 10 segundos para que asi le de tiempo al sistema a que se conecte a internet.
Linea 3: le digo que haga un bucle infinito para que no pare de ejecutar el codigo que hay dentro.
Linea 5: guardo en una variable llamada “noticia” el resultado de llamar al programa “meneame.py”, que como ya sabeis devolverá el titulo de la ultima noticia de Meneame. Evidentemente, aquí tendreis que cambiar la ruta del archivo a la que vosotros tengais.
Linea 6: compruebo si la ultima noticia publicada es igual que la recien obtenida, para que así, si es repetida, no la saque. Solo queremos noticias nuevas.
Linea 8: La orden más importante del programa. Aquí es donde le diremos al programa qué texto sacar como una noticia arriba a la derecha, en un pop-up. Lo que hay despues de “-i” sirve para ponerle un icono a la noticia. En mi caso, me he descargado el icono de meneame. Lo mismo de antes: esto tendreis que cambiarlo para decirle dónde quereis poner vuestro icono. Si no quereis icono, pues quitais todo lo que sigue despues de “noticia”.
Linea 9: guardo la noticia recien publicada en la variable “anterior” para saber cual ha sido la ultima noticia que he mostrado.
Linea 11: Espera 5 minutos para repetir el proceso, no queremos que nos muestre las noticias sin parar.
Por último, añadiremos este programa al conjunto de aplicaciones al inicio del sistema operativo. Para ello, nos dirigimos a Sistema -> Preferencias -> Aplicaciones al inicio. Una vez dentro, pinchamos en “añadir”. Nos saldrá un cuadro de dialogo odnde tendremos que rellenarlo. Los campos “nombre” y “comentario”  los podemos rellenar como queramos. En el comando orden debermos introducir lo siguiente:

sh /rutadelshell/meneame.sh

donde “rutadelshell” es la ruta donde tienes almacenado el archivo “meneame.sh”
Bien, con esto creo que ha quedado suficientemente claro. Siento no poder alargarme mas con las explicaciones pero explicar como funciona un lenguaje de programación sería muy tedioso. Aun así, cualquier duda, sugerencia o ayuda para mejorar el código será bienvenida. Un saludo.

Comentarios (6)

[...] Aprende a programar: feed de Meneame cienciaconjunta.com/aprende-a-programar-feed-de-meneame/  por e-gaby hace 3 segundos [...]

Información Bitacoras.com…

Valora en Bitacoras.com: Bueno, como prometí, aquí os pongo este post intentando explicar lo mas sencillamente posible el funcionamiento de un script que muestra las ultimas noticias de Meneame como una ventana de información de linux. En primer luga…..

[...] This post was mentioned on Twitter by Gabriel Ivorra and Pablo Riquelme, Ciencia Conjunta. Ciencia Conjunta said: Nuevo post: Aprende a programar: feed de Meneame http://bit.ly/b9sOUd [...]

¿Podríais colgar los archivos que programaste para poder utilizarlos nosotros y así poder modificarlos directamente? Gracias y enhorabuena por el podcast.

@Rodriguez, solo es necesario copiar las porciones de código en un editor de texto (como notepad) y si has instalado todo bien, debería funcionar. Son dos segundos xD. Aunque supongo que acabaran subiendo los programitas.

Sí. Ahora mismo estoy en el curro. En cuanto llegue a casa colgaré los archivos y añadire algun screenshot para que os vayais guiando

Escribe un comentario