mirror of
https://github.com/octoleo/telegram-bot-bash.git
synced 2025-04-11 16:41:49 +00:00
fix nasty workaround for external scripts
This commit is contained in:
parent
07dc7b4432
commit
3cd6eebdf2
13
README.md
13
README.md
@ -17,8 +17,8 @@ Most complete [UTF-8 support for bashbot](doc/4_expert.md#Bashbot-UTF-8-Support)
|
|||||||
Bashbot [Documentation](https://github.com/topkecleon/telegram-bot-bash) and [Downloads](https://github.com/topkecleon/telegram-bot-bash/releases) are availible on www.github.com
|
Bashbot [Documentation](https://github.com/topkecleon/telegram-bot-bash) and [Downloads](https://github.com/topkecleon/telegram-bot-bash/releases) are availible on www.github.com
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
* [Bots: Introduction for developers](https://core.telegram.org/bots)
|
* [Introdution to Telegram Bots](https://core.telegram.org/bots)
|
||||||
* [The one to rule them all](https://core.telegram.org/bots#3-how-do-i-create-a-bot)
|
* [One Bot to rule them all](https://core.telegram.org/bots#3-how-do-i-create-a-bot)
|
||||||
* [Bot commands](https://core.telegram.org/bots#commands)
|
* [Bot commands](https://core.telegram.org/bots#commands)
|
||||||
* [Install Bashbot](doc/0_install.md)
|
* [Install Bashbot](doc/0_install.md)
|
||||||
* Install release
|
* Install release
|
||||||
@ -45,7 +45,11 @@ Bashbot [Documentation](https://github.com/topkecleon/telegram-bot-bash) and [Do
|
|||||||
* Seperate logic from commands
|
* Seperate logic from commands
|
||||||
* Test your Bot with shellcheck
|
* Test your Bot with shellcheck
|
||||||
* [Bashbot function reference](doc/6_reference.md)
|
* [Bashbot function reference](doc/6_reference.md)
|
||||||
* [Notes for bashbot developers](doc/7_develop.md)
|
* [Deveoper Notess](doc/7_develop.md)
|
||||||
|
* Setup your environment
|
||||||
|
* Test, Add, Push changes
|
||||||
|
* Prepare a new version
|
||||||
|
* Bashbot testsuite
|
||||||
* [Customize bashbot environment](doc/8_customize.md)
|
* [Customize bashbot environment](doc/8_customize.md)
|
||||||
|
|
||||||
|
|
||||||
@ -82,10 +86,11 @@ Well, thats a damn good question ... may be because I'm an Unix/Linux admin from
|
|||||||
- easy to integrate with other shell script, e.g. for sending system message / health status
|
- easy to integrate with other shell script, e.g. for sending system message / health status
|
||||||
- no need to install or learn a new programming language, library or framework
|
- no need to install or learn a new programming language, library or framework
|
||||||
- no database, not event driven, not OO ...
|
- no database, not event driven, not OO ...
|
||||||
|
|
||||||
@Gnadelwartz
|
@Gnadelwartz
|
||||||
|
|
||||||
## That's it!
|
## That's it!
|
||||||
|
|
||||||
If you feel that there's something missing or if you found a bug, feel free to submit a pull request!
|
If you feel that there's something missing or if you found a bug, feel free to submit a pull request!
|
||||||
|
|
||||||
#### $$VERSION$$ v0.70-pre1-4-g0d38a67
|
#### $$VERSION$$ v0.70-pre1-5-g07dc7b4
|
||||||
|
23
README.txt
23
README.txt
@ -27,8 +27,8 @@ are availible on www.github.com
|
|||||||
Documentation
|
Documentation
|
||||||
~~~~~~~~~~~~~
|
~~~~~~~~~~~~~
|
||||||
|
|
||||||
* https://core.telegram.org/bots[Bots: Introduction for developers]
|
* https://core.telegram.org/bots[Introdution to Telegram Bots]
|
||||||
** https://core.telegram.org/bots#3-how-do-i-create-a-bot[The one to
|
** https://core.telegram.org/bots#3-how-do-i-create-a-bot[One Bot to
|
||||||
rule them all]
|
rule them all]
|
||||||
** https://core.telegram.org/bots#commands[Bot commands]
|
** https://core.telegram.org/bots#commands[Bot commands]
|
||||||
* link:doc/0_install.md[Install Bashbot]
|
* link:doc/0_install.md[Install Bashbot]
|
||||||
@ -56,7 +56,11 @@ rule them all]
|
|||||||
** Seperate logic from commands
|
** Seperate logic from commands
|
||||||
** Test your Bot with shellcheck
|
** Test your Bot with shellcheck
|
||||||
* link:doc/6_reference.md[Bashbot function reference]
|
* link:doc/6_reference.md[Bashbot function reference]
|
||||||
* link:doc/7_develop.md[Notes for bashbot developers]
|
* link:doc/7_develop.md[Deveoper Notess]
|
||||||
|
** Setup your environment
|
||||||
|
** Test, Add, Push changes
|
||||||
|
** Prepare a new version
|
||||||
|
** Bashbot testsuite
|
||||||
* link:doc/8_customize.md[Customize bashbot environment]
|
* link:doc/8_customize.md[Customize bashbot environment]
|
||||||
|
|
||||||
Security Considerations
|
Security Considerations
|
||||||
@ -121,7 +125,7 @@ language, we have done our best to make it as secure as possible. But
|
|||||||
YOU are responsible for the bot commands you wrote and you should know
|
YOU are responsible for the bot commands you wrote and you should know
|
||||||
about the risks ...
|
about the risks ...
|
||||||
|
|
||||||
Why Bash and not the much better ...?
|
Why Bash and not the much better xyz?
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
Well, thats a damn good question ... may be because I'm an Unix/Linux
|
Well, thats a damn good question ... may be because I'm an Unix/Linux
|
||||||
@ -129,12 +133,13 @@ admin from stone age. Nevertheless there are more reasons from my side:
|
|||||||
|
|
||||||
* bashbot will run everywhere where bash is availible, from ebedded
|
* bashbot will run everywhere where bash is availible, from ebedded
|
||||||
linux to mainframe
|
linux to mainframe
|
||||||
* easy to integrate with other shell/bashscripts for system admins to
|
* easy to integrate with other shell script, e.g. for sending system
|
||||||
send status updates
|
message / health status
|
||||||
* no need to install or learn a new programming language, library or
|
* no need to install or learn a new programming language, library or
|
||||||
framwework
|
framework
|
||||||
* no database, not event driven, not OO ...
|
* no database, not event driven, not OO ...
|
||||||
*
|
|
||||||
|
@Gnadelwartz
|
||||||
|
|
||||||
That's it!
|
That's it!
|
||||||
~~~~~~~~~~
|
~~~~~~~~~~
|
||||||
@ -142,5 +147,5 @@ That's it!
|
|||||||
If you feel that there's something missing or if you found a bug, feel
|
If you feel that there's something missing or if you found a bug, feel
|
||||||
free to submit a pull request!
|
free to submit a pull request!
|
||||||
|
|
||||||
latexmath:[\[VERSION\]] v0.70-pre1-4-g0d38a67
|
latexmath:[\[VERSION\]] v0.70-pre1-5-g07dc7b4
|
||||||
+++++++++++++++++++++++++++++++++++++++++++++
|
+++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
@ -5,7 +5,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.70-pre1-4-g0d38a67
|
#### $$VERSION$$ v0.70-pre1-5-g07dc7b4
|
||||||
|
|
||||||
# source from commands.sh if you want ro use interactive or background jobs
|
# source from commands.sh if you want ro use interactive or background jobs
|
||||||
|
|
||||||
@ -15,51 +15,49 @@ export res
|
|||||||
####
|
####
|
||||||
# I placed send_message here because main use case is interactive chats and background jobs
|
# I placed send_message here because main use case is interactive chats and background jobs
|
||||||
send_message() {
|
send_message() {
|
||||||
local text arg keyboard btext burl no_keyboard file lat long title address sent
|
|
||||||
[ "$2" = "" ] && return
|
[ "$2" = "" ] && return
|
||||||
local mychat="$1"
|
local text keyboard btext burl no_keyboard file lat long title address sent
|
||||||
text="$(sed <<< "${2}" 's/ mynewlinestartshere/\r\n/g; s/ my[kfltab][a-z]\{2,13\}startshere.*//g;s/ mykeyboardendshere.*//g')"
|
text="$(sed <<< "${2}" 's/ *mynewlinestartshere */\r\n/g;s/ mykeyboardend.*//;s/ *my[a-z]\{3,15\}startshere.*//')$(sed <<< "${2}" -n '/mytextstartshere/ s/.*mytextstartshere//p')"
|
||||||
arg="$3"
|
[ "$3" != "safe" ] && {
|
||||||
[ "$arg" != "safe" ] && {
|
|
||||||
no_keyboard="$(sed <<< "${2}" '/mykeyboardendshere/!d;s/.*mykeyboardendshere.*/mykeyboardendshere/')"
|
no_keyboard="$(sed <<< "${2}" '/mykeyboardendshere/!d;s/.*mykeyboardendshere.*/mykeyboardendshere/')"
|
||||||
keyboard="$(sed <<< "${2}" '/mykeyboardstartshere /!d;s/.*mykeyboardstartshere //g;s/ my[kfltab][a-z]\{2,13\}startshere.*//g;s/ mykeyboardendshere.*//g')"
|
keyboard="$(sed <<< "${2}" '/mykeyboardstartshere /!d;s/.*mykeyboardstartshere *//;s/ *my[nkfltab][a-z]\{2,13\}startshere.*//;s/ *mykeyboardendshere.*//')"
|
||||||
btext="$(sed <<< "${2}" '/mybtextstartshere /!d;s/.*mybtextstartshere //g;s/ my[kfltab][a-z]\{2,13\}startshere.*//g;s/ mykeyboardendshere.*//g')"
|
btext="$(sed <<< "${2}" '/mybtextstartshere /!d;s/.*mybtextstartshere //;s/ *my[nkfltab][a-z]\{2,13\}startshere.*//;s/ *mykeyboardendshere.*//')"
|
||||||
burl="$(sed <<< "${2}" '/myburlstartshere /!d;s/.*myburlstartshere //g;s/ my[kfltab][a-z]\{2,13\}startshere.*//g;s/ mykeyboardendshere.*//g')"
|
burl="$(sed <<< "${2}" '/myburlstartshere /!d;s/.*myburlstartshere //;s/ *my[nkfltab][a-z]\{2,13\}startshere.*//g;s/ *mykeyboardendshere.*//g')"
|
||||||
file="$(sed <<< "${2}" '/myfilelocationstartshere /!d;s/.*myfilelocationstartshere //g;s/ my[kfltab][a-z]\{2,13\}startshere.*//g;s/ mykeyboardendshere.*//g')"
|
file="$(sed <<< "${2}" '/myfilelocationstartshere /!d;s/.*myfilelocationstartshere //;s/ *my[nkfltab][a-z]\{2,13\}startshere.*//;s/ *mykeyboardendshere.*//')"
|
||||||
lat="$(sed <<< "${2}" '/mylatstartshere /!d;s/.*mylatstartshere //g;s/ my[kfltab][a-z]\{2,13\}startshere.*//g;s/ mykeyboardendshere.*//g')"
|
lat="$(sed <<< "${2}" '/mylatstartshere /!d;s/.*mylatstartshere //;s/ *my[nkfltab][a-z]\{2,13\}startshere.*//;s/ *mykeyboardendshere.*//')"
|
||||||
long="$(sed <<< "${2}" '/mylongstartshere /!d;s/.*mylongstartshere //g;s/ my[kfltab][a-z]\{2,13\}startshere.*//g;s/ mykeyboardendshere.*//g')"
|
long="$(sed <<< "${2}" '/mylongstartshere /!d;s/.*mylongstartshere //;s/ *my[nkfltab][a-z]\{2,13\}startshere.*//;s/ *mykeyboardendshere.*//')"
|
||||||
title="$(sed <<< "${2}" '/mytitlestartshere /!d;s/.*mytitlestartshere //g;s/ my[kfltab][a-z]\{2,13\}startshere.*//g;s/ mykeyboardendshere.*//g')"
|
title="$(sed <<< "${2}" '/mytitlestartshere /!d;s/.*mytitlestartshere //;s/ *my[kfltab][a-z]\{2,13\}startshere.*//;s/ *mykeyboardendshere.*//')"
|
||||||
address="$(sed <<< "${2}" '/myaddressstartshere /!d;s/.*myaddressstartshere //g;s/ my[kfltab][a-z]\{2,13\}startshere.*//g;s/ mykeyboardendshere.*//g')"
|
address="$(sed <<< "${2}" '/myaddressstartshere /!d;s/.*myaddressstartshere //;s/ *my[nkfltab][a-z]\{2,13\}startshere.*//;s/ *mykeyboardendshere.*//')"
|
||||||
}
|
}
|
||||||
if [ "$no_keyboard" != "" ]; then
|
if [ "$no_keyboard" != "" ]; then
|
||||||
remove_keyboard "$mychat" "$text"
|
remove_keyboard "$1" "$text"
|
||||||
sent=y
|
sent=y
|
||||||
fi
|
fi
|
||||||
if [ "$keyboard" != "" ]; then
|
if [ "$keyboard" != "" ]; then
|
||||||
if [[ "$keyboard" != *"["* ]]; then # pre 0.60 style
|
if [[ "$keyboard" != *"["* ]]; then # pre 0.60 style
|
||||||
keyboard="[ ${keyboard//\" \"/\" \] , \[ \"} ]"
|
keyboard="[ ${keyboard//\" \"/\" \] , \[ \"} ]"
|
||||||
fi
|
fi
|
||||||
send_keyboard "$mychat" "$text" "$keyboard"
|
send_keyboard "$1" "$text" "$keyboard"
|
||||||
sent=y
|
sent=y
|
||||||
fi
|
fi
|
||||||
if [ "$btext" != "" ] && [ "$burl" != "" ]; then
|
if [ "$btext" != "" ] && [ "$burl" != "" ]; then
|
||||||
send_button "$mychat" "$text" "$btext" "$burl"
|
send_button "$1" "$text" "$btext" "$burl"
|
||||||
sent=y
|
sent=y
|
||||||
fi
|
fi
|
||||||
if [ "$file" != "" ]; then
|
if [ "$file" != "" ]; then
|
||||||
send_file "$mychat" "$file" "$text"
|
send_file "$1" "$file" "$text"
|
||||||
sent=y
|
sent=y
|
||||||
fi
|
fi
|
||||||
if [ "$lat" != "" ] && [ "$long" != "" ]; then
|
if [ "$lat" != "" ] && [ "$long" != "" ]; then
|
||||||
if [ "$address" != "" ] && [ "$title" != "" ]; then
|
if [ "$address" != "" ] && [ "$title" != "" ]; then
|
||||||
send_venue "$mychat" "$lat" "$long" "$title" "$address"
|
send_venue "$1" "$lat" "$long" "$title" "$address"
|
||||||
else
|
else
|
||||||
send_location "$mychat" "$lat" "$long"
|
send_location "$1" "$lat" "$long"
|
||||||
fi
|
fi
|
||||||
sent=y
|
sent=y
|
||||||
fi
|
fi
|
||||||
if [ "$sent" != "y" ];then
|
if [ "$sent" != "y" ];then
|
||||||
send_text "$mychat" "$text"
|
send_text "$1" "$text"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
}
|
}
|
||||||
|
0
test/a-commit-test.sh
Executable file → Normal file
0
test/a-commit-test.sh
Executable file → Normal file
0
test/d-JSON.sh-test.sh
Executable file → Normal file
0
test/d-JSON.sh-test.sh
Executable file → Normal file
0
test/d-process_message-test.sh
Executable file → Normal file
0
test/d-process_message-test.sh
Executable file → Normal file
@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
#### $$VERSION$$ v0.70-pre1-0-g490c472
|
#### $$VERSION$$ v0.70-pre1-5-g07dc7b4
|
||||||
|
|
||||||
# include common functions and definitions
|
# include common functions and definitions
|
||||||
# shellcheck source=test/ALL-tests.inc.sh
|
# shellcheck source=test/ALL-tests.inc.sh
|
||||||
@ -31,7 +31,7 @@ while IFS='' read -r line || [[ -n "$line" ]]; do
|
|||||||
done < "${INPUTFILE}" 2>>"${LOGFILE}"
|
done < "${INPUTFILE}" 2>>"${LOGFILE}"
|
||||||
echo " done."
|
echo " done."
|
||||||
|
|
||||||
diff -c "${REFFILE}" "${OUTPUTFILE}" || exit 1
|
{ diff -c "${REFFILE}" "${OUTPUTFILE}" || exit 1; } | cat -v
|
||||||
echo " ... all \"send_message\" functions seems to work as expected."
|
echo " ... all \"send_message\" functions seems to work as expected."
|
||||||
echo "${SUCCESS}"
|
echo "${SUCCESS}"
|
||||||
|
|
||||||
|
@ -15,3 +15,4 @@ All in one will appear in chat mykeyboardstartshere [ "Yep, sure" , "No, highly
|
|||||||
|
|
||||||
# test for new inline button
|
# test for new inline button
|
||||||
Text plus keyboard will appear in chat mybtextstartshere Button Text myburlstartshere https://www...
|
Text plus keyboard will appear in chat mybtextstartshere Button Text myburlstartshere https://www...
|
||||||
|
STABILO 88/240 Fineliner point 88 mynewlinestartshere mynewlinestartshere [https://images-na.ssl-images-amazon.com/images/I/41oypA3kmHL.l_SX300.jpg] mynewlinestartshere mybtextstartshere Bei Amazon ansehen ... myburlstartshere https://www.amazon.de/dp/B014TN3JYW mytextstartshere second part of text
|
||||||
|
@ -52,3 +52,8 @@ URL:https://api.telegram.org/botbashbottestscript/sendMessage
|
|||||||
chat:123456 JSON:"text":"Text plus keyboard will appear in chat", "reply_markup": {"inline_keyboard": [ [ {"text":"Button Text", "url":"https://www..."}] ]}
|
chat:123456 JSON:"text":"Text plus keyboard will appear in chat", "reply_markup": {"inline_keyboard": [ [ {"text":"Button Text", "url":"https://www..."}] ]}
|
||||||
URL:https://api.telegram.org/botbashbottestscript/sendMessage
|
URL:https://api.telegram.org/botbashbottestscript/sendMessage
|
||||||
|
|
||||||
|
chat:123456 JSON:"text":"STABILO 88/240 Fineliner point 88
|
||||||
|
|
||||||
|
[https://images-na.ssl-images-amazon.com/images/I/41oypA3kmHL.l_SX300.jpg]
second part of text", "reply_markup": {"inline_keyboard": [ [ {"text":"Bei Amazon ansehen ...", "url":"https://www.amazon.de/dp/B014TN3JYW"}] ]}
|
||||||
|
URL:https://api.telegram.org/botbashbottestscript/sendMessage
|
||||||
|
|
||||||
|
0
test/d-user_is-test.sh
Executable file → Normal file
0
test/d-user_is-test.sh
Executable file → Normal file
Loading…
x
Reference in New Issue
Block a user