Correcciones al Planet

Gracias a un llamado de atención de Germán acerca de algunos detalles pendientes con el planetario tuve que entrometerme algo mas en el código.

Comencé por el problema de los títulos con errores de parseo de entidades escapadas. Analizando el RSS de Germán noté que los «title» ya contienen las entidades escapadas, no asi el «description». El problema era parsear ambos por las mismas reglas de reemplazo. Ugly hack: volver a reemplazar la entidades escapadas («des-escaparlas» ;) ), pero tan solo a los «title», es esto o corregir el feedparser (bastante viejo ya, aun no se ha integrado el 3.0 a planet, aunque algunos pichicateos ya fueron publicados para poder utilizarlo). La corrección al planetlib.py (línea 353), luego que se definió self.title, retirarle los escapes de entidades:

self.title = self.title.replace('&', '&')

Lo siguiente fue corregir la la zona horaria en que se encuentra Planet. La aplicación completa utiliza time.gmtime() de forma de estandarizar su uso. La primera solución obvia que se me ocurrió fue la de cambiar time.gmtime() por time.localtime() en la función format_date() de planetlib.py. Pero la falta de elegancia estaba fuera de discusión, asi que seguí intruseando el codigo en donde encontré una variable configurable «offset» que me permitía corregir la zona horaria. Una simple corrección al config.ini de forma de hacerlo pensar que estamos en la zona UTC, ya que el offset esta definido por omisión como time.timezone:

[DEFAULT]
offset = 0

Y lo último era mas trivial, que era corregir los templates de XML que no contenían el encoding. Ahora el planet debiese funcionar como corresponde.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *