… 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.
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 …