mirror of
https://github.com/octoleo/telegram-bot-bash.git
synced 2024-09-22 05:39:01 +00:00
user_is_botadmin final
This commit is contained in:
parent
d74552410a
commit
db7b19fbc4
40
bashbot.sh
40
bashbot.sh
@ -10,12 +10,12 @@
|
|||||||
# 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-dev2-13-g88cf2d9
|
#### $$VERSION$$ v0.6-dev2-14-g56cb1bb
|
||||||
#
|
#
|
||||||
# Exit Codes:
|
# Exit Codes:
|
||||||
# - 0 sucess (hopefully)
|
# - 0 sucess (hopefully)
|
||||||
# - 1 can't change to dir
|
# - 1 can't change to dir
|
||||||
# - 2 can't write to tmp and / or count
|
# - 2 can't write to tmp, count or token
|
||||||
# - 3 user not found
|
# - 3 user not found
|
||||||
# - 4 unkown command
|
# - 4 unkown command
|
||||||
|
|
||||||
@ -51,21 +51,31 @@ fi
|
|||||||
|
|
||||||
TOKEN="./token"
|
TOKEN="./token"
|
||||||
if [ ! -f "${TOKEN}" ]; then
|
if [ ! -f "${TOKEN}" ]; then
|
||||||
|
if [ "${CLEAR}" == "" ]; then
|
||||||
|
echo "Running headless, run ${SCRIPT} init first!"
|
||||||
|
exit 2
|
||||||
|
else
|
||||||
${CLEAR}
|
${CLEAR}
|
||||||
echo -e "${RED}TOKEN MISSING.${NC}"
|
echo -e "${RED}TOKEN MISSING.${NC}"
|
||||||
echo -e "${ORANGE}PLEASE WRITE YOUR TOKEN HERE${NC}"
|
echo -e "${ORANGE}PLEASE WRITE YOUR TOKEN HERE${NC}"
|
||||||
read -r token
|
read -r token
|
||||||
echo "${token}" >> "${TOKEN}"
|
echo "${token}" > "${TOKEN}"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
BOTADMIN="./botadmin"
|
BOTADMIN="./botadmin"
|
||||||
if [ ! -f "${BOTADMIN}" ]; then
|
if [ ! -f "${BOTADMIN}" ]; then
|
||||||
|
if [ "${CLEAR}" == "" ]; then
|
||||||
|
echo "Running headless, set botadmin to AUTO MODE!"
|
||||||
|
echo "?" > "${BOTADMIN}"
|
||||||
|
else
|
||||||
${CLEAR}
|
${CLEAR}
|
||||||
echo -e "${RED}BOTADMIN MISSING.${NC}"
|
echo -e "${RED}BOTADMIN MISSING.${NC}"
|
||||||
echo -e "${ORANGE}PLEASE WRITE YOUR TELEGRAM ID HERE${NC}"
|
echo -e "${ORANGE}PLEASE WRITE YOUR TELEGRAM ID HERE OR ENTER '?'${NC}"
|
||||||
echo -e "${ORANGE}ENTER '?' TO MAKE FIRST USER TO BOTADMIN${NC}"
|
echo -e "${ORANGE}TO MAKE FIRST USER TYPING '/start' TO BOTADMIN${NC}"
|
||||||
read -r token
|
read -r token
|
||||||
echo "${token}" >> "${BOTADMIN}"
|
echo "${token}" > "${BOTADMIN}"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
TMPDIR="./tmp-bot-bash"
|
TMPDIR="./tmp-bot-bash"
|
||||||
@ -246,6 +256,14 @@ user_is_admin() {
|
|||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
user_is_botadmin() {
|
||||||
|
local admin; admin="$(head -n 1 "${BOTADMIN}")"
|
||||||
|
[ "${admin}" == "${1}" ] && return 0
|
||||||
|
[[ "${admin}" == "@*" ]] && [[ "${admin}" == "${2}" ]] && return 0
|
||||||
|
if [ "${admin}" == "?" ]; then echo "${1:-?}" >"${BOTADMIN}"; return 0; fi
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
answer_inline_query() {
|
answer_inline_query() {
|
||||||
case "$2" in
|
case "$2" in
|
||||||
"article")
|
"article")
|
||||||
@ -609,10 +627,10 @@ 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="$(cat "$FILE")"
|
RESTART="$(< "${FILE}")"
|
||||||
CHAT[ID]="${RESTART%%:*}"
|
CHAT[ID]="${RESTART%%:*}"
|
||||||
JOB="${RESTART#*:}"
|
JOB="${RESTART#*:}"
|
||||||
PROG="${JOB#*:}"
|
PROG="${JOB#*:}"
|
||||||
@ -636,14 +654,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="$(cat "$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