first version with inline query

This commit is contained in:
Kay Marquardt (Gnadelwartz) 2019-05-02 12:33:10 +02:00
parent 4e4194d4a4
commit 9bcab666ce
49 changed files with 90 additions and 71 deletions

View File

@ -97,6 +97,6 @@
<p><span class="citation">@Gnadelwartz</span></p>
<h2 id="thats-it">Thats it!</h2>
<p>If you feel that theres something missing or if you found a bug, feel free to submit a pull request!</p>
<h4 id="version-v0.70-0-g8ea9e3b"><br /><span class="math display"><em>V</em><em>E</em><em>R</em><em>S</em><em>I</em><em>O</em><em>N</em></span><br /> v0.70-0-g8ea9e3b</h4>
<h4 id="version-v0.80-dev-2-g4e4194d"><br /><span class="math display"><em>V</em><em>E</em><em>R</em><em>S</em><em>I</em><em>O</em><em>N</em></span><br /> v0.80-dev-2-g4e4194d</h4>
</body>
</html>

View File

@ -94,4 +94,4 @@ Well, thats a damn good question ... may be because I'm an Unix/Linux admin from
If you feel that there's something missing or if you found a bug, feel free to submit a pull request!
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d

View File

@ -133,4 +133,4 @@ health status
If you feel that there's something missing or if you found a bug, feel free to
submit a pull request!
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d

View File

@ -1,7 +1,7 @@
#!/bin/sh
# description: Start or stop telegram-bash-bot
#
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
# shellcheck disable=SC2009
# shellcheck disable=SC2181

View File

