#! /bin/sh # usage: dic [--lang=LANG] WORD... # where LANG may be one of en, fr, es, it, ch, ru, pt, pl set -euf main() { _args=$(getopt -n "$0" -s sh \ -o l: \ -l lang: \ -- "$@") if \test $? != 0; then exit 1; fi eval set -- "$_args" unset _args lang=en while :; do case $1 in -l|--lang) lang=$2; shift 2;; --) shift; break;; esac; done search=$* lp=${lang}de GET | simplify | tac } GET() { curl -GsS \ -b 'LEOABTEST=T; browser=webkit%3B5%3Bajax' \ --data-urlencode lang="$lang" \ --data-urlencode lp="$lp" \ --data-urlencode multiwordShowSingle=on \ --data-urlencode resultOrder=basic \ --data-urlencode rmSearch=on \ --data-urlencode rmWords=off \ --data-urlencode searchLoc=0 \ --data-urlencode search="$search" \ --data-urlencode tolerMode=nof \ "https://dict.leo.org/dictQuery/m-vocab/$lp/query.xml" } simplify() { sed ' s|]*\)>|\nREPR: |g s||\n|g ' | grep ^REPR | sed ' s/^REPR: // 1~2{s/$//} 2~2{s/$//} ' | tr -d \\n | sed ' s// - /g s//\n/g s|[^>]*>||g s|[^>]*>||g s|[^>]*>||g #q s/⇔/⇔/g s/ / /g; #   s/®/®/g; s/ */ /g # s/ *//g s| *|/|g s| *|/|g s:1:¹:g; s:2:²:g; s:3:³:g; s::^(:g s::):g s:0:₀:g; s:1:₁:g; s:2:₂:g; s:3:₃:g; s:4:₄:g; s:5:₅:g; s:6:₆:g; s:7:₇:g; s:8:₈:g; s:9:₉:g; s::_(:g s::):g s: *::g s: *::g s| *||g s| *||g s| *||g s| *||g # "Verbtabelle" and plural s: *::g s: *::g s:
:\n:g ' } usage() { sed -rn '/^# usage:/,/^[^#]/{/^#/{s/# //;p}}' "$0" >&2 } main "$@"