My favorites | Sign in
Project Home Downloads Wiki Issues Source
Checkout   Browse   Changes    
 
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
# ----------------------------------------------------------------------------
# http://br.invertia.com
# Busca a cotação de várias moedas (mais de 100!) em relação ao dólar.
# Com a opção -t, mostra TODAS as moedas, sem ela, apenas as principais.
# É possível passar várias palavras de pesquisa para filtrar o resultado.
# Obs.: Hora GMT, Dólares por unidade monetária para o Euro e a Libra.
# Uso: zzmoeda [-t] [pesquisa]
# Ex.: zzmoeda
# zzmoeda -t
# zzmoeda euro libra
# zzmoeda -t peso
#
# Autor: Aurelio Marinho Jargas, www.aurelio.net
# Desde: 2004-03-29
# Licença: GPL
# ----------------------------------------------------------------------------
zzmoeda ()
{
zzzz -h moeda "$1" && return

local extra dados formato linha
local url='http://br.invertia.com/mercados/divisas'
local padrao='.'

# Devemos mostrar todas as moedas?
if [ "$1" = '-t' ]
then
extra='divisasregion.aspx?idtel=TODAS'
shift
fi

# Prepara o filtro para pesquisar todas as palavras informadas (OU)
[ "$1" ] && padrao=$(echo $* | sed 's/ /\\|/g')

# Faz a consulta e filtra o resultado
dados=$(
$ZZWWWDUMP "$url/$extra" |
sed '
# Limpeza
/IFRAME:/d
s/\[.*]//
s/^ *//
/[0-9][0-9]$/!d

# Apaga variação (deixa apenas variação-%)
s/\(.*\) -\{0,1\}[0-9][0-9]*,[0-9]\{4\}/\1/

# Adiciona '-' nas colunas vazias de compra
/[0-9][,.][0-9]\{4\}.*[0-9][,.][0-9]\{4\}/!s/[0-9][0-9]*[,.][0-9]\{4\}/- &/

# Tira espaço da sigla do Peso Mexicano (MXP 24H)
s/ \([24][48]H\) /-\1 /

# Separa os campos por @, do fim ao início da linha
s/ */ /g
s/\(.*\) /\1@/
s/\(.*\) /\1@/
s/\(.*\) /\1@/
s/\(.*\) /\1@/
s/\(.*\) /\1@/

# Manda o nome da moeda lá pro final da linha
# No início desalinha, o printf %s conta UTF errado
s/\([^@]*\)@\(.*\)/\2@\1/

# Espaços viram _ para não atrapalharem
y/ /_/' |
tr @ \\t |
grep -i "$padrao"
)

# Pescamos algo?
[ "$dados" ] || return

# Sim! Então formate uma tabela bonitinha com o resultado
formato='%-7s %12s %12s %6s %11s %s'

printf "$formato\n" Sigla Compra Venda Var.% Hora Moeda

echo "$dados" |
while read linha
do
printf "$formato\n" $linha | tr _ ' '
done
}

Change log

r710 by aureliojargas on Mar 29, 2012   Diff
SEGURANÇA: $1 colocado entre aspas na
chamada padrão zzzz -h de todas as
funções.
Go to: 
Sign in to write a code review

Older revisions

r668 by aureliojargas on Mar 28, 2012   Diff
lint: removendo espaços inúteis.
r655 by aureliojargas on Mar 23, 2012   Diff
s/Aurélio/Aurelio/ *
r260 by aureliojargas on Dec 21, 2010   Diff
COMBO: mudança em todas as funções
para trocar a ordem das linhas no
cabeçalho. Agora é:

- Descrição de uma linha
...
All revisions of this file

File info

Size: 2218 bytes, 85 lines
Powered by Google Project Hosting