#!/bin/sh # require: grep, sed, curl UA="Opera/9.80 (Android; Opera Mini/12.0.1987/37.7327; U; pl) Presto/2.12.423 Version/12.16" ENC="UTF-8" SL=$(echo $1|awk -F= '{print $1}') TL=$(echo $1|awk -F= '{print $2}') RETRY_NUMBER=0 while true do res=$(curl -G -s https://translate.google.com/m \ -d "hl=en" \ -d "sl=$SL" \ -d "tl=$TL" \ -d "ie=$ENC" \ -d "prev=_m" \ --data-urlencode "q=$2" \ -A "$UA") if ! echo "$res"|grep -F 'Error 502' >/dev/null then echo "$res"|grep '"result-container"'|sed 's/.*class="result-container">\([^<]*\)<.*/\1/' exit 0 fi RETRY_NUMBER=$(( $RETRY_NUMBER + 1 )) if [ $RETRY_NUMBER -gt 5 ] then echo 'Failure' >/dev/stderr exit 1 fi echo $(( 2 ** $RETRY_NUMBER )) sleep $(( 2 ** $RETRY_NUMBER )) done