mirror of
https://github.com/octoleo/telegram-bot-bash.git
synced 2024-11-25 08:47:34 +00:00
mycommands: factor out config and messages
This commit is contained in:
parent
37e4539ef8
commit
de24dede53
@ -16,7 +16,7 @@
|
|||||||
# Elsewhere, consider it to be WTFPLv2. (wtfpl.net/txt/copying)
|
# Elsewhere, consider it to be WTFPLv2. (wtfpl.net/txt/copying)
|
||||||
#
|
#
|
||||||
# Usage: bashbot.sh [-h|--help|BOTCOMMANDS]
|
# Usage: bashbot.sh [-h|--help|BOTCOMMANDS]
|
||||||
BOTCOMMANDS="--help help init start stop status suspendback resumeback killback"
|
BOTCOMMANDS="-h help init start stop status suspendback resumeback killback"
|
||||||
#
|
#
|
||||||
# Exit Codes:
|
# Exit Codes:
|
||||||
# 0 - success (hopefully)
|
# 0 - success (hopefully)
|
||||||
@ -30,7 +30,7 @@ BOTCOMMANDS="--help help init start stop status suspendback resumeback killbac
|
|||||||
# 8 - curl/wget missing
|
# 8 - curl/wget missing
|
||||||
# 10 - not bash!
|
# 10 - not bash!
|
||||||
#
|
#
|
||||||
#### $$VERSION$$ v1.25-dev-40-g4a9d1f0
|
#### $$VERSION$$ v1.25-dev-41-g37e4539
|
||||||
##################################################################
|
##################################################################
|
||||||
|
|
||||||
# emmbeded system may claim bash but it is not
|
# emmbeded system may claim bash but it is not
|
||||||
@ -169,7 +169,7 @@ RUNUSER="${USER}" # USER is overwritten by bashbot array :-(, save original
|
|||||||
case "$1" in
|
case "$1" in
|
||||||
"") [ -z "${SOURCE}" ] && printf "${ORANGE}Available commands: ${GREY}${BOTCOMMANDS}${NN}" && exit
|
"") [ -z "${SOURCE}" ] && printf "${ORANGE}Available commands: ${GREY}${BOTCOMMANDS}${NN}" && exit
|
||||||
;;
|
;;
|
||||||
"--h"*) LOGO="${BASHBOT_HOME:-.}/bin/bashbot.ascii"
|
"-h"*) LOGO="${BASHBOT_HOME:-.}/bin/bashbot.ascii"
|
||||||
[ -r "${LOGO}" ] && cat "${LOGO}"
|
[ -r "${LOGO}" ] && cat "${LOGO}"
|
||||||
sed -nE -e '/(NOT EDIT)|(shellcheck)/d' -e '3,/###/p' <"$0"
|
sed -nE -e '/(NOT EDIT)|(shellcheck)/d' -e '3,/###/p' <"$0"
|
||||||
exit;;
|
exit;;
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
# AUTHOR: KayM (gnadelwartz), kay@rrr.de
|
# AUTHOR: KayM (gnadelwartz), kay@rrr.de
|
||||||
# CREATED: 18.12.2020 12:27
|
# CREATED: 18.12.2020 12:27
|
||||||
#
|
#
|
||||||
#### $$VERSION$$ v1.25-dev-34-gda214ab
|
#### $$VERSION$$ v1.25-dev-41-g37e4539
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
|
|
||||||
############
|
############
|
||||||
|
@ -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$$ v1.25-dev-14-g2fe6d4b
|
#### $$VERSION$$ v1.25-dev-41-g37e4539
|
||||||
#
|
#
|
||||||
|
|
||||||
# bashbot locale defaults to c.UTF-8, adjust locale in mycommands.sh if needed
|
# bashbot locale defaults to c.UTF-8, adjust locale in mycommands.sh if needed
|
||||||
|
97
mycommands.conf
Normal file
97
mycommands.conf
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#######################################################
|
||||||
|
#
|
||||||
|
# File: mycommands.conf
|
||||||
|
#
|
||||||
|
# Description: place your config and messages here
|
||||||
|
#
|
||||||
|
# Usage: will be sourced from mycommands.sh
|
||||||
|
#
|
||||||
|
# License: WTFPLv2 http://www.wtfpl.net/txt/copying/
|
||||||
|
# Author: KayM (gnadelwartz), kay@rrr.de
|
||||||
|
# Created: 09.01.2021 07:27
|
||||||
|
#
|
||||||
|
#### $$VERSION$$ v1.25-dev-41-g37e4539
|
||||||
|
#######################################################
|
||||||
|
|
||||||
|
##########
|
||||||
|
# adjust your language setting here, default is C.UTF-8
|
||||||
|
# https://github.com/topkecleon/telegram-bot-bash#setting-up-your-environment
|
||||||
|
export 'LC_ALL=C.UTF-8'
|
||||||
|
export 'LANG=C.UTF-8'
|
||||||
|
export 'LANGUAGE=C.UTF-8'
|
||||||
|
|
||||||
|
##########
|
||||||
|
# in UTF-8 äöü etc. are part of [:alnum:] and ranges (e.g. a-z)
|
||||||
|
# for more information see doc/4_expert.md#Character_classes
|
||||||
|
# uncomment next line if you want classic ASCII ranges for [a-z] etc.
|
||||||
|
#export LC_COLLATE=C
|
||||||
|
|
||||||
|
|
||||||
|
##########
|
||||||
|
# edit the following lines to fit your bot usage
|
||||||
|
# use ${ME} for current bot name in messages
|
||||||
|
# Note: you must escape '_' in botname with two \ in markdown messages!
|
||||||
|
export bashbot_info='This is @'"${ME//_/\\\\_}"', the Telegram example bot written entirely in bash.
|
||||||
|
Edit commands and messages in mycommands.sh!
|
||||||
|
'
|
||||||
|
# export bashbot_help='*Available commands*:
|
||||||
|
#'
|
||||||
|
export res=""
|
||||||
|
|
||||||
|
# Set INLINE to 1 in order to receive inline queries.
|
||||||
|
# To enable this option in your bot, send the /setinline command to @BotFather.
|
||||||
|
export INLINE="0"
|
||||||
|
|
||||||
|
# if your bot is group admin it get commands sent to other bots
|
||||||
|
# Set MEONLY to 1 to ignore commands sent to other bots
|
||||||
|
export MEONLY="0"
|
||||||
|
|
||||||
|
# Set to .* to allow sending files from all locations
|
||||||
|
# NOTE: this is a regex, not shell globbing! you must use a valid egex,
|
||||||
|
# '.' matches any character and '.*' matches all remaining charatcers!
|
||||||
|
# additionally you must escape special characters with '\', e.g. '\. \? \[ \*" to match them literally
|
||||||
|
export FILE_REGEX="${BASHBOT_ETC}/.*"
|
||||||
|
|
||||||
|
# set BASHBOT_RETRY to enable retry in case of recoverable errors, e.g. throtteling
|
||||||
|
# problems with send_xxx message etc are looged to logs/ERROR.log
|
||||||
|
unset BASHBOT_RETRY
|
||||||
|
#export BASHBOT_RETRY="yes"
|
||||||
|
|
||||||
|
# set value for adaptive sleeping while waiting for uodates in millisconds
|
||||||
|
# max slepp between polling updates 10s (default 5s)
|
||||||
|
export BASHBOT_SLEEP="10000"
|
||||||
|
# add 0.2s if no update available, up to BASHBOT_SLEEP (default 0.1s)
|
||||||
|
export BASHBOT_SLEEP_STEP="200"
|
||||||
|
|
||||||
|
# if you want to use timer functions, set BASHBOT_START_TIMER to a not empty value
|
||||||
|
# default is to not start timer
|
||||||
|
unset BASHBOT_START_TIMER
|
||||||
|
#export BASHBOT_START_TIMER="yes"
|
||||||
|
|
||||||
|
# set to "yes" and give your bot admin privilegs to remove service messages from groups
|
||||||
|
export SILENCER="no"
|
||||||
|
|
||||||
|
# uncomment to remove keyboards sent from your bot
|
||||||
|
# export REMOVEKEYBOARD="yes"
|
||||||
|
# export REMOVEKEYBOARD_PRIVATE="yes"
|
||||||
|
|
||||||
|
# uncomment to say welcome to new chat members
|
||||||
|
# export WELCOME_NEWMEMBER="yes"
|
||||||
|
WELCOME_MSG="Welcome"
|
||||||
|
|
||||||
|
# uncomment to be informed about new/left chat members
|
||||||
|
# export REPORT_NEWMEMBER="yes"
|
||||||
|
# export REPORT_LEFTMEMBER="yes"
|
||||||
|
|
||||||
|
# messages for admin only commands
|
||||||
|
NOTADMIN="Sorry, this command is allowed for admin or owner only"
|
||||||
|
NOTBOTADMIN="Sorry, this command is allowed for bot owner only"
|
||||||
|
|
||||||
|
########
|
||||||
|
# special network setup may require additional ARGS to curl
|
||||||
|
#
|
||||||
|
# example: run bashbot over TOR or SOCKS proxy
|
||||||
|
# export BASHBOT_CURL_ARGS="--socks5-hostname 127.0.0.1:9050" # TOR
|
||||||
|
# export BASHBOT_CURL_ARGS="--socks5-hostname 127.0.0.1" # regular SOCKS
|
||||||
|
|
@ -1,98 +1,30 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#########
|
#######################################################
|
||||||
#
|
#
|
||||||
# files: mycommands.sh.dist
|
# File: mycommands.sh.dist
|
||||||
#
|
#
|
||||||
# this is an out of the box test and example file to show what's possible in mycommands.sh
|
# this is an out of the box test and example file to show what's possible in mycommands.sh
|
||||||
#
|
#
|
||||||
# #### 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
|
||||||
#
|
#
|
||||||
|
# Usage: will be executed when a bot command is received
|
||||||
|
#
|
||||||
|
# License: WTFPLv2 http://www.wtfpl.net/txt/copying/
|
||||||
|
# Author: KayM (gnadelwartz), kay@rrr.de
|
||||||
|
#
|
||||||
|
#### $$VERSION$$ v1.25-dev-41-g37e4539
|
||||||
|
#######################################################
|
||||||
# shellcheck disable=SC1117
|
# shellcheck disable=SC1117
|
||||||
#### $$VERSION$$ v1.25-dev-14-g2fe6d4b
|
|
||||||
#
|
|
||||||
|
|
||||||
##########
|
####################
|
||||||
# adjust your language setting here, default is C.UTF-8
|
# Config has moved to bashbot.conf
|
||||||
# https://github.com/topkecleon/telegram-bot-bash#setting-up-your-environment
|
# shellcheck source=./commands.sh
|
||||||
export 'LC_ALL=C.UTF-8'
|
[ -r "${BASHBOT_ETC:-.}/mycommands.conf" ] && source "${BASHBOT_ETC:-.}/mycommands.conf" "$1"
|
||||||
export 'LANG=C.UTF-8'
|
|
||||||
export 'LANGUAGE=C.UTF-8'
|
|
||||||
|
|
||||||
##########
|
|
||||||
# in UTF-8 äöü etc. are part of [:alnum:] and ranges (e.g. a-z)
|
|
||||||
# for more information see doc/4_expert.md#Character_classes
|
|
||||||
# uncomment next line if you want classic ASCII ranges for [a-z] etc.
|
|
||||||
#export LC_COLLATE=C
|
|
||||||
|
|
||||||
|
|
||||||
##########
|
##################
|
||||||
# edit the following lines to fit your bot usage
|
# let's go ...
|
||||||
# use ${ME} for current bot name in messages
|
|
||||||
# Note: you must escape '_' in botname with two \ in markdown messages!
|
|
||||||
export bashbot_info='This is @'"${ME//_/\\\\_}"', the Telegram example bot written entirely in bash.
|
|
||||||
Edit commands and messages in mycommands.sh!
|
|
||||||
'
|
|
||||||
# export bashbot_help='*Available commands*:
|
|
||||||
#'
|
|
||||||
export res=""
|
|
||||||
|
|
||||||
# Set INLINE to 1 in order to receive inline queries.
|
|
||||||
# To enable this option in your bot, send the /setinline command to @BotFather.
|
|
||||||
export INLINE="0"
|
|
||||||
|
|
||||||
# if your bot is group admin it get commands sent to other bots
|
|
||||||
# Set MEONLY to 1 to ignore commands sent to other bots
|
|
||||||
export MEONLY="0"
|
|
||||||
|
|
||||||
# Set to .* to allow sending files from all locations
|
|
||||||
# NOTE: this is a regex, not shell globbing! you must use a valid egex,
|
|
||||||
# '.' matches any character and '.*' matches all remaining charatcers!
|
|
||||||
# additionally you must escape special characters with '\', e.g. '\. \? \[ \*" to match them literally
|
|
||||||
export FILE_REGEX="${BASHBOT_ETC}/.*"
|
|
||||||
|
|
||||||
# set BASHBOT_RETRY to enable retry in case of recoverable errors, e.g. throtteling
|
|
||||||
# problems with send_xxx message etc are looged to logs/ERROR.log
|
|
||||||
unset BASHBOT_RETRY
|
|
||||||
#export BASHBOT_RETRY="yes"
|
|
||||||
|
|
||||||
# set value for adaptive sleeping while waiting for uodates in millisconds
|
|
||||||
# max slepp between polling updates 10s (default 5s)
|
|
||||||
export BASHBOT_SLEEP="10000"
|
|
||||||
# add 0.2s if no update available, up to BASHBOT_SLEEP (default 0.1s)
|
|
||||||
export BASHBOT_SLEEP_STEP="200"
|
|
||||||
|
|
||||||
# if you want to use timer functions, set BASHBOT_START_TIMER to a not empty value
|
|
||||||
# default is to not start timer
|
|
||||||
unset BASHBOT_START_TIMER
|
|
||||||
#export BASHBOT_START_TIMER="yes"
|
|
||||||
|
|
||||||
# set to "yes" and give your bot admin privilegs to remove service messages from groups
|
|
||||||
export SILENCER="no"
|
|
||||||
|
|
||||||
# uncomment to remove keyboards sent from your bot
|
|
||||||
# export REMOVEKEYBOARD="yes"
|
|
||||||
# export REMOVEKEYBOARD_PRIVATE="yes"
|
|
||||||
|
|
||||||
# uncomment to say welcome to new chat members
|
|
||||||
# export WELCOME_NEWMEMBER="yes"
|
|
||||||
WELCOME_MSG="Welcome"
|
|
||||||
|
|
||||||
# uncomment to be informed about new/left chat members
|
|
||||||
# export REPORT_NEWMEMBER="yes"
|
|
||||||
# export REPORT_LEFTMEMBER="yes"
|
|
||||||
|
|
||||||
# messages for admin only commands
|
|
||||||
NOTADMIN="Sorry, this command is allowed for admin or owner only"
|
|
||||||
NOTBOTADMIN="Sorry, this command is allowed for bot owner only"
|
|
||||||
|
|
||||||
########
|
|
||||||
# special network setup may require additional ARGS to curl
|
|
||||||
#
|
|
||||||
# example: run bashbot over TOR or SOCKS proxy
|
|
||||||
# export BASHBOT_CURL_ARGS="--socks5-hostname 127.0.0.1:9050" # TOR
|
|
||||||
# export BASHBOT_CURL_ARGS="--socks5-hostname 127.0.0.1" # regular SOCKS
|
|
||||||
|
|
||||||
if [ "$1" = "startbot" ];then
|
if [ "$1" = "startbot" ];then
|
||||||
###################
|
###################
|
||||||
# this section is processed on startup
|
# this section is processed on startup
|
||||||
|
@ -1,80 +1,31 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
########
|
#######################################################
|
||||||
|
#
|
||||||
|
# File: 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$$ v1.25-dev-9-g14fa2c7
|
# Usage: will be executed when a bot command is received
|
||||||
#
|
#
|
||||||
|
# License: WTFPLv2 http://www.wtfpl.net/txt/copying/
|
||||||
##########
|
# Author: KayM (gnadelwartz), kay@rrr.de
|
||||||
# adjust your language setting here, default is C.UTF-8
|
|
||||||
# https://github.com/topkecleon/telegram-bot-bash#setting-up-your-environment
|
|
||||||
export 'LC_ALL=C.UTF-8'
|
|
||||||
export 'LANG=C.UTF-8'
|
|
||||||
export 'LANGUAGE=C.UTF-8'
|
|
||||||
|
|
||||||
##########
|
|
||||||
# in UTF-8 äöü etc. are part of [:alnum:] and ranges (e.g. a-z)
|
|
||||||
# for more information see doc/4_expert.md#Character_classes
|
|
||||||
# uncomment next line if you want classic ASCII ranges for [a-z] etc.
|
|
||||||
#export LC_COLLATE=C
|
|
||||||
|
|
||||||
|
|
||||||
##########
|
|
||||||
# edit the following lines to fit your bot usage
|
|
||||||
|
|
||||||
export bashbot_info='This is bashbot, the Telegram bot written entirely in bash.
|
|
||||||
'
|
|
||||||
|
|
||||||
export bashbot_help='*Available commands*:
|
|
||||||
'
|
|
||||||
export res=""
|
|
||||||
|
|
||||||
# Set INLINE to 1 in order to receive inline queries.
|
|
||||||
# To enable this option in your bot must also send the /setinline command to @BotFather.
|
|
||||||
export INLINE="0"
|
|
||||||
|
|
||||||
# if your bot is group admin it get commands sent to other bots
|
|
||||||
# Set MEONLY to 1 to ignore commands sent to other bots
|
|
||||||
export MEONLY="0"
|
|
||||||
|
|
||||||
# NOTE: this is a regex, not shell globbing! you must use a valid egex,
|
|
||||||
# '.' matches any character and '.*' matches all remaining charatcers!
|
|
||||||
# additionally you must escape special characters with '\', e.g. '\. \? \[ \*" to match them literally
|
|
||||||
# do NOT set to .* as this allow sending files from all locations!
|
|
||||||
export FILE_REGEX="${BASHBOT_ETC}/.*"
|
|
||||||
|
|
||||||
# set BASHBOT_RETRY to enable retry in case of recoverable errors, e.g. throtteling
|
|
||||||
# problems with send_,´message etc are looged to logs/ERROR.log
|
|
||||||
unset BASHBOT_RETRY
|
|
||||||
#export BASHBOT_RETRY="yes"
|
|
||||||
|
|
||||||
# set value for adaptive sleeping while waitingnfor uodates in millisconds
|
|
||||||
# max slepp between polling updates 10s (default 5s)
|
|
||||||
export BASHBOT_SLEEP="10000"
|
|
||||||
# add 0.2s if no update available, up to BASHBOT_SLEEP (default 0.1s)
|
|
||||||
export BASHBOT_SLEEP_STEP="200"
|
|
||||||
|
|
||||||
# if you want to use timer functions, set BASHBOT_START_TIMER to a not empty value
|
|
||||||
# default is to nit start timer
|
|
||||||
unset BASHBOT_START_TIMER
|
|
||||||
#export BASHBOT_START_TIMER="yes"
|
|
||||||
# set to "yes" and give your bot admin privilegs to remove service messaes from groups
|
|
||||||
export SILENCER="no"
|
|
||||||
|
|
||||||
# uncomment to remove keyboards sent by your bot
|
|
||||||
# export REMOVEKEYBOARD="yes"
|
|
||||||
# export REMOVEKEYBOARD_PRIVATE="yes"
|
|
||||||
|
|
||||||
########
|
|
||||||
# special network setup may require additional ARGS to curl
|
|
||||||
#
|
#
|
||||||
# example: run bashbot over TOR or SOCKS proxy
|
#### $$VERSION$$ v1.25-dev-41-g37e4539
|
||||||
# export BASHBOT_CURL_ARGS="--socks5-hostname 127.0.0.1:9050" # TOR
|
#######################################################
|
||||||
# export BASHBOT_CURL_ARGS="--socks5-hostname 127.0.0.1" # regular SOCKS
|
# shellcheck disable=SC1117
|
||||||
|
|
||||||
|
####################
|
||||||
|
# Config has moved to bashbot.conf
|
||||||
|
# shellcheck source=./commands.sh
|
||||||
|
[ -r "${BASHBOT_ETC:-.}/mycommands.conf" ] && source "${BASHBOT_ETC:-.}/mycommands.conf" "$1"
|
||||||
|
|
||||||
|
|
||||||
|
##################
|
||||||
|
# lets's go
|
||||||
if [ "$1" = "startbot" ];then
|
if [ "$1" = "startbot" ];then
|
||||||
|
###################
|
||||||
|
# this section is processed on startup
|
||||||
|
|
||||||
# run once after startup when the first message is received
|
# run once after startup when the first message is received
|
||||||
my_startup(){
|
my_startup(){
|
||||||
:
|
:
|
||||||
|
Loading…
Reference in New Issue
Block a user