@ -12,7 +12,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.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
#
# Exit Codes:
# - 0 sucess (hopefully)
@ -156,8 +156,8 @@ UPD_URL=$URL'/getUpdates?offset='
GETFILE_URL=$URL'/getFile'
unset USER
declare -A BOTSENT USER MESSAGE URLS CONTACT LOCATION CHAT FORWARD REPLYTO VENUE
export BOTSENT USER MESSAGE URLS CONTACT LOCATION CHAT FORWARD REPLYTO VENUE
declare -A BOTSENT USER MESSAGE URLS CONTACT LOCATION CHAT FORWARD REPLYTO VENUE iQUERY
export BOTSENT USER MESSAGE URLS CONTACT LOCATION CHAT FORWARD REPLYTO VENUE iQUERY
send_normal_message() {
@ -450,7 +450,12 @@ process_updates() {
done
}
process_client() {
process_message "$PROCESS_NUMBER"
iQUERY[ID]="$(JsonGetString <<<"${UPDATE}" '"result",'"$PROCESS_NUMBER"',"inline_query","id"')"
if [ "${iQUERY[ID]}" = "" ]; then
process_message "$PROCESS_NUMBER"
else
[ "$INLINE" = 1 ] && _is_function process_inline && process_inline "$PROCESS_NUMBER"
fi
# Tmux
copname="$ME"_"${CHAT[ID]}"
source commands.sh
@ -471,6 +476,7 @@ process_message() {
local num="$1"
local TMP="${TMPDIR:-.}/$RANDOM$RANDOM-MESSAGE"
echo "$UPDATE" >"$TMP"
echo "$UPDATE" >>"MESSAGE.log"
# Message
MESSAGE[0]="$(JsonDecode "$(JsonGetString '"result",'"${num}"',"message","text"' <"$TMP")" | sed 's#\\/#/#g')"
MESSAGE[ID]="$(JsonGetValue '"result",'"${num}"',"message","message_id"' <"$TMP" )"

View File

@ -5,7 +5,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.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
#
# shellcheck disable=SC2154
# shellcheck disable=SC2034
@ -21,7 +21,6 @@ unset IFS
if [ "$1" != "source" ]; then
# to change the default info message overwrite bashbot_info in mycommands.sh
bashbot_info='This is bashbot, the Telegram bot written entirely in bash.
It features background tasks and interactive chats, and can serve as an interface for CLI programs.
@ -41,26 +40,28 @@ Written by Drew (@topkecleon), Daniil Gentili (@danogentili) and KayM(@gnadelwar
Get the code in my [GitHub](http://github.com/topkecleon/telegram-bot-bash)
'
# load modules
# shellcheck source=./modules/aliases.sh
[ -r "${MODULEDIR:-.}/aliases.sh" ] && source "${MODULEDIR:-.}/aliases.sh"
# shellcheck source=./modules/background.sh
[ -r "${MODULEDIR:-.}/background.sh" ] && source "${MODULEDIR:-.}/background.sh"
# ... more modules here ...
# load modules
# shellcheck source=./modules/aliases.sh
[ -r "${MODULEDIR:-.}/aliases.sh" ] && source "${MODULEDIR:-.}/aliases.sh"
# shellcheck source=./modules/background.sh
[ -r "${MODULEDIR:-.}/background.sh" ] && source "${MODULEDIR:-.}/background.sh"
# shellcheck source=./modules/background.sh
[ -r "${MODULEDIR:-.}/inline.sh" ] && source "${MODULEDIR:-.}/inline.sh"
# ... more modules here ...
# mycommands is the last "module" to source in
# shellcheck source=./commands.sh
[ -r "${BASHBOT_ETC:-.}/mycommands.sh" ] && source "${BASHBOT_ETC:-.}/mycommands.sh"
fi
if [ "$1" = "source" ];then
# Set INLINE to 1 in order to receive inline queries.
# To enable this option in your bot, send the /setinline command to @BotFather.
# defaults to no inline and nonsense home dir
INLINE="0"
# Set to .* to allow sending files from all locations
FILE_REGEX='/home/user/allowed/.*'
# shellcheck source=./commands.sh
[ -r "${BASHBOT_ETC:-.}/mycommands.sh" ] && source "${BASHBOT_ETC:-.}/mycommands.sh" "source"
else
# mycommands is the last "module" to source in
# shellcheck source=./commands.sh
[ -r "${BASHBOT_ETC:-.}/mycommands.sh" ] && source "${BASHBOT_ETC:-.}/mycommands.sh"
if ! tmux ls | grep -v send | grep -q "$copname"; then
# interactive running?
[ ! -z "${URLS[*]}" ] && {

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash
# this has to run once atfer git clone
# and every time we create new hooks
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
# magic to ensure that we're always inside the root of our application,
# no matter from which directory we'll run script

View File

@ -3,7 +3,7 @@
#
# works together with git pre-push.sh and ADD all changed files since last push
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
# magic to ensure that we're always inside the root of our application,
# no matter from which directory we'll run script

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
############
# NOTE: you MUST run install-hooks.sh again when updating this file!

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
############
# NOTE: you MUST run install-hooks.sh again when updating this file!

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash
# this has to run once atfer git clone
# and every time we create new hooks
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
# magic to ensure that we're always inside the root of our application,
# no matter from which directory we'll run script

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash
# this has to run once atfer git clone
# and every time we create new hooks
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
# magic to ensure that we're always inside the root of our application,
# no matter from which directory we'll run script

View File

@ -1,3 +1,3 @@
# list of additional files to check from shellcheck
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
bashbot.rc

View File

@ -1,6 +1,6 @@
#!/bin/bash
#
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
# shellcheck disable=SC2016
#
# Easy Versioning in git:

View File

@ -63,5 +63,5 @@ The old format is supported for backward compatibility, but may fail for corner
#### [Next Create Bot](1_firstbot.md)
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d

View File

@ -65,5 +65,5 @@ group. This step is up to you actually.
#### [Prev Installation](0_install.md)
#### [Next Getting started](2_usage.md)
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d

View File

@ -167,5 +167,5 @@ send_action "${CHAT[ID]}" "action"
#### [Prev Create Bot](1_firstbot.md)
#### [Next Advanced Usage](3_advanced.md)
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d

View File

@ -177,5 +177,5 @@ answer_inline_query "$iQUERY_ID" "cached_sticker" "identifier for the sticker"
#### [Prev Getting started](2_usage.md)
#### [Next Expert Use](4_expert.md)
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d

View File

@ -104,5 +104,5 @@ An example crontab is provided in ```examples/bashbot.cron```.
#### [Prev Expert Use](4_expert.md)
#### [Next Best Practice](5_practice.md)
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d

View File

@ -153,5 +153,5 @@ The second warning is about an unused variable, this is true because in our exam
#### [Prev Best Practice](5_practice.md)
#### [Next Functions Reference](6_reference.md)
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d

View File

@ -489,5 +489,5 @@ Send Input from Telegram to waiting Interactive Chat.
#### [Prev Best Practice](5_practice.md)
#### [Next Notes for Developers](7_develop.md)
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d

View File

@ -117,5 +117,5 @@ fi
#### [Prev Function Reference](6_reference.md)
#### [Next Bashbot Environment](8_custom.md)
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d

View File

@ -117,5 +117,5 @@ for every poll until the maximum of BASHBOT_SLEEP ms.
#### [Prev Notes for Developers](7_develop.md)
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d

View File

@ -55,6 +55,6 @@ convert existing bots.
**external-use** will contain some examples on how to send messages from external scripts to Telegram chats or users.
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d

View File

@ -4,7 +4,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.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
# adjust your language setting here
# https://github.com/topkecleon/telegram-bot-bash#setting-up-your-environment

View File

@ -2,7 +2,7 @@
# file: run_filename
# background job to display content of all new files in WATCHDIR
#
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
# adjust your language setting here
# https://github.com/topkecleon/telegram-bot-bash#setting-up-your-environment

View File

@ -2,7 +2,7 @@
# file: run_filename
# background job to display all new files in WATCHDIR
#
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
# adjust your language setting here
# https://github.com/topkecleon/telegram-bot-bash#setting-up-your-environment

View File

@ -4,7 +4,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.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
# adjust your language setting here
# https://github.com/topkecleon/telegram-bot-bash#setting-up-your-environment

View File

@ -2,7 +2,7 @@
# file. multibot.sh
# description: run multiple telegram bots from one installation
#
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
if [ "${2}" = "" ] || [ "${2}" = "-h" ]; then
echo "Usage: $0 botname command"

View File

@ -7,7 +7,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.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
SHELL=/bin/sh

View File

@ -5,7 +5,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.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
# adjust your language setting here
# https://github.com/topkecleon/telegram-bot-bash#setting-up-your-environment

View File

@ -4,7 +4,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.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
# adjust your language setting here
# https://github.com/topkecleon/telegram-bot-bash#setting-up-your-environment

View File

@ -5,7 +5,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.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
# adjust your language setting here
# https://github.com/topkecleon/telegram-bot-bash#setting-up-your-environment

View File

@ -1,7 +1,7 @@
# file: botacl
# a user not listed here, will return false from 'user_is_allowed'
#
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
# Format:
# user:ressource:chat

View File

@ -5,7 +5,7 @@
# to show how you can customize bashbot by only editing mycommands.sh
# NOTE: this is not tested, simply copied from original source and reworked!
#
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
#
# shellcheck disable=SC2154
# shellcheck disable=SC2034

View File

@ -5,7 +5,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.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
#
# source from commands.sh to use the aliases

View File

@ -5,7 +5,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.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
# source from commands.sh if you want ro use interactive or background jobs

View File

@ -5,6 +5,10 @@
# This file is public domain in the USA and all free countries.
# Elsewhere, consider it to be WTFPLv2. (wtfpl.net/txt/copying)
#
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
# source from commands.sh to use the inline functions
process_inline() {
echo "$UPDATE" >>INLINE.log
}

View File

@ -2,7 +2,7 @@
# files: mycommands.sh.dist
# copy to mycommands.sh and add all your commands and functions here ...
#
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
#
# shellcheck disable=SC2154
# shellcheck disable=SC2034
@ -14,10 +14,17 @@
# bashbot_help='*Available commands*:
#'
if [ "$1" = "source" ];then
# Set INLINE to 1 in order to receive inline queries.
# To enable this option in your bot, send the /setinline command to @BotFather.
INLINE="0"
# Set to .* to allow sending files from all locations
FILE_REGEX='/home/user/allowed/.*'
# your additional bahsbot commands
# NOTE: command can have @botname attached, you must add * in case tests...
mycommands() {
else
# your additional bahsbot commands
# NOTE: command can have @botname attached, you must add * in case tests...
mycommands() {
case "$MESSAGE" in
'/echo'*) # example echo command
@ -51,6 +58,7 @@ mycommands() {
;;
esac
}
}
# place your processing functions here
# place your processing functions here
fi

View File

@ -2,7 +2,7 @@
#
# ADD a new test skeleton to test dir, but does not activate test
#
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
# magic to ensure that we're always inside the root of our application,
# no matter from which directory we'll run script

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
# common variables
export TESTME DIRME TESTDIR LOGFILE REFDIR TESTNAME

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
../dev/hooks/pre-commit.sh

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
# file: b-example-test.sh
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
# include common functions and definitions
# shellcheck source=test/ALL-tests.inc.sh

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
# include common functions and definitions
# shellcheck source=test/ALL-tests.inc.sh

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
# include common functions and definitions
# shellcheck source=test/ALL-tests.inc.sh

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
# include common functions and definitions
# shellcheck source=test/ALL-tests.inc.sh

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
# include common functions and definitions
# shellcheck source=test/ALL-tests.inc.sh

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
# include common functions and definitions
# shellcheck source=test/ALL-tests.inc.sh

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
#### $$VERSION$$ v0.70-0-g8ea9e3b
#### $$VERSION$$ v0.80-dev-2-g4e4194d
# include common functions and definitions
# shellcheck source=test/ALL-tests.inc.sh