Facebook
From Nik, 4 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 144
  1. import telebot
  2. import steam
  3. from steam import game_servers as gs
  4. import logging
  5.  
  6. #logger = telebot.logger
  7. #telebot.logger.setLevel(logging.DEBUG) # Outputs debug messages to console.
  8. # Телеграмм-Бот для игры Red Orchestra 2
  9.  
  10. token = 'токен'
  11. bot = telebot.TeleBot(token)
  12.  
  13. # Keyboard
  14. markup = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=False)
  15. itembtn1 = telebot.types.KeyboardButton('правила')
  16. itembtn2 = telebot.types.KeyboardButton('статус сервера')
  17. itembtn3 = telebot.types.KeyboardButton('помощь')
  18. itembtn4 = telebot.types.KeyboardButton('о боте')
  19. markup.add(itembtn1, itembtn2)
  20. markup.add(itembtn3, itembtn4)
  21.  
  22. @bot.message_handler(commands=['start'])
  23. def send_welcome(message):
  24.     bot.send_message(message.chat.id, "Приветсвую <b>" + message.from_user.first_name +
  25.                      "</b> aka @" + message.from_user.username + "!", parse_mode = 'html')
  26.     bot.send_message(message.chat.id, "Выбери нужный раздел: ", reply_markup=markup)
  27.  
  28.  
  29. @bot.message_handler(commands=['help'])
  30. def help(message):
  31.     bot.send_message(message.chat.id, "Для проверки статуса RU-сервера Red Orchestra 2, введи /status \n" +
  32.                      "Для связи с разработчиком бота пиши @Mr_0hotNik", reply_markup=markup)
  33.  
  34.  
  35. @bot.message_handler(commands=['status']) # !!!хочу, чтобы эта функция вызывалась пр  нажатии кнопки, см. ниже
  36. def server_status(message):
  37.     server_addr = next(gs.query_master(r'\gameaddr\37.230.228.193:7778'))  # Connect to server RO2 RU
  38.     info_map = gs.a2s_info(server_addr)['map']
  39.     #info_ping = gs.a2s_info(server_addr)['_ping'] "</b>\nПинг: " + str(info_ping)[0:6]
  40.     info_players = gs.a2s_info(server_addr)['players']
  41.     info_max_players = gs.a2s_info(server_addr)['max_players']
  42.     info_bots = gs.a2s_info(server_addr)['bots']
  43.     if info_players == 0:
  44.         bot.reply_to(message, "Сейчас запущена карта: <b>" + str(info_map)
  45.                          + "</b>\nИгроков на сервере: " + str(info_players) + " из " + str(info_max_players) + "\nБотов: "
  46.                          + str(info_bots) + "\n" + "На сервере пусто... ? Скорее зови друзей! И вперёд! В бой!", parse_mode = 'html')
  47.     elif info_players == 63:
  48.         bot.reply_to(message, "Сейчас запущена карта: <b>" + str(info_map)
  49.                          + "</b>\nИгроков на сервере: " + str(info_players) + " из " + str(info_max_players) + "\nБотов: "
  50.                          + str(info_bots) + "\n" + "Одно местечко на сервере...  Успеешь!? ?", parse_mode = 'html')
  51.     elif info_players > 63:
  52.         bot.reply_to(message, "Сейчас запущена карта: <b>" + str(info_map)
  53.                          + "</b>\nИгроков на сервере: " + str(info_players) + " из " + str(info_max_players) + "\nБотов: "
  54.                          + str(info_bots) + "\n" + "Свободных мест пока нет ???  Проверь немного позже...", parse_mode = 'html')
  55.     else:
  56.         bot.reply_to(message, "Сейчас запущена карта: <b>" + str(info_map)
  57.                          + "</b>\nИгроков на сервере: " + str(info_players) + " из " + str(info_max_players) + "\nБотов: "
  58.                          + str(info_bots) + "\n" + "На сервере есть места! Сыграем!? ?", parse_mode = 'html')
  59.  
  60.  
  61. @bot.message_handler(content_types = ['text'])
  62. def all_text (message):
  63.     get_message_bot = message.text.strip().lower()
  64.     if message.chat.type == 'private':
  65.         if get_message_bot == 'правила':
  66.             bot.reply_to (message, '''На RU-сервере RO2 установлены строгие правила игры. Ознакомиться с ними можно <a href="https://telegra.ph/Pravila-Igrovyh-Serverov-Red-Orchestra-Heroes-of-Stalingrad-04-21">тут</a>
  67.         Если кто-то нарушает правила игры, то сообщи об этом в админский чат @roruadmin.
  68.         При обращении необходимо четко и кратко описать ситуацию, а также указать игровой никнейм игрока
  69.         Пример: <i>Никнейм, подозрение на читы, прошу проверить </i>''',parse_mode = 'html', reply_markup=markup)
  70.         elif get_message_bot == 'статус сервера':
  71.             bot.reply_to(message, server_status(message), parse_mode = 'html', reply_markup=markup)  # !!! вот тут, чтобы она вызывалась, что
  72.         elif get_message_bot == 'помощь':
  73.             bot.reply_to(message, '''Для проверки статуса RU-сервера Red Orchestra 2, нажми кнопку "статус сервера"
  74.         Для связи с разработчиком бота пиши @Mr_0hotNik.
  75.         Правила игры на сервере, доступны при нажатии кнопки "правила"''', parse_mode = 'html', reply_markup=markup)
  76.         elif get_message_bot == 'о боте':
  77.             bot.reply_to(message, "Бот русскоязычного сообщества Red Orchestra 2", parse_mode = 'html', reply_markup=markup)
  78.         else:
  79.            bot.reply_to(message, "Что-то пошло не так! Воспользуйся лучше кнопками ниже", parse_mode = 'html', reply_markup=markup)
  80.  
  81.  
  82. bot.polling(none_stop=True)

Replies to bad_request rss

Title Name Language When
Re: bad_request Gamboge Earthworm python 4 Years ago.
captcha