@Layerqa

Как сделать так чтобы телеграм бот выводил информацию о сервере?

Как сделать так чтобы при нажатии кнопки старт скрипт срабатывал заного тоесть есть скрипт который выводит информацию о сервере кс 1.6 при нажатии кнопки старт в телеграм боте дело в том что он работает один раз и выводит одну и ту же инфу.
import valve.source
import valve.source.a2s
import valve.source.master_server
import telebot

SERVER_ADDRESS = ('ип', порт)

bot = telebot.TeleBot('токен бота');

with valve.source.a2s.ServerQuerier(SERVER_ADDRESS) as server:
    info = server.info()
    players = server.players()
    print("{player_count}/{max_players} {server_name}".format(**info))
for player in sorted(players["players"],key=lambda p: p["score"], reverse=True):
    print("{score} {name}".format(**player))

@bot.message_handler(commands=['start'])  
def start_command(message):  
    bot.send_message(  
        message.chat.id,  
        'Чтобы узнать онлайн на сервере напиши /check\n' '')

@bot.message_handler(commands=['check'])  
def start_command(message):  
    bot.send_message(message.chat.id, 'Онлайн на сервере: ' "{player_count}/{max_players}\n{server_name}\nКарта: {map}\nПлатформа: {platform} VAC: {vac_enabled}\nВерсия: {version}".format(**info))

@bot.message_handler(commands=['players'])  
def start_command(message):  
    bot.send_message(message.chat.id, 'Игроки: ' "{name}".format(**info, **player))

bot.polling(none_stop=True, interval=0)
  • Вопрос задан
  • 449 просмотров
Решения вопроса 1
deepblack
@deepblack Куратор тега Python
  • Очевидно что код который отвечает за получение инфы с игрового сервера вынести в соответствующий обработчик. Чтобы он выполнялся каждый раз при отправке соответствующей команды.

  • В идеале организовать кеширование этой инфы допустип на минуту, чтобы не дергать сервер лишними запросами. Хотя я сомневаюсь что у тебя там большая нагрузка.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы