#! /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.