notes/scripts/ltranslate
2022-11-11 01:50:14 -08:00

39 lines
1.1 KiB
Bash
Executable file

#!/usr/bin/env bash
# set -vx
if [ $# -lt 3 ]; then
printf "not enough arguments given\n\
usage: ltranslate sourcelang targetlang query\n"
exit 1
fi
dependencycheck() {
numdependencies="$#"
dependencies=("$@")
missingdependencies=0
for ((i = 0; i < numdependencies; i++)) ; do
if ! command -v "${dependencies[$i]}" &> /dev/null ; then
printf "dependency not met: %s\n" "${dependencies[$i]}"
missingdependencies=$((missingdependencies+1))
fi
done
if [ $missingdependencies -gt 0 ]; then
exit 1
fi
}
dependencycheck curl awk sed
ua='Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36'
url="https://libretranslate.de/translate"
headers="Content-Type: application/json"
source=$1
target=$2
query="${*:3}"
main() {
result=$(curl -sAX POST "${ua}" "${url}" -H "${headers}" -d '{"q": "'"${query}"'", "source": "'"${source}"'", "target": "'"${target}"'"}' | awk -F ':' '{ print $2 }' | sed 's/"//g; s/}//g')
printf '%s'"${result}\n"
}
main