84 lines
3.5 KiB
Bash
Executable File
84 lines
3.5 KiB
Bash
Executable File
#!/bin/bash
|
|
[ "${1}" == "stop" ] && {
|
|
kill -SIGTERM "$(cat /tmp/tpdnsbot.pid)" 2>/dev/null
|
|
exit 0
|
|
}
|
|
printf "%s" "${$}" > /tmp/tpdnsbot.pid
|
|
|
|
api_url="https://api.telegram.org/bot${TELEGRAM_DNS_TOKEN}/"
|
|
botid="6040192441"
|
|
bot_tmpdir="/tmp/tpdnsbot/"
|
|
[ -d "${bot_tmpdir}" ] || {
|
|
mkdir "${bot_tmpdir}" || {
|
|
printf "error: can't write to /tmp\n"
|
|
exit 2
|
|
}
|
|
}
|
|
|
|
files=( "updates.txt" "sentmsgs.txt" "delmsgs.txt" "error.log" )
|
|
for i in "${files[@]}"; do
|
|
touch "${bot_tmpdir}${i}"
|
|
done
|
|
unset files
|
|
|
|
exec 2>>"${bot_tmpdir}/error.log"
|
|
|
|
. ./bashbot-lib/bashbot-lib.sh
|
|
. ./bashbot-lib/viewer.sh
|
|
|
|
declare -a kbd_rows=( 1 )
|
|
declare -a kbd_text=( "check again" )
|
|
declare -a kbd_data=( "recheck" )
|
|
inline_kbd=$(mkinline_kbd kbd_rows kbd_text kbd_data)
|
|
unset kbd_rows
|
|
unset kbd_text
|
|
unset kbd_data
|
|
|
|
while [ "${1}" == "start" ]; do
|
|
getupd >/dev/null || continue
|
|
declare -A curmsg
|
|
getmsg_content curmsg updates.txt
|
|
view_content curmsg
|
|
for i in $(awk '{print $1}' ./allowed_ids.txt); do
|
|
[ "${curmsg[user_id]}" == "${i}" ] && {
|
|
[ "${curmsg[callback]}" == "recheck" ] && {
|
|
editmsg "${curmsg[chat_id]}" "${curmsg[msg_id]}" "checking again."
|
|
__ip="$(./getip.sh "${bot_tmpdir}")"
|
|
editmsg "${curmsg[chat_id]}" "${curmsg[msg_id]}" "checking again.."
|
|
ps -w -w -U steam -o args= | grep "TShock.Server" >/dev/null \
|
|
&& __terraria_status="online" || __terraria_status="offline"
|
|
ps -w -w -U steam -o args= | grep "factorio" >/dev/null \
|
|
&& __factorio_status="online" || __factorio_status="offline"
|
|
ps -w -w -U syncplay -o args= | grep "syncplay-server" >/dev/null \
|
|
&& __syncplay_status="online" || __syncplay_status="offline"
|
|
editmsg "${curmsg[chat_id]}" "${curmsg[msg_id]}" "checking again..."
|
|
ps -w -w -U steam -o args= | grep "hlds_linux" >/dev/null \
|
|
&& __cstrike_status="online" || __cstrike_status="offline"
|
|
editmsg "${curmsg[chat_id]}" "${curmsg[msg_id]}" "${__ip}%0Aterraria(${__terraria_status}): port 7777%0Afactorio(${__factorio_status}): port 34197%0Asyncplay(${__syncplay_status}): port 60000%0Acstrike(${__cstrike_status}): port 64000" "${inline_kbd}"
|
|
unset curmsg
|
|
declare -A curmsg
|
|
getmsg_content curmsg sentmsgs.txt
|
|
tput setaf 3; view_content curmsg; tput sgr0
|
|
}
|
|
[ "${curmsg[text]}" == "/start" ] && {
|
|
__ip="$(./getip.sh "${bot_tmpdir}")"
|
|
ps -w -w -U steam -o args= | grep "TShock.Server" >/dev/null \
|
|
&& __terraria_status="online" || __terraria_status="offline"
|
|
ps -w -w -U steam -o args= | grep "factorio" >/dev/null \
|
|
&& __factorio_status="online" || __factorio_status="offline"
|
|
ps -w -w -U syncplay -o args= | grep "syncplay-server" >/dev/null \
|
|
&& __syncplay_status="online" || __syncplay_status="offline"
|
|
editmsg "${curmsg[chat_id]}" "${curmsg[msg_id]}" "checking again..."
|
|
ps -w -w -U steam -o args= | grep "hlds_linux" >/dev/null \
|
|
&& __cstrike_status="online" || __cstrike_status="offline"
|
|
sendmsg "${curmsg[chat_id]}" "${__ip}%0Aterraria(${__terraria_status}): port 7777%0Afactorio(${__factorio_status}): port 34197%0Asyncplay(${__syncplay_status}): port 60000%0Acstrike(${__cstrike_status}): port 64000" "${inline_kbd}"
|
|
unset curmsg
|
|
declare -A curmsg
|
|
getmsg_content curmsg sentmsgs.txt
|
|
tput setaf 3; view_content curmsg; tput sgr0
|
|
}
|
|
}
|
|
done
|
|
unset curmsg __ip __terraria_status __factorio_status __syncplay_status __cstrike_status
|
|
done
|