enable retry by default

This commit is contained in:
Kay Marquardt (Gnadelwartz) 2020-06-11 08:33:59 +02:00
parent 2bc8f398c0
commit 81c8771898
4 changed files with 27 additions and 25 deletions

View File

@ -11,7 +11,7 @@
# This file is public domain in the USA and all free countries. # This file is public domain in the USA and all free countries.
# Elsewhere, consider it to be WTFPLv2. (wtfpl.net/txt/copying) # Elsewhere, consider it to be WTFPLv2. (wtfpl.net/txt/copying)
# #
#### $$VERSION$$ v0.96-pre-34-gf968c8b #### $$VERSION$$ v0.96-pre-35-g2bc8f39
# #
# Exit Codes: # Exit Codes:
# - 0 sucess (hopefully) # - 0 sucess (hopefully)
@ -205,7 +205,7 @@ fi
################## ##################
# here we start with the real stuff # here we start with the real stuff
BOTSEND_RETRY="no" # do not retry by default BASHBOT_RETRY="" # retry by default
URL="${BASHBOT_URL:-https://api.telegram.org/bot}${BOTTOKEN}" URL="${BASHBOT_URL:-https://api.telegram.org/bot}${BOTTOKEN}"
ME_URL=$URL'/getMe' ME_URL=$URL'/getMe'
@ -404,15 +404,15 @@ sendJsonResult(){
printf "%s: RESULT=%s FUNC=%s CHAT[ID]=%s ERROR=%s DESC=%s ACTION=%s\n" "$(date)"\ printf "%s: RESULT=%s FUNC=%s CHAT[ID]=%s ERROR=%s DESC=%s ACTION=%s\n" "$(date)"\
"${BOTSENT[OK]}" "${2}" "${3}" "${BOTSENT[ERROR]}" "${BOTSENT[DESCRIPTION]}" "${4:0:60}" "${BOTSENT[OK]}" "${2}" "${3}" "${BOTSENT[ERROR]}" "${BOTSENT[DESCRIPTION]}" "${4:0:60}"
# warm path, do not retry on error, also if we use wegt # warm path, do not retry on error, also if we use wegt
[ -n "${BOTSEND_RETRY}${BASHBOT_WGET}" ] && return [ -n "${BASHBOT_RETRY}${BASHBOT_WGET}" ] && return
# OK, we can retry sendJson, let's see what's failed # OK, we can retry sendJson, let's see what's failed
# throttled, telegram say we send to much messages # throttled, telegram say we send to much messages
if [ -n "${BOTSENT[RETRY]}" ]; then if [ -n "${BOTSENT[RETRY]}" ]; then
BOTSEND_RETRY="$(( BOTSENT[RETRY]++ ))" BASHBOT_RETRY="$(( BOTSENT[RETRY]++ ))"
printf "Retry %s in %s seconds ...\n" "${2}" "${BOTSEND_RETRY}" printf "Retry %s in %s seconds ...\n" "${2}" "${BASHBOT_RETRY}"
sendJsonRetry "${2}" "${BOTSEND_RETRY}" "${@:3}" sendJsonRetry "${2}" "${BASHBOT_RETRY}" "${@:3}"
unset BOTSEND_RETRY unset BASHBOT_RETRY
return return
fi fi
# timeout, failed connection or blocked # timeout, failed connection or blocked
@ -422,10 +422,10 @@ sendJsonResult(){
printf "%s: BASHBOT IP Adress is blocked!\n" "$(date)" printf "%s: BASHBOT IP Adress is blocked!\n" "$(date)"
# user provided function to recover or notify block # user provided function to recover or notify block
if _exec_if_function bashbotBlockRecover; then if _exec_if_function bashbotBlockRecover; then
BOTSEND_RETRY="2" BASHBOT_RETRY="2"
printf "bashbotBlockRecover returned true, retry %s ...\n" "${2}" printf "bashbotBlockRecover returned true, retry %s ...\n" "${2}"
sendJsonRetry "${2}" "${BOTSEND_RETRY}" "${@:3}" sendJsonRetry "${2}" "${BASHBOT_RETRY}" "${@:3}"
unset BOTSEND_RETRY unset BASHBOT_RETRY
fi fi
return return
fi fi
@ -433,9 +433,9 @@ sendJsonResult(){
if [ -n "${BASHBOT_CURL_ARGS}" ] || [ "${BASHBOT_CURL}" != "curl" ]; then if [ -n "${BASHBOT_CURL_ARGS}" ] || [ "${BASHBOT_CURL}" != "curl" ]; then
printf "Problem with \"%s %s\"? retry %s with default config ...\n"\ printf "Problem with \"%s %s\"? retry %s with default config ...\n"\
"${BASHBOT_CURL}" "${BASHBOT_CURL_ARGS}" "${2}" "${BASHBOT_CURL}" "${BASHBOT_CURL_ARGS}" "${2}"
BOTSEND_RETRY="2"; BASHBOT_CURL="curl"; BASHBOT_CURL_ARGS="" BASHBOT_RETRY="2"; BASHBOT_CURL="curl"; BASHBOT_CURL_ARGS=""
sendJsonRetry "${2}" "${BOTSEND_RETRY}" "${@:3}" sendJsonRetry "${2}" "${BASHBOT_RETRY}" "${@:3}"
unset BOTSEND_RETRY unset BASHBOT_RETRY
fi fi
fi fi
fi fi

View File

@ -15,7 +15,7 @@
# This file is public domain in the USA and all free countries. # This file is public domain in the USA and all free countries.
# Elsewhere, consider it to be WTFPLv2. (wtfpl.net/txt/copying) # Elsewhere, consider it to be WTFPLv2. (wtfpl.net/txt/copying)
# #
#### $$VERSION$$ v0.96-dev3-12-g3f85134 #### $$VERSION$$ v0.96-pre-35-g2bc8f39
# #
# adjust your language setting here, e.g.when run from other user or cron. # adjust your language setting here, e.g.when run from other user or cron.
@ -38,7 +38,9 @@ It currently can send, recieve and forward messages, custom keyboards, photos, a
# #
# this file *MUST* not edited! # this file *MUST* not edited!
# copy "mycommands.sh.dist" to "mycommnds.sh" and change the strings there # copy "mycommands.sh.dist" to "mycommnds.sh" and change the strings there
bashbot_help='*Available commands*: bashbot_help='Place your own commands and messages in mycommands.sh
*Available commands*:
*• /start*: _Start bot and get this message_. *• /start*: _Start bot and get this message_.
*• /help*: _Get this message_. *• /help*: _Get this message_.
*• /info*: _Get shorter info message about this bot_. *• /info*: _Get shorter info message about this bot_.

View File

@ -8,7 +8,7 @@
# #### if you start to develop your own bot, use the clean version of this file: # #### if you start to develop your own bot, use the clean version of this file:
# #### mycommands.clean # #### mycommands.clean
# #
#### $$VERSION$$ v0.96-pre-13-ga71d68e #### $$VERSION$$ v0.96-pre-35-g2bc8f39
# #
# uncomment the following lines to overwrite info and help messages # uncomment the following lines to overwrite info and help messages
@ -29,10 +29,10 @@ export FILE_REGEX="${BASHBOT_ETC}/.*"
# example: run bashbot over TOR # example: run bashbot over TOR
# export BASHBOT_CURL_ARGS="--socks5-hostname 127.0.0.1:9050" # export BASHBOT_CURL_ARGS="--socks5-hostname 127.0.0.1:9050"
# unset BASHBOT_RETRY to enable retry in case of recoverable errors, e.g. throtteling # set BASHBOT_RETRY to enable retry in case of recoverable errors, e.g. throtteling
# see logs/ERROR.log for information why send_messages etc. fail # problems with send_,´message etc are looged to logs/ERROR.log
export BOTSEND_RETRY="no" unset BASHBOT_RETRY
#unset BOTSEND_RETRY #export BASHBOT_RETRY="yes"
# set value for adaptive sleeping while waitingnfor uodates in millisconds # set value for adaptive sleeping while waitingnfor uodates in millisconds
# max slepp between polling updates 10s (default 5s) # max slepp between polling updates 10s (default 5s)

View File

@ -4,7 +4,7 @@
# files: mycommands.sh.clean # files: mycommands.sh.clean
# copy to mycommands.sh and add all your commands and functions here ... # copy to mycommands.sh and add all your commands and functions here ...
# #
#### $$VERSION$$ v0.96-pre-13-ga71d68e #### $$VERSION$$ v0.96-pre-35-g2bc8f39
# #
########## ##########
@ -27,10 +27,10 @@ export INLINE="0"
# do NOT set to .* as this allow sending files from all locations! # do NOT set to .* as this allow sending files from all locations!
export FILE_REGEX="${BASHBOT_ETC}/.*" export FILE_REGEX="${BASHBOT_ETC}/.*"
# unset BASHBOT_RETRY to enable retry in case of recoverable errors, e.g. throtteling # set BASHBOT_RETRY to enable retry in case of recoverable errors, e.g. throtteling
# see logs/ERROR.log for information why send_messages etc. fail # problems with send_,´message etc are looged to logs/ERROR.log
export BOTSEND_RETRY="no" unset BASHBOT_RETRY
#unset BOTSEND_RETRY #export BASHBOT_RETRY="yes"
# set value for adaptive sleeping while waitingnfor uodates in millisconds # set value for adaptive sleeping while waitingnfor uodates in millisconds
# max slepp between polling updates 10s (default 5s) # max slepp between polling updates 10s (default 5s)