Oír y ver el parte meteorológico

He recordado esta contribución que hice en su momento en la página del GUTL, y me pareció que sería buena idea darla a conocer acá también.

El programa Prognos, liberado por Ozkar, viene a llenar un espacio vacío en las barras de estado de los que no tenemos salida al mar, y bien merece una felicitación por ello.

Ahora bien, mirando los requerimientos, me encuentro con que mi Debian 6 no tiene python 2.7, ni otra biblioteca de las necesarias, que no recuerdo ahora. Vaya, me fastidié, fue lo primero que pensé.

Cambiar la distribución, ni pensarlo: esta es la máquina de trabajo, y no puedo ponerme a inventar. Fin de la historia.

Sin embargo, la idea me siguió rondando la cabeza (¿cómo extraer la información de allí?) y me puse a parsear la página de www.insmet.cu.

Entre las partes interesantes está una variable de arreglo, pdia, que al parecer guarda las temperaturas por provincia y una descripción concisa del estado del tiempo en un pronóstico de 5 días. Por ejemplo:

PINAR DEL RIO’,’29 18 Parcialmente Nublado’,’29 18 Parcialmente Nublado’,’29 19 Lluvias Ocasionales’,’28 19 Lluvias Ocasionales’,’28 19 Parcialmente Nublado’.

Por tanto, podría pensar en alguna solución que parseara la página, leyera este dato y luego lo presentara convenientemente en la barra de estado. No soy bueno en programación, así que seguí mirando a ver qué más aparecía, y me encuentro con que los datos de los pronósticos se guardan en ficheros de texto:

  • pttn.txt = pronóstico del tiempo para la tarde y noche
  • ptrd.txt = pronóstico del tiempo para el resto del día
  • Marady.txt = mares adyacentes
  • DC.txt = Depresiones y ciclones

etc.

Habituado a que cuando enciendo la máquina se me abran ventanas que he preparado con fortune, las efemérides (una ventana despliega la información del programa Calendar) y el santoral (fichero de Calendar preparado especialmente), se me ocurrió que podría descargar el fichero ptrd.txt, por ejemplo, y mostrarlo por las mañanas al encender el equipo. El tal fichero es muy liviano, y se descarga en nada mediante wget.

Así que en principio sería algo como descargar con wget y luego mostrar el contenido del fichero con alguna aplicación sencilla de ventanas, como xmessage o Zenity. Zenity hubiera sido mi primera elección, pues lo uso en un script para Evolution que me avisa si encontró virus. Pero a Zenity parece que no le gusta el código en UTF-8, así que escogí xmessage (en Debian 8 ya sería gxmessage). De paso, veo que el texto descargado contiene ^M, así que conviene correrle dos2unix antes de mostrarlo.

Ya en ese plan, se me ocurrió: que me lo lea en voz alta también; así me da tiempo a organizar las cosas mientras la máquina abre sesión y yo estoy mirando papeles y atendiendo a los primeros que me han pescado en la puerta y me están consultando algo. Me leería el parte en voz alta y me abriría después una ventana con el texto para reconsultarlo si lo necesito. Esto se pone interesante…

Sintetizadores de voz hay varios en Debian. Flite, por ejemplo, es muy liviano, pero hasta donde veo, no habla español. Festival o Mbrola parecen tener opciones de buena calidad y en varios idiomas, con posibilidades también de escoger voces masculinas o femeninas. Es curioso: no veo voz femenina española en Festival; hubiera sido un toque agradable aquí. Pero me piden descargar cosas de Internet, así que están descartados. Por otra parte, si tuviera acceso, quizá no estuviera haciendo estas piruetas.

Me queda espeak. La voz es aceptablemente clara, y puedo usar la biblioteca es-la, que maneja español latinoamericano (aceptable).

Bien, armando el muñeco esto queda más o menos así.

#!/bin/sh
#leeparte.sh
rm -f $1
#/Pronostico/pttn.txt
#/Pronostico/Ptm.txt
#/Pronostico/Aviso/DC.txt
#/Pronostico/Marady.txt
#/Pronostico/ptrd.txt
wget http://www.insmet.cu/Pronostico/$1
dos2unix $1
espeak -f $1 -v es-la

xmessage -center -buttons OK -file "$1"

Si tengo que salir usando un proxy con autenticación, puedo poner en /etc/wgetrc
lo siguiente:
http_proxy=http://usuario:contraseña@ip_del_proxy:puerto

Dejo indicados, pero comentados los caminos de los distintos ficheros, por si hacen falta.
Lo invocamos así:
./leeparte.sh ptrd.txt

Estoy seguro de que si Lázaro me coge, escribe algo en Ruby que lo hace todo con una sola línea…  😀

Habiendo comprobado que funciona, busco en mi XFCE dónde le pongo que esto se ejecute al iniciar sesión.
Voy al botón XFCE, busco configuración, Sesión e inicio, Autoarranque de aplicaciones/Añadir. Entro la información, y listo.

Espero que les sirva de algo.

Esta entrada fue publicada en Software Libre. Guarda el enlace permanente.

Deja un comentario

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