aboutsummaryrefslogtreecommitdiff
path: root/brweather/brweather
diff options
context:
space:
mode:
Diffstat (limited to 'brweather/brweather')
-rwxr-xr-xbrweather/brweather444
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