diff options
Diffstat (limited to 'util/bin')
| -rwxr-xr-x | util/bin/dict.leo.org | 87 | 
1 files changed, 87 insertions, 0 deletions
diff --git a/util/bin/dict.leo.org b/util/bin/dict.leo.org new file mode 100755 index 00000000..6a9d9669 --- /dev/null +++ b/util/bin/dict.leo.org @@ -0,0 +1,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 >>// + +  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  [32m\1[m/g +  s/^#.*/\n[33m&[m/ + +  s/##.*Treffer $/\n[1;33m#&[m/ +' | less -R +echo + +#### end of file.  | 
