summaryrefslogtreecommitdiffstats
path: root/util/bin/dict.leo.org
blob: 6a9d9669dadefa618a8e2a363bf7868d606281dd (plain)
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 -rn '
  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 &gt;&gt;//

  s/<[Bb][Rr] *\/>/,/g

  p
  b
  :c;# comment
  s/-->/\\-\\-\\>/g
  s/<!--/\\<\\!\\-\\-/g
  s/.*/<!--(&)-->/
  p
' \
| w3m -cols 1024 -T text/html -dump | sed -r '
  s/[[:space:]]+/ /g
  s/ ,/,/g
  s/^ //;s/ $//
  s/[┌┬┐└┴┘├┼┤─]//g
  s/ *│ */|/g
  s/\[ \]//
  s/\[Speichern\] der ausgewa:hlten Wo:rter im Trainer//
  s/^\|\|//;s/\|\| ?$//
' | sed -rn '
  /^\[EN-> DE\]/,$b
  s/^mehr: /+ /
  s/^ENGLISCH\|\|DEUTSCH ?/= Englisch -> Deutsch/
  s/^\|([0-9]+) (Treffer)\|$/= \1 \2/
  s/^([^|]+)\|\|([^|]+)$/- \1|\2/

  s/^[^=+#-][^|]+$/## &/

  p
' | sed -rn '
  /^$/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 -r '
  ##
  s/\|(.*)/\n  \1/g
  s/^#.*/\n&/

  s/##.*Treffer $/\n#&/
' | less -R
echo

#### end of file.