RSS Feed de Mercurial (hg)
Se me ocurrió mantener la traducción del Tutorial de Python actualizada. Pero claro, para eso tengo que chequear periódicamente para ver si hubo algunos cambios en los originales. Entonces, el primer paso para cualquier cosa que sea periódica es un Google Calendar. El segundo: un script.
... luego de crear el evento de Google Calendar ...
Me puse a ver como funcionaba el repositorio de Python de Mercurial y veo que tiene una opción de RSS, entonces la cosa se empieza a simplificar. Ya que teniendo un RSS era más fácil informarse de los cambios. Lo siguiente que hice, fue buscar el RSS para una carpeta en particular, pero a eso no lo encontré. Entonces, me fui directamente a la documentación de Mercurial y encontré que tiene el RSS Global y el particular para un archivo, nada más :(
Bueno, "Me bajo el global y lo parseo buscando el nombre de la carpeta que estoy interesado" -me dije. Y... ¿Vos podés creer? El feed RSS solo tiene la fecha, el título, el autor y mail, el link y el mensaje del commit. ¡Son unos muertos! Ese feed no me sirve para nada.
Así que, ¿se te ocurre una forma de hacer ésto sin hacer "hg pull" y comparar eso contra mis archivos de traducciones?
Solución
Finalmente, usé el RSS de tags del repositorio de Mercurial. Ya que cada nueva versión, viene con su documentación correspondiente. El problema que tiene esto es que quizás entre una versión y otra la documentación varie lo suficiente como para que sea tedioso actualizarla (espero que esto no pase).
Utilicé este script para hacer el chequeo:
# This script checks if there is a newer tag than the specified in CURRENT_TAG import conf import smtplib import feedparser from email.mime.text import MIMEText TAGS_URL = 'http://hg.python.org/cpython/tags' CURRENT_TAG = 'v3.4.0a2' ATOM_URL = 'http://hg.python.org/cpython/atom-tags' rss = feedparser.parse(ATOM_URL) tag = rss['entries'][0].title if tag != CURRENT_TAG: # Send an email to my account text = 'Please go to {} to check it out.'.format(TAGS_URL) msg = MIMEText(text) msg['From'] = conf.FROMADDR msg['To'] = conf.TOADDRS subject = '[Python HG] There is a new tag: {tag}'.format(tag=tag) msg['Subject'] = subject # Credentials username = conf.USERNAME password = conf.PASSWORD # The actual mail send server = smtplib.SMTP('smtp.gmail.com:587') server.starttls() server.login(username, password) server.send_message(msg) server.quit()
Finalmente configuré un cron para que lo ejecute una vez al mes.
Comentarios
Comments powered by Disqus