mirror of
https://github.com/octoleo/telegram-bot-bash.git
synced 2024-05-29 00:10:53 +00:00
more portable [ = ] test
This commit is contained in:
parent
fe9443fe4d
commit
121a113703
40
bashbot.sh
40
bashbot.sh
|
@ -10,7 +10,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.6-dev3-1-gae157c4
|
#### $$VERSION$$ v0.6-dev3-1-gfe9443f
|
||||||
#
|
#
|
||||||
# Exit Codes:
|
# Exit Codes:
|
||||||
# - 0 sucess (hopefully)
|
# - 0 sucess (hopefully)
|
||||||
|
@ -45,7 +45,7 @@ fi
|
||||||
|
|
||||||
TOKEN="./token"
|
TOKEN="./token"
|
||||||
if [ ! -f "${TOKEN}" ]; then
|
if [ ! -f "${TOKEN}" ]; then
|
||||||
if [ "${CLEAR}" == "" ]; then
|
if [ "${CLEAR}" = "" ]; then
|
||||||
echo "Running headless, run ${SCRIPT} init first!"
|
echo "Running headless, run ${SCRIPT} init first!"
|
||||||
exit 2
|
exit 2
|
||||||
else
|
else
|
||||||
|
@ -65,9 +65,9 @@ fi
|
||||||
|
|
||||||
BOTADMIN="./botadmin"
|
BOTADMIN="./botadmin"
|
||||||
if [ ! -f "${BOTADMIN}" ]; then
|
if [ ! -f "${BOTADMIN}" ]; then
|
||||||
if [ "${CLEAR}" == "" ]; then
|
if [ "${CLEAR}" = "" ]; then
|
||||||
echo "Running headless, set botadmin to AUTO MODE!"
|
echo "Running headless, set botadmin to AUTO MODE!"
|
||||||
echo "?" > "${BOTADMIN}"
|
echo '?' > "${BOTADMIN}"
|
||||||
else
|
else
|
||||||
${CLEAR}
|
${CLEAR}
|
||||||
echo -e "${RED}BOTADMIN MISSING.${NC}"
|
echo -e "${RED}BOTADMIN MISSING.${NC}"
|
||||||
|
@ -256,27 +256,27 @@ leave_chat() {
|
||||||
}
|
}
|
||||||
|
|
||||||
user_is_creator() {
|
user_is_creator() {
|
||||||
if [ "${1:--}" == "${2:-+}" ] || [ "$(get_chat_member_status "$1" "$2")" == "creator" ]; then return 0; fi
|
if [ "${1:--}" = "${2:-+}" ] || [ "$(get_chat_member_status "$1" "$2")" = "creator" ]; then return 0; fi
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
user_is_admin() {
|
user_is_admin() {
|
||||||
local me; me="$(get_chat_member_status "$1" "$2")"
|
local me; me="$(get_chat_member_status "$1" "$2")"
|
||||||
if [ "${me}" == "creator" ] || [ "${me}" == "administrator" ]; then return 0; fi
|
if [ "${me}" = "creator" ] || [ "${me}" = "administrator" ]; then return 0; fi
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
user_is_botadmin() {
|
user_is_botadmin() {
|
||||||
local admin; admin="$(head -n 1 "${BOTADMIN}")"
|
local admin; admin="$(head -n 1 "${BOTADMIN}")"
|
||||||
[ "${admin}" == "${1}" ] && return 0
|
[ "${admin}" = "${1}" ] && return 0
|
||||||
[[ "${admin}" == "@*" ]] && [[ "${admin}" == "${2}" ]] && return 0
|
[[ "${admin}" = "@*" ]] && [[ "${admin}" = "${2}" ]] && return 0
|
||||||
if [ "${admin}" == "?" ]; then echo "${1:-?}" >"${BOTADMIN}"; return 0; fi
|
if [ "${admin}" = "?" ]; then echo "${1:-?}" >"${BOTADMIN}"; return 0; fi
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
user_is_allowed() {
|
user_is_allowed() {
|
||||||
local acl="$1"
|
local acl="$1"
|
||||||
[ "$1" == "" ] && return 1
|
[ "$1" = "" ] && return 1
|
||||||
grep -F -xq "${acl}:*:*" <"${BOTACL}" && return 0
|
grep -F -xq "${acl}:*:*" <"${BOTACL}" && return 0
|
||||||
[ "$2" != "" ] && acl="${acl}:$2"
|
[ "$2" != "" ] && acl="${acl}:$2"
|
||||||
grep -F -xq "${acl}:*" <"${BOTACL}" && return 0
|
grep -F -xq "${acl}:*" <"${BOTACL}" && return 0
|
||||||
|
@ -426,24 +426,24 @@ send_file() {
|
||||||
# typing for text messages, upload_photo for photos, record_video or upload_video for videos, record_audio or upload_audio for audio files, upload_document for general files, find_location for location
|
# typing for text messages, upload_photo for photos, record_video or upload_video for videos, record_audio or upload_audio for audio files, upload_document for general files, find_location for location
|
||||||
|
|
||||||
send_action() {
|
send_action() {
|
||||||
[ "$2" == "" ] && return
|
[ "$2" = "" ] && return
|
||||||
res="$(curl -s "$ACTION_URL" -F "chat_id=$1" -F "action=$2")"
|
res="$(curl -s "$ACTION_URL" -F "chat_id=$1" -F "action=$2")"
|
||||||
}
|
}
|
||||||
|
|
||||||
send_location() {
|
send_location() {
|
||||||
[ "$3" == "" ] && return
|
[ "$3" = "" ] && return
|
||||||
res="$(curl -s "$LOCATION_URL" -F "chat_id=$1" -F "latitude=$2" -F "longitude=$3")"
|
res="$(curl -s "$LOCATION_URL" -F "chat_id=$1" -F "latitude=$2" -F "longitude=$3")"
|
||||||
}
|
}
|
||||||
|
|
||||||
send_venue() {
|
send_venue() {
|
||||||
[ "$5" == "" ] && return
|
[ "$5" = "" ] && return
|
||||||
[ "$6" != "" ] add="-F \"foursquare_id=$6\""
|
[ "$6" != "" ] add="-F \"foursquare_id=$6\""
|
||||||
res="$(curl -s "$VENUE_URL" -F "chat_id=$1" -F "latitude=$2" -F "longitude=$3" -F "title=$4" -F "address=$5")"
|
res="$(curl -s "$VENUE_URL" -F "chat_id=$1" -F "latitude=$2" -F "longitude=$3" -F "title=$4" -F "address=$5")"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
forward() {
|
forward() {
|
||||||
[ "$3" == "" ] && return
|
[ "$3" = "" ] && return
|
||||||
res="$(curl -s "$FORWARD_URL" -F "chat_id=$1" -F "from_chat_id=$2" -F "message_id=$3")"
|
res="$(curl -s "$FORWARD_URL" -F "chat_id=$1" -F "from_chat_id=$2" -F "message_id=$3")"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -487,7 +487,7 @@ inproc() {
|
||||||
process_updates() {
|
process_updates() {
|
||||||
MAX_PROCESS_NUMBER=$(echo "$UPDATE" | sed '/\["result",[0-9]*\]/!d' | tail -1 | sed 's/\["result",//g;s/\].*//g')
|
MAX_PROCESS_NUMBER=$(echo "$UPDATE" | sed '/\["result",[0-9]*\]/!d' | tail -1 | sed 's/\["result",//g;s/\].*//g')
|
||||||
for ((PROCESS_NUMBER=0; PROCESS_NUMBER<=MAX_PROCESS_NUMBER; PROCESS_NUMBER++)); do
|
for ((PROCESS_NUMBER=0; PROCESS_NUMBER<=MAX_PROCESS_NUMBER; PROCESS_NUMBER++)); do
|
||||||
if [ "$1" == "test" ]; then
|
if [ "$1" = "test" ]; then
|
||||||
process_client "$1"
|
process_client "$1"
|
||||||
else
|
else
|
||||||
process_client "$1" &
|
process_client "$1" &
|
||||||
|
@ -575,7 +575,7 @@ process_client() {
|
||||||
}
|
}
|
||||||
|
|
||||||
# source the script with source as param to use functions in other scripts
|
# source the script with source as param to use functions in other scripts
|
||||||
while [ "$1" == "startbot" ]; do {
|
while [ "$1" = "startbot" ]; do {
|
||||||
|
|
||||||
UPDATE="$(curl -s "$UPD_URL$OFFSET" | ./JSON.sh/JSON.sh)"
|
UPDATE="$(curl -s "$UPD_URL$OFFSET" | ./JSON.sh/JSON.sh)"
|
||||||
|
|
||||||
|
@ -584,7 +584,7 @@ while [ "$1" == "startbot" ]; do {
|
||||||
OFFSET=$((OFFSET+1))
|
OFFSET=$((OFFSET+1))
|
||||||
|
|
||||||
if [ "$OFFSET" != "1" ]; then
|
if [ "$OFFSET" != "1" ]; then
|
||||||
if [ "$2" == "test" ]; then
|
if [ "$2" = "test" ]; then
|
||||||
process_updates "$2"
|
process_updates "$2"
|
||||||
else
|
else
|
||||||
process_updates "$2" &
|
process_updates "$2" &
|
||||||
|
@ -646,7 +646,7 @@ case "$1" in
|
||||||
${CLEAR}
|
${CLEAR}
|
||||||
echo -e "${GREEN}Restart background processes ...${NC}"
|
echo -e "${GREEN}Restart background processes ...${NC}"
|
||||||
for FILE in "${TMPDIR:-.}/"*-back.cmd; do
|
for FILE in "${TMPDIR:-.}/"*-back.cmd; do
|
||||||
if [ "${FILE}" == "${TMPDIR:-.}/*-back.cmd" ]; then
|
if [ "${FILE}" = "${TMPDIR:-.}/*-back.cmd" ]; then
|
||||||
echo -e "${RED}No background processes to start.${NC}"; break
|
echo -e "${RED}No background processes to start.${NC}"; break
|
||||||
else
|
else
|
||||||
RESTART="$(< "${FILE}")"
|
RESTART="$(< "${FILE}")"
|
||||||
|
@ -673,14 +673,14 @@ case "$1" in
|
||||||
${CLEAR}
|
${CLEAR}
|
||||||
echo -e "${GREEN}Stopping background processes ...${NC}"
|
echo -e "${GREEN}Stopping background processes ...${NC}"
|
||||||
for FILE in "${TMPDIR:-.}/"*-back.cmd; do
|
for FILE in "${TMPDIR:-.}/"*-back.cmd; do
|
||||||
if [ "${FILE}" == "${TMPDIR:-.}/*-back.cmd" ]; then
|
if [ "${FILE}" = "${TMPDIR:-.}/*-back.cmd" ]; then
|
||||||
echo -e "${RED}No background processes.${NC}"; break
|
echo -e "${RED}No background processes.${NC}"; break
|
||||||
else
|
else
|
||||||
REMOVE="$(< "${FILE}")"
|
REMOVE="$(< "${FILE}")"
|
||||||
JOB="${REMOVE#*:}"
|
JOB="${REMOVE#*:}"
|
||||||
fifo="back-${JOB%:*}-${ME}_${REMOVE%%:*}"
|
fifo="back-${JOB%:*}-${ME}_${REMOVE%%:*}"
|
||||||
echo "killbackground ${fifo}"
|
echo "killbackground ${fifo}"
|
||||||
[ "$1" == "killback" ] && rm -f "${FILE}" # remove job
|
[ "$1" = "killback" ] && rm -f "${FILE}" # remove job
|
||||||
( tmux kill-session -t "${fifo}"; tmux kill-session -t "sendprocess_${fifo}"; rm -f -r "${TMPDIR:-.}/${fifo}") 2>/dev/null
|
( tmux kill-session -t "${fifo}"; tmux kill-session -t "sendprocess_${fifo}"; rm -f -r "${TMPDIR:-.}/${fifo}") 2>/dev/null
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
Loading…
Reference in New Issue
Block a user