mirror of
https://github.com/octoleo/telegram-bot-bash.git
synced 2024-12-28 04:45:00 +00:00
dispose JSON.sh complaint about empty input
This commit is contained in:
parent
15f6da85dc
commit
38164ba9a2
10
bashbot.sh
10
bashbot.sh
@ -11,7 +11,7 @@
|
||||
# This file is public domain in the USA and all free countries.
|
||||
# Elsewhere, consider it to be WTFPLv2. (wtfpl.net/txt/copying)
|
||||
#
|
||||
#### $$VERSION$$ v0.96-pre-40-ge663979
|
||||
#### $$VERSION$$ v0.96-pre-41-g15f6da8
|
||||
#
|
||||
# Exit Codes:
|
||||
# - 0 sucess (hopefully)
|
||||
@ -319,7 +319,7 @@ if [ -z "${BASHBOT_WGET}" ] && _exists curl ; then
|
||||
# shellcheck disable=SC2086
|
||||
res="$("${BASHBOT_CURL}" -s -k ${BASHBOT_CURL_ARGS} -m "${TIMEOUT}"\
|
||||
-d '{'"${chat} $(iconv -f utf-8 -t utf-8 -c <<<$2)"'}' -X POST "${3}" \
|
||||
-H "Content-Type: application/json" | "${JSONSHFILE}" -s -b -n )"
|
||||
-H "Content-Type: application/json" | "${JSONSHFILE}" -s -b -n 2>/dev/null )"
|
||||
sendJsonResult "${res}" "sendJson (curl)" "$@"
|
||||
}
|
||||
#$1 Chat, $2 what , $3 file, $4 URL, $5 caption
|
||||
@ -348,7 +348,7 @@ else
|
||||
[ -n "${1}" ] && chat='"chat_id":'"${1}"','
|
||||
# shellcheck disable=SC2086
|
||||
res="$(wget --no-check-certificate -t 2 -T "${TIMEOUT}" ${BASHBOT_WGET_ARGS} -qO - --post-data='{'"${chat} $(iconv -f utf-8 -t utf-8 -c <<<$2)"'}' \
|
||||
--header='Content-Type:application/json' "${3}" | "${JSONSHFILE}" -s -b -n )"
|
||||
--header='Content-Type:application/json' "${3}" | "${JSONSHFILE}" -s -b -n 2>/dev/null )"
|
||||
sendJsonResult "${res}" "sendJson (wget)" "$@"
|
||||
}
|
||||
sendUpload() {
|
||||
@ -462,7 +462,7 @@ title2Json(){
|
||||
|
||||
# get bot name
|
||||
getBotName() {
|
||||
getJson "$ME_URL" | "${JSONSHFILE}" -s -b -n | JsonGetString '"result","username"'
|
||||
getJson "$ME_URL" | "${JSONSHFILE}" -s -b -n 2>/dev/null | JsonGetString '"result","username"'
|
||||
}
|
||||
|
||||
# pure bash implementaion, done by KayM (@gnadelwartz)
|
||||
@ -821,7 +821,7 @@ start_bot() {
|
||||
sleep "$(_round_float "${nextsleep}e-3" "1")"
|
||||
((nextsleep+= stepsleep , nextsleep= nextsleep>maxsleep ?maxsleep:nextsleep))
|
||||
# get next update
|
||||
UPDATE="$(getJson "$UPD_URL$OFFSET" 2>/dev/null | "${JSONSHFILE}" -s -b -n | iconv -f utf-8 -t utf-8 -c)"
|
||||
UPDATE="$(getJson "$UPD_URL$OFFSET" 2>/dev/null | "${JSONSHFILE}" -s -b -n 2>/dev/null | iconv -f utf-8 -t utf-8 -c)"
|
||||
# did we ge an responsn0r
|
||||
if [ -n "${UPDATE}" ]; then
|
||||
# we got something, do processing
|
||||
|
@ -232,7 +232,7 @@ Only if the retry fails also an error is returned. The downside is that send_mes
|
||||
If you want to disable automatic error processing and handle all errors manually (or don't care)
|
||||
set ```BASHBOT_RETRY``` to any no zero value.
|
||||
|
||||
[Telegram API error codes](https://core.telegram.org/api/errors)
|
||||
[Telegram Bot API error codes](https://github.com/TelegramBotAPI/errors)
|
||||
|
||||
|
||||
#### Detect bot blocked
|
||||
@ -274,5 +274,5 @@ Note: If you disable automatic retry, se above, you disable also connection prob
|
||||
#### [Prev Getting started](2_usage.md)
|
||||
#### [Next Expert Use](4_expert.md)
|
||||
|
||||
#### $$VERSION$$ v0.96-pre-40-ge663979
|
||||
#### $$VERSION$$ v0.96-pre-41-g15f6da8
|
||||
|
||||
|
@ -43,10 +43,15 @@ If a not mandatory module is used in 'bashbot.sh' or 'commands.sh', the use of `
|
||||
Addons must register themself to BASHBOT_EVENTS at startup, e.g. to call a function everytime a message is received.
|
||||
Addons works similar as 'commands.sh' and 'mycommands.sh' but are much more flexible on when functions/commands are triggered.
|
||||
|
||||
Another major difference is: **Addons are executed in the context of the main script**, while 'commands.sh' and 'mycommands.sh' are executed new child process on efery execution.
|
||||
This is why event functions are time critical and must finish as fast as possible.
|
||||
Another major difference is: While regular command processing is done in as a new sub shell for every command,
|
||||
**Addons are executed in the context of bashbot event loop!**, This is why event functions are (time) critical
|
||||
and must return as fast as possible. **If an event function call exit, also bashbot exits!**
|
||||
|
||||
*Important*: If an event function e.g. send_messages or need longer time for processing spawn a sub shell!
|
||||
This prevents blocking or exiting bashbots event loop.
|
||||
|
||||
#### Bashbot Events
|
||||
|
||||
Addons must register functions to bashbot events by providing their name, and internal identifier and a callback function.
|
||||
If an event occours each registered function for the event is called.
|
||||
|
||||
@ -85,7 +90,9 @@ BASHBOT_EVENT_TEXT["example_1"]="example_echo"
|
||||
example_echo() {
|
||||
local event="$1" key="$2"
|
||||
# all availible bashbot functions and variables can be used
|
||||
send_normal_message "${CHAT[ID]}" "Event: ${event} Key: ${key} : ${MESSAGE[0]}" & # note the &!
|
||||
send_normal_message "${CHAT[ID]}" "Event: ${event} Key: ${key} : ${MESSAGE[0]}" & # NOTE the & for sub shell!!!
|
||||
|
||||
do_more_processing & # NOTE the & for sub shell!!!
|
||||
}
|
||||
```
|
||||
|
||||
@ -135,7 +142,7 @@ This means if you register an every 5 minutes callback first execution may < 5 M
|
||||
* 0 ignored
|
||||
* 1 execute once every minute
|
||||
* x execute every x minutes
|
||||
* -x execute once WHITHIN the next x Minutes (10=between now and 10 Minutes)
|
||||
* -x execute once WHITHIN the next x Minutes (next 10 Minutes since start "event")
|
||||
|
||||
Note: If you want exact "in x minutes" use "EVENT_TIMER plus x" as time: ```-(EVENT_TIMER + x)```
|
||||
|
||||
@ -153,7 +160,7 @@ example_everymin() {
|
||||
# register other callback:
|
||||
BAHSBOT_EVENT_TIMER["example_every5","5"]="example_every5min"
|
||||
|
||||
# execute once in the next 1 to 10 minutes
|
||||
# execute once on the next 10 minutes since start "event"
|
||||
BAHSBOT_EVENT_TIMER["example_10min","-10"]="example_in10min"
|
||||
|
||||
# once in exact 10 minutes
|
||||
@ -338,5 +345,5 @@ fi
|
||||
|
||||
#### [Prev Function Reference](6_reference.md)
|
||||
|
||||
#### $$VERSION$$ v0.96-pre-40-ge663979
|
||||
#### $$VERSION$$ v0.96-pre-41-g15f6da8
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user