#!/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 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}%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 syncplay -o args= | grep "syncplay-server" >/dev/null\ && __syncplay_status="online" || __syncplay_status="offline" ps -w -w -U steam -o args= | grep "hlds_run" >/dev/null\ && __cstrike_status="online" || __cstrike_status="offline" sendmsg "${curmsg[chat_id]}" "${__ip}%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 __syncplay_status __cstrike_status done