En cosa de pocas horas desde su puesta en producción, el servidor en wttr.in fue colapsado. Y no es de extrañar, puesto que el servicio que ofrece se difundió viralmente por internet: Conocer el tiempo meteorológico. Hasta aquí nada nuevo, excepto porque tiene soporte ASCII para línea de comandos.

Consiste en un servicio web que a través de geolocalización y otras APIs obtiene por defecto la previsión meteorológica de el lugar donde se encuentra el cliente que realiza la petición al servicio. No obstate, incluyendo parámetros en la URL se puede saber la de cualquier lugar. ¿Cómo se hace? Preferentemente a través del programa curl. Por ejemplo, el comando curl -4 wttr.in
geolocalizaría nuestra dirección IP y nos mostrará el tiempo. No obstante la geolocalización no siempre es exacta, de modo que puedes introducir manualmente el nombre de la localidad: curl -4 wttr.in/Ponferrada, León
Pero como tengo mala memoria – sobre todo para los nombres de programas y dominios – he decidido que quiero un comando más sencillo. Algo como tiempo Ponferrada, León
. Podría crear un alias al comando con curl, pero los alias no pueden recibir parámetros y a mí me interesaría poder elegir el municipio. Algo que se puede arreglar con un alias a una función. Por otro lado, tampoco me apetece tener que redeclararlo cada vez que inicie sesión, con lo cual incluiría el código en un fichero local estilo .bashrc, .bash_aliases, o el que corresponda con la shell del mi usuario. Tal es así, que en mi .bash_aliases, añadí:
function whatstheweatherlike () { echo -e "$*\n" ; curl -4 wttr\.in\/"$*" ; } alias tiempo=whatstheweatherlike ;
$*
representa a todos los parámetros que se le envía a un programa desde cli, teniendo en cuenta que se considera un parámetro nuevo cada cadena de texto separada por espacios. Así, podremos especificar el nombre del municipio, provincia y país si se considerara necesario. Lo demás es todo autoexplicativo. Si alguien tiene más curiosidad, puede seguir al autor en twitter así como echar un vistazo al código de su app en github por si queréis clonarlo, mejorarlo, o crear un issue si habéis encontrado un bug.
¡Hasta la próxima!