viernes, 22 de marzo de 2013

Consultar el pronóstico del clima desde la terminal

#!/bin/bash
###################################################################################
# This work is licensed under a Creative Commons Reconocimiento-NoComercial 3.0 Unported License.
# http://creativecommons.org/licenses/by-nc/3.0/deed.es_ES
# Creado por Paulo Lira Gutiérrez (enriquelira948@gmail.com)
# Se concede permiso para copiar, distribuir y/o modificar este programa siempre 
# y cuando se cite al autor y la fuente de http://ubuntu-scripts.blogspot.mx/  
# y según los términos de la GNU General Public License, Versión 3 o cualquiera
# posterior publicada por la Free Software Foundation.
YELLOW="\033[1;33m"
ENDCOLOR="\033[0m"
RED="\033[0;31m"
# Busque en la web http://www.meteored.mx su ubicación y copie como argumento de este script la url obtenida. Por ejemplo: http://www.meteored.mx/clima_San+Luis+Potosi-America+Norte-Mexico-San+Luis+Potosi-MMSP-1-22382.html
# En caso de que no exista su ID (código de 4 letras mayúsculas) en la url de meteored.mx, busque en la web http://weather.noaa.gov/weather/MX_cc.html su ubicación para obtener su ID. 
echo $1
URL_CLIMA=("w3m -dump $1")
ID=$(echo $1 | grep -o '[A-Z]*' | tail -1)
echo -e $YELLOW"`$URL_CLIMA | head -1`"$ENDCOLOR
ACTUALIZACION=$(weather -i $ID -m | head -2 | tail -1 | awk '{ print $3,$4,$5,$6,$7,$8 }')
echo -e $YELLOW"Ültima actualización: $ACTUALIZACION"$ENDCOLOR
TEMPERATURA=$(weather -i MMSP -m | head -3 | tail -1 | grep -o '[0123456789.]*')
echo -e $YELLOW"`weather -i $ID -m ` "$ENDCOLOR
sleep 3
function hoy()
{
DIA_ACTUAL=$($URL_CLIMA | head -54 | tail -42 | head -1 | awk '{ print $2 }')
echo -e $YELLOW"Información general del clima de hoy $DIA_ACTUAL"$ENDCOLOR
$URL_CLIMA | head -54 | tail -42 | head -6 | awk '{ print $2,$3 }'
sleep 3
TEMP_MAX_HOY=$($URL_CLIMA | head -54 | tail -42 | head -6 | sed -n 4p | awk '{ print $2 }')
echo -e $YELLOW"La temperatura máxima de hoy es de "$TEMP_MAX_HOY"C"$ENDCOLOR
sleep 2
TEMP_MIN_HOY=$($URL_CLIMA | head -54 | tail -42 | head -6 | sed -n 4p | awk '{ print $3 }')
echo -e $YELLOW"La temperatura mínima de hoy es de "$TEMP_MIN_HOY"C"$ENDCOLOR
sleep 3
PRECIPITACION=$($URL_CLIMA | head -54 | tail -42 | head -6 | tail -1 | awk '{ print $2,$3 }')
echo -e $YELLOW"La precipitación de hoy es de $PRECIPITACION"$ENDCOLOR
sleep 3
notify-send "`$URL_CLIMA | head -1`" "Temperatura máxima: $TEMP_MAX_HOY C \n Temperatura mínima: $TEMP_MIN_HOY \n La temperatura actual es de $TEMPERATURA°C"
}
hoy
function manana()
{
MANANA=$($URL_CLIMA | head -54 | tail -42 | head -12 | tail -6 | awk '{ print $2,$3 }' | head -1)
echo -e $YELLOW"Información general del clima de mañana $MANANA"$ENDCOLOR
$URL_CLIMA | head -54 | tail -42 | head -12 | tail -6 | awk '{ print $2,$3 }'
sleep 3
TEMP_MAX_MANANA=$($URL_CLIMA | head -54 | tail -42 | head -12 | tail -6 | awk '{ print $2,$3 }' | sed -n 4p | awk '{ print $1 }')
echo -e $YELLOW"La temperatura máxima de mañana $MANANA es de "$TEMP_MAX_MANANA"C"$ENDCOLOR
sleep 2
TEMP_MIN_MANANA=$($URL_CLIMA | head -54 | tail -42 | head -12 | tail -6 | awk '{ print $2,$3 }' | sed -n 4p | awk '{ print $2 }')
echo -e $YELLOW"La temperatura mínima de mañana $MANANA es de "$TEMP_MIN_MANANA"C"$ENDCOLOR
sleep 3 
PRECIPITACION=$($URL_CLIMA | head -54 | tail -42 | head -12 | tail -6 | tail -1 | awk '{ print $2,$3 }')
echo -e $YELLOW"La precipitación de mañana es de $PRECIPITACION"$ENDCOLOR
sleep 3
}
manana
function pasado_manana()
{
PASADO_MANANA=$($URL_CLIMA | head -54 | tail -42 | head -18 | tail -6 | awk '{ print $2,$3 }' | head -1)
echo -e $YELLOW"Información general del clima de pasado mañana $PASADO_MANANA"$ENDCOLOR
$URL_CLIMA | head -54 | tail -42 | head -18 | tail -6 | awk '{ print $2,$3 }'
sleep 3
TEMP_MAX_PMANANA=$($URL_CLIMA | head -54 | tail -42 | head -18 | tail -6 | awk '{ print $2,$3 }' | sed -n 4p | awk '{ print $1 }')
echo -e $YELLOW"La temperatura máxima de pasado mañana $PASADO_MANANA es de "$TEMP_MAX_PMANANA"C"$ENDCOLOR
sleep 2
TEMP_MIN_PMANANA=$($URL_CLIMA | head -54 | tail -42 | head -18 | tail -6 | awk '{ print $2,$3 }' | sed -n 4p | awk '{ print $2 }')
echo -e $YELLOW"La temperatura mínima de pasado mañana $PASADO_MANANA es de "$TEMP_MIN_PMANANA"C"$ENDCOLOR
sleep 3 
PRECIPITACION=$($URL_CLIMA | head -54 | tail -42 | head -18 | tail -6 | tail -1 | awk '{ print $2,$3 }')
echo -e $YELLOW"La precipitación de pasado mañana $PASADO_MANANA es de $PRECIPITACION"$ENDCOLOR
sleep 3
}
pasado_manana


El script consulta dos fuentes de datos: la página de http://www.meteored.mx   y la de http://weather.noaa.gov/weather/MX_cc.html    para suministrar datos al programa
Se le debe de pasar como argumento del script la url de meteored.mx si no no funcionará
Ejemplo:
./clima.sh   http://www.meteored.mx/clima_San+Luis+Potosi-America+Norte-Mexico-San+Luis+Potosi-MMSP-1-22382.html

Descarga: clima.sh


Pueden descargar el script o copiar y pegar el codigo anterior en su editor favorito (puede ser gedit), guardarlo, y darle permisos de ejecución; seleccionan el archivo guardado, le dan clic derecho >Propiedades > pestaña Permisos y marcan la casilla de "Permitir ejecutar el archivo como un programa". Algunos scripts no contienen la extension .sh pero aún asi siguen funcionando.

Nota: En cualquier momento podría modificar el script para adaptarlo a mis necesidades. Favor de avisar en caso de que los enlaces no funcionen.

No hay comentarios:

Publicar un comentario

Entre todos ayudemos a mejorar linux