diff options
Diffstat (limited to 'brweather/brweather')
-rwxr-xr-x | brweather/brweather | 444 |
1 files changed, 444 insertions, 0 deletions
diff --git a/brweather/brweather b/brweather/brweather new file mode 100755 index 0000000..d2e6abf --- /dev/null +++ b/brweather/brweather @@ -0,0 +1,444 @@ +#!/bin/bash +# BrWeather +# Criado por LeandroNKZ <leandronkz@gmail.com> +# Se encontrar BUGs, ou erros no programa, favor reportar ao desenvolvedor +# Acesse o site para maiores instruções: +# http://brweatherproject.blogspot.com/ +# Distribuído sob licença GPLv3 + +##Conferindo se o usuário não é root +if [ `whoami` = "root" ] ; then +echo "Erro: O BrWeather deve ser usado apenas como usuário normal." +exit 1 +fi + +##Conferindo se já existe o arquivo de configuração +conf(){ +mkdir ~/.brweather +mkdir ~/.brweather/cache +cp /opt/brweather/doc/brweather.conf.default ~/.brweather.conf +} + +conf2(){ +cp /opt/brweather/doc/brweather.conf.default ~/.brweather.conf +} + +conf3(){ +mkdir ~/.brweather/cache +} + +ls ~/.brweather &>/dev/null || conf +cat ~/.brweather.conf &>/dev/null || conf2 +ls ~/.brweather/cache &>/dev/null || conf3 + + +##Conferindo se foi utilizada alguma opção +if [ -z $1 ] ; then +echo 'Utilize alguma opção. + +Uso: brweather [OPÇÃO] + +Tente "brweather --help" para mais opções.' +exit 1 +fi + +##Mensagens de Erro +LOG=`date "+%A %d/%m/%Y %H:%M:%S"` + +ERRO1="Log $LOG COD#`date +%s` +Falha no cache INPE + +Falha ao obter dados das previsões. +Isso pode ser causado por: +- Falha ao conectar à Internet; +- Servidor temporariamente fora do ar; +- O programa não consegue interpretar as informações baixadas. + +Tente limpar o cache com o comando: + +brweather --clean-cache + +Se o erro persistir por vários dias, entre em contato com o desenvolvedor pelo e-mail abaixo: + +leandronkz@gmail.com" + +ERROG1="Log $LOG COD#`date +%s` +Falha no cache Google + +Falha ao obter dados das previsões. +Isso pode ser causado por: +- Falha ao conectar à Internet; +- Servidor temporariamente fora do ar; +- O programa não consegue interpretar as informações baixadas. + +Tente limpar o cache com o comando: + +brweather --clean-cache + +Se o erro persistir por vários dias, entre em contato com o desenvolvedor pelo e-mail abaixo: + +leandronkz@gmail.com" + + +##Versão do programa +VERSION=`cat /opt/brweather/doc/version` + + +##Ler arquivo de configuração +source ~/.brweather.conf + +##Opções do programa que não precisam de Internet +case $1 in + "--gerar-log") source /opt/brweather/bin/logs + exit 0 +;; + "--version") echo "BrWeather-$VERSION" + exit 0 +;; + "--autor") echo "LeandroNKZ <leandronkz@gmail.com>" + echo "http://brweatherproject.blogspot.com/" + exit 0 +;; + "--help") cat /opt/brweather/doc/help + exit 0 +;; + "--help-default") cat /opt/brweather/doc/help-default + exit 0 +;; + "--help-google") cat /opt/brweather/doc/help-google + exit 0 +;; + "--man") man /opt/brweather/doc/man + exit 0 +;; + "--clean-cache") rm ~/.brweather/log* 2>/dev/null & rm ~/.brweather/cache/* 2>/dev/null + echo "Cache limpo!" + exit 0 +;; + "--total-images") echo -e "imagem1\nimagem2\nimagem3\nimagem4\nimagem5\nimagem6\nimagem7\nimagem8\nimagem9\nimagem10" + exit 0 +;; + "--changelog") cat /opt/brweather/doc/Changelog + exit 0 +;; + "--option=LUA"*) source /opt/brweather/bin/moon $* + exit 0 +;; + "--season"*) source /opt/brweather/bin/seasons $* + exit 0 +;; +esac + +#Baixar cache de previsões +cat ~/.brweather/cache/timer &>/dev/null || echo "0" > ~/.brweather/cache/timer +TIME=`date '+%s'` +TIME1=`cat ~/.brweather/cache/timer` +TIME2=$(($TIME+$TIMER)) + +if [ $TIME1 -lt $TIME ] +then + if [ $GOOGLE = "0" ] ; then + wget -q -T $TIME -O ~/.brweather/cache/previsao "http://tempo1.cptec.inpe.br/cidades/tempo/$CPTEC_INPE" + echo $TIME2 > ~/.brweather/cache/timer + cat ~/.brweather/cache/previsao | iconv -f iso-8859-1 -t $CODIGO -o ~/.brweather/cache/previsao + else + wget -q -T $TIME -O ~/.brweather/cache/previsaog "http://www.google.com/ig/api?weather=$CITY,$STATE,$COUNTRY&hl=pt-br" + echo $TIME2 > ~/.brweather/cache/timer + cat ~/.brweather/cache/previsaog | iconv -f iso-8859-1 -t $CODIGO -o ~/.brweather/cache/previsaog + fi + if [ $GOOGLE = "0" ] ; then + if [ -f `grep -m1 -A1 '<div id="subcid">' ~/.brweather/cache/previsao | cut -f2 -d'>' | cut -f1 -d'<' | tail -n1` ] ; then + echo "$ERRO1" > ~/.brweather/log + echo $(($TIME+10)) > ~/.brweather/cache/timer + else + cat ~/.brweather/cache/previsao > ~/.brweather/cache/cache + sed -i 's/\r//g' ~/.brweather/cache/cache + date "+%H:%M:%S" > ~/.brweather/cache/lastupdate + fi + else + if [ -f `cut -f23 -d= ~/.brweather/cache/previsaog | cut -f1 -d/ | cut -f2 -d'"'` ] ; then + echo "$ERROG1" > ~/.brweather/log + echo $(($TIME+10)) > ~/.brweather/cache/timer + else + cat ~/.brweather/cache/previsaog > ~/.brweather/cache/gcache + date "+%H:%M:%S" > ~/.brweather/cache/lastupdate + fi + fi +fi + + +#Imagens +IMAGE=`echo '${image'` + +case $1 in +##CN + "--imagem1=CN") + IMAGEM=`echo "1"` +;; + "--imagem2=CN") + IMAGEM=`echo "2"` +;; + "--imagem3=CN") + IMAGEM=`echo "3"` +;; + "--imagem4=CN") + IMAGEM=`echo "4"` +;; + "--imagem5=CN") + IMAGEM=`echo "5"` +;; + "--imagem6=CN") + IMAGEM=`echo "6"` +;; + "--imagem7=CN") + IMAGEM=`echo "7"` +;; + "--imagem8=CN") + IMAGEM=`echo "8"` +;; + "--imagem9=CN") + IMAGEM=`echo "9"` +;; + "--imagem10=CN") + IMAGEM=`echo "10"` +;; +##C1 + "--imagem1=C1") + IMAGEM=`echo "1"` +;; + "--imagem2=C1") + IMAGEM=`echo "2"` +;; + "--imagem3=C1") + IMAGEM=`echo "3"` +;; + "--imagem4=C1") + IMAGEM=`echo "4"` +;; + "--imagem5=C1") + IMAGEM=`echo "5"` +;; + "--imagem6=C1") + IMAGEM=`echo "6"` +;; + "--imagem7=C1") + IMAGEM=`echo "7"` +;; + "--imagem8=C1") + IMAGEM=`echo "8"` +;; + "--imagem9=C1") + IMAGEM=`echo "9"` +;; + "--imagem10=C1") + IMAGEM=`echo "10"` +;; +##C2 + "--imagem1=C2") + IMAGEM=`echo "1"` +;; + "--imagem2=C2") + IMAGEM=`echo "2"` +;; + "--imagem3=C2") + IMAGEM=`echo "3"` +;; + "--imagem4=C2") + IMAGEM=`echo "4"` +;; + "--imagem5=C2") + IMAGEM=`echo "5"` +;; + "--imagem6=C2") + IMAGEM=`echo "6"` +;; + "--imagem7=C2") + IMAGEM=`echo "7"` +;; + "--imagem8=C2") + IMAGEM=`echo "8"` +;; + "--imagem9=C2") + IMAGEM=`echo "9"` +;; + "--imagem10=C2") + IMAGEM=`echo "10"` +;; +##C3 + "--imagem1=C3") + IMAGEM=`echo "1"` +;; + "--imagem2=C3") + IMAGEM=`echo "2"` +;; + "--imagem3=C3") + IMAGEM=`echo "3"` +;; + "--imagem4=C3") + IMAGEM=`echo "4"` +;; + "--imagem5=C3") + IMAGEM=`echo "5"` +;; + "--imagem6=C3") + IMAGEM=`echo "6"` +;; + "--imagem7=C3") + IMAGEM=`echo "7"` +;; + "--imagem8=C3") + IMAGEM=`echo "8"` +;; + "--imagem9=C3") + IMAGEM=`echo "9"` +;; + "--imagem10=C3") + IMAGEM=`echo "10"` +;; +##C4 + "--imagem1=C4") + IMAGEM=`echo "1"` +;; + "--imagem2=C4") + IMAGEM=`echo "2"` +;; + "--imagem3=C4") + IMAGEM=`echo "3"` +;; + "--imagem4=C4") + IMAGEM=`echo "4"` +;; + "--imagem5=C4") + IMAGEM=`echo "5"` +;; + "--imagem6=C4") + IMAGEM=`echo "6"` +;; + "--imagem7=C4") + IMAGEM=`echo "7"` +;; + "--imagem8=C4") + IMAGEM=`echo "8"` +;; + "--imagem9=C4") + IMAGEM=`echo "9"` +;; + "--imagem10=C4") + IMAGEM=`echo "10"` +;; +##C5 + "--imagem1=C5") + IMAGEM=`echo "1"` +;; + "--imagem2=C5") + IMAGEM=`echo "2"` +;; + "--imagem3=C5") + IMAGEM=`echo "3"` +;; + "--imagem4=C5") + IMAGEM=`echo "4"` +;; + "--imagem5=C5") + IMAGEM=`echo "5"` +;; + "--imagem6=C5") + IMAGEM=`echo "6"` +;; + "--imagem7=C5") + IMAGEM=`echo "7"` +;; + "--imagem8=C5") + IMAGEM=`echo "8"` +;; + "--imagem9=C5") + IMAGEM=`echo "9"` +;; + "--imagem10=C5") + IMAGEM=`echo "10"` +;; +##C6 + "--imagem1=C6") + IMAGEM=`echo "1"` +;; + "--imagem2=C6") + IMAGEM=`echo "2"` +;; + "--imagem3=C6") + IMAGEM=`echo "3"` +;; + "--imagem4=C6") + IMAGEM=`echo "4"` +;; + "--imagem5=C6") + IMAGEM=`echo "5"` +;; + "--imagem6=C6") + IMAGEM=`echo "6"` +;; + "--imagem7=C6") + IMAGEM=`echo "7"` +;; + "--imagem8=C6") + IMAGEM=`echo "8"` +;; + "--imagem9=C6") + IMAGEM=`echo "9"` +;; + "--imagem10=C6") + IMAGEM=`echo "10"` +;; +##C7 + "--imagem1=C7") + IMAGEM=`echo "1"` +;; + "--imagem2=C7") + IMAGEM=`echo "2"` +;; + "--imagem3=C7") + IMAGEM=`echo "3"` +;; + "--imagem4=C7") + IMAGEM=`echo "4"` +;; + "--imagem5=C7") + IMAGEM=`echo "5"` +;; + "--imagem6=C7") + IMAGEM=`echo "6"` +;; + "--imagem7=C7") + IMAGEM=`echo "7"` +;; + "--imagem8=C7") + IMAGEM=`echo "8"` +;; + "--imagem9=C7") + IMAGEM=`echo "9"` +;; + "--imagem10=C7") + IMAGEM=`echo "10"` +;; +esac + +##Escolher entre modo Google ou INPE +if [ $GOOGLE = "0" ] ; then + source /opt/brweather/bin/inpe $* +else + source /opt/brweather/bin/google $* +fi + +##Exterminador de logs ;) +if [ -e ~/.brweather/log ] ; then +COD=`head -n1 ~/.brweather/log | cut -f2 -d'#'` +COD2=$(($COD + 10800)) + if [ $TIME -gt $COD2 ] + then + rm ~/.brweather/log + elif [ $TIME -eq $COD2 ] + then + rm ~/.brweather/log + fi +fi + +exit 0 |