/
zztempo.sh
131 lines (124 loc) · 3.77 KB
/
zztempo.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# ----------------------------------------------------------------------------
# Mostra previsão do tempo obtida em http://wttr.in/ por meio do comando curl.
# Mostra as condições do tempo (clima) em um determinado local.
# Se nenhum parâmetro for passado, é apresentada a previsão de Brasília.
# As siglas de aeroporto também podem ser utilizadas.
#
# Opções:
#
# -l, --lang, --lingua
# Exibe a previsão em uma das línguas disponíveis: az be bg bs ca cy cs
# da de el eo es et fi fr hi hr hu hy is it ja jv ka kk ko ky lt lv mk
# ml nl nn pt pl ro ru sk sl sr sr-lat sv sw th tr uk uz vi zh zu
#
# -u, --us
# Retorna leitura em unidades USCS - United States customary units -
# Unidades Usuais nos Estados Unidos. Isto é: "°F" para temperatura,
# "mph" para velocidade do vento, "mi" para visibilidade e "in" para
# precipitação.
#
# -v, --vento
# Retorna vento em m/s ao invés de km/h ou mph.
#
# -m, --monocromatico
# Nao utiliza comandos de cores no terminal
#
# -s, --simples
# Retorna versão curta, com previsão de meio-dia e noite apenas.
# Utiliza 63 caracteres de largura contra os 125 da resposta completa.
#
# -c, --completo
# Retorna versão completa, com 4 horários ao longo do dia.
# Utiliza 125 caracteres de largura.
#
# -d, --dias
# Determina o número de dias (entre 0 e 3) de previsão apresentados.
# -d 0 = apenas tempo atual. Também pode se chamado com -0
# -d 1 = tempo atual mais 1 dia. Também pode se chamado com -1
# -d 2 = tempo atual mais 2 dias. Também pode se chamado com -2
# -d 3 = tempo atual mais 3 dias. Padrão.
#
# Uso: zztempo [parametros] <localidade>
# Ex.: zztempo 'São Paulo'
# zztempo cwb
# zztempo -d 0 Curitiba
# zztempo -2 -l fr -s Miami
#
# Autor: Thobias Salazar Trevisan, www.thobias.org
# Desde: 2004-02-19
# Versão: 2
# Requisitos: zzzz zztool
# Tags: internet, consulta
# ----------------------------------------------------------------------------
zztempo ()
{
zzzz -h tempo "$1" && return
# Embrulhamos os principais parametros disponiveis em wttr.in/:help
# Em novos comandos "aportuguesados".
# Inicializa os modificadores com seus valores padrão.
local lingua="pt" # Lingua PT
local unidade="m" # Unidades SI
local vento="" # Vento Km/h
local dias="3" # Máximo número de dias de previsão
local semcores="" # Usa terminal colorido
local simplificado # Previsao completa ou simplificada
#Altera para simplificado se largura do shell não comportar
if [ 125 -gt $(tput cols) ]
then
simplificado="n" # Previsao simplificada
else
simplificado="" # Previsao completa
fi
#leitura dos parametros de entrada
while test "${1#-}" != "$1"
do
case "$1" in
-l | --lang | --lingua)
lingua="$2";
shift;shift ;;
-u | --us)
unidade="u";
shift ;;
-v | --vento)
vento="M";
shift ;;
-s | --simples)
simplificado="n";
shift ;;
-c | --completo)
simplificado="";
shift ;;
-m | --monocromatico)
semcores="T";
shift;;
-d | --dias)
if zztool testa_numero "$2"
then
dias="$2";
else
zztool erro "Número de dias inválido: $2";
return 1;
fi
shift; shift;;
-0)
dias="0";
shift ;;
-1)
dias="1";
shift;;
-2)
dias="2";
shift;;
--) shift; break ;;
-*) zztool erro "Opção inválida: $1"; return 1 ;;
*) break;;
esac
done
# Seguindo a variável ZZCOR quando igual a 0, independende da opção escolhida.
[ $ZZCOR -eq 0 ] && semcores="T"
# Comando bash proposto pelo site em: "wttr.in/:bash.function"
# Chama Previsão de Brasília se outro parâmetro não for passado
local opcoes="${unidade}${vento}${simplificado}${dias}${semcores}"
curl -s -H "Accept-Language: ${lingua}" ${lingua}.wttr.in/"${1:-Brazil}?${opcoes}" |
sed '/^Follow /d; /^New feature:/d'
}