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
|
#! /bin/sh
#### dict.leo.org version 2.0 beta 1
set -euf
cache_dir=/tmp/dict.leo.org/
file="$cache_dir$*"
url="http://dict.leo.org/?$*"
# TODO check sanity of filename
if test -d "$cache_dir" ; then
test -e "$file" || { curl --silent "$url" | tee "$file" ; }
else
curl --silent "$url"
fi |
sed 's/>\( *.\)/>\n\1/g' | sed -n '
s/[[:space:]]/ /g
/<!-- # Werbung # -->/,/<\/td>/b
/<!-- ============================================== -->/,/^<\/td>/b
/<!-- # Trailer # -->/,/^ <\/table>/b
/<table id="subnavigation" class="border">/,/<\/table>/b
/<div id="divMoreInfo" class="popup">/,/^ <\/table>/b
## show link in rendered version
s/^<a href="\(.*searchLocRelinked.*\)">$/&mehr: \1/
s/^mehr >>//
s/<[Bb][Rr] *\/>/,/g
p
b
:c;# comment
s/-->/\\-\\-\\>/g
s/<!--/\\<\\!\\-\\-/g
s/.*/<!--(&)-->/
p
' \
| w3m -cols 1024 -T text/html -dump | sed '
s/[[:space:]]\+/ /g
s/ ,/,/g
s/^ //;s/ $//
s/[┌┬┐└┴┘├┼┤─]//g
s/ *│ */|/g
s/\[ \]//
s/\[Speichern\] der ausgewa:hlten Wo:rter im Trainer//
s/^||//;s/|| \?$//
' | sed -n '
/^\[EN-> DE\]/,$b
s/^mehr: /+ /
s/^ENGLISCH||DEUTSCH \?/= Englisch -> Deutsch/
s/^|\([0-9]\+\) \(Treffer\)|$/= \1 \2/
s/^\([^|]\+\)||\([^|]\+\)$/- \1|\2/
s/^[^=+#-][^|]\+$/## &/
p
' | sed -n '
/^$/b
s/ \([?!]\)/\1/g
s/\([[(]\) /\1/g;s/ \([]\)]\)/\1/g
s/ ([0-9]\+ of [0-9]\+) \?//;# TODO
#s/^##.*Grundform.*/\n#&/
/^## .*Grundform.*/,/^##\( .*\)\?/{
/##/{/Grundform/!p}
b
}
/^## Informationen /,$b;# TODO
#/^## Beispiele/,$b;# TODO
#/^## Wendungen/,$b;# TODO
/^+/b;# TODO
#/^=/b;# TODO
p
' | sed '
##
s/|\(.*\)/\n [32m\1[m/g
s/^#.*/\n[33m&[m/
s/##.*Treffer $/\n[1;33m#&[m/
' | less -R
echo
#### end of file.
|