rss2twitter: diseñando la configuración …

perl… y dando los primeros pasos.

Antes de nada un pequeño esquema de los que me gusta tener siempre a mano. Me es muy útil para centrarme cuando desarrollo porque tengo tendencia a dejarme llevar por otras posibilidades y termino creando monstruos.

esquema-general.png

Y ahora continúo echando un vistazo a los módulos básicos que voy a emplear y anotando aquello que va a ser necesario incluir en la configuración del programa. El formato elegido va a ser el típico archivo .ini porque estoy  muy acostumbrado a él y Perl se lo merienda sin problemas. Me permite tener los datos en secciones y es más sencillo así disponer de una configuración global y una particular para cada canal rss-twitter.

Como parámetros globales voy a necesitar:

  • Envío de notificaciones por correo:
    • Servidor SMTP.
    • Credenciales para el servidor si las precisa.
    • Dirección de remite.
    • Asunto y cuerpo del mensaje (quizás como plantilla en siguientes versiones).

Como definición de canal (me gusta el término) me hará falta:

  • Para la lectura de feeds:
    • URL de origen
    • Formato del feed que puede ser opcional.
  • Para el acceso a Twitter debería ser suficiente con las dos cosas, una vez que se configure el acceso vía oauth:
    • consumer_key
    • consumer_secret

Ejemplo

Suponiendo que toda la configuración estuviese en un único archivo quedaría más o menos así:

[email]
   smtp_server   = localhost 
   smtp_user     = yo
   smtp_password = xxxx
   from          = rss2twiter@example.com
   subject       = "[Rss2Twitter] Nuevo tweet"
   body          = <<EOF
   He enviado un nuevo tweet ...
EOF

[mas_solo_que_la_una]
   feed = "https://esferas.org/mt/msqlu/feed.xml"
   twitter_consumer_key = "XXXXXX"
   twitter_consumer_secret = "XXXXX"
   to = victor@taquiones.net

De tal manera que exiten secciones reservadas (como email) y otras de libre denominación que serán las que definan los canales.

Primeros pasos

Una de las primeras cosas que hago cuando emprendo un proyecto nuevo, tras inicializar el repositorio a mi gusto, es crear un directorio especial para probar código. Lo llamo snippets y lo empleo para realizar pruebas y experimentos de las herramientas que voy a utilizar.

También me sirve para descartar planteamientos erróneos, esos que surgen de creerse a pies juntillas la documentación de otros. No siempre es a mala leche pero hay ocasiones en que un módulo en concreto dejó de funcionar mucho tiempo atrás y el autor lo mantenía congelado y no se percató de ello. El caso es que un directorio así es vital para empezar a construir algo sólido.

En mi caso voy a verificar tanto la carga y análisis de feeds como del acceso a Twitter empleando la segunda cuenta …