summaryrefslogtreecommitdiffstats
path: root/util/bin/dict.leo.org
diff options
context:
space:
mode:
Diffstat (limited to 'util/bin/dict.leo.org')
-rwxr-xr-xutil/bin/dict.leo.org87
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 &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.