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
# ----------------------------------------------------------------------------
# http://www.m-w.com
# Fala a pronúncia correta de uma palavra em inglês.
# Uso: zzpronuncia palavra
# Ex.: zzpronuncia apple
#
# Autor: Thobias Salazar Trevisan, www.thobias.org
# Desde: 2002-04-10
# Licença: GPL
# ----------------------------------------------------------------------------
zzpronuncia ()
{
zzzz -h pronuncia "$1" && return

local wav_file wav_dir wav_url
local palavra=$1
local cache="$ZZTMP.$palavra.wav"
local url='http://www.m-w.com/dictionary'
local url2='http://cougar.eb.com/soundc11'

# Verificação dos parâmetros
[ "$1" ] || { zztool uso pronuncia; return 1; }

# O 'say' é um comando do Mac OS X, aí não precisa baixar nada
if test -x /usr/bin/say
then
say $*
return
fi

# Busca o arquivo WAV na Internet caso não esteja no cache
if ! test -f "$cache"
then
# Extrai o nome do arquivo no site do dicionário
wav_file=$(
$ZZWWWHTML "$url/$palavra" |
sed -n "/.*audio.pl?\([a-z0-9]*\.wav\)=$palavra.*/{s//\1/p;q;}")

# Ops, não extraiu nada
if test -z "$wav_file"
then
echo "$palavra: palavra não encontrada"
return 1
fi

# O nome da pasta é a primeira letra do arquivo (/a/apple001.wav)
# Ou "number" se iniciar com um número (/number/9while01.wav)
wav_dir=$(echo $wav_file | cut -c1)
echo $wav_dir | grep '[0-9]' >/dev/null && wav_dir='number'

# Compõe a URL do arquivo e salva-o localmente (cache)
wav_url="$url2/$wav_dir/$wav_file"
echo "URL: $wav_url"
$ZZWWWHTML "$wav_url" > $cache
echo "Gravado o arquivo '$cache'"
fi

# Fala que eu te escuto
play $cache
}

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

r669 by aureliojargas on Mar 28, 2012   Diff
lint: removendo espaços inúteis. Parte
2.
r524 by aureliojargas on May 23, 2011   Diff
COMBO: Agora todas as chamadas ao
zztool uso por falha na verificação
dos parâmetros possuem um return 1
depois. Assim outros scripts que usam
as funções podem detectar erros.
r477 by aureliojargas on May 20, 2011   Diff
COMBO:
Arrumado o return de várias funções.
Agora usando return 1 quando algum
erro ocorre e return 0 quando é uma
saída OK. Outros casos onde pode haver
...
All revisions of this file

File info

Size: 1649 bytes, 60 lines
Powered by Google Project Hosting