engine monitoring bot for encounter
author: Temig (https://world.en.cx/UserDetails.aspx?uid=154783)
Версия 1.3c Можно видеть и брать штрафные подсказки Можно задать префикс (символ, после которого будет вбиваться код, по умолчанию /) Мелкие изменения
Версия 1.3b Добавлен выбор уровня при штурме.
Версия 1.3a Selenium заменен на асинхронный playwright. Браузер для скриншотов общий, но в нем для каждого отдельного слежения запускается отдельный изолированный контекст для каждой сессии. Запускаемый через /open_browser браузер запускает отдельный браузер в системе.
Версия 1.3:
- Бот переписан на aiogram
- Все взаимодействие с движком вынесено в отдельный класс EncounterBot, он общий для Vk (https://github.com/temig74/en_vk_bot) и Tg версии ботов
- Мелкие улучшения
Версия 1.2:
- Виртуальный браузер работает и на зеркалах (*.encounter.cx и *.encounter.ru)
- Добавлен html парсер заданий, его можно включить \ выключить
- Можно снимать полные и неполные скрины, при приходе задания полный скрин снимается автоматически, если включено в настройках
- В выводе бонусов видны их задания для незакрытых и подсказки для закрытых
- В настройках можно задать список слов, при которых отключать прием кодов (для штрафных, ложных кодов)
- Можно включить режим вбития в основное поле при блокировке без ! (например при небольшом ограничении в 5-10 секунд)
- Мелкие улучшения
Версия 1.1:
- Добавлена экспериментальная опция построителя маршрутов (команда /route_builder). Для её использования вам необходимо будет получить Api-ключ Яндекса "JavaScript API и HTTP Геокодер": https://developer.tech.yandex.ru и вписать Yandex_api_key в en_settings.ini. Показывает начало доезда и весь доезд целиком при обнаружении новых координат в задании\подсказке и .т.п. от прошлых распознанных координат. Также можно вручную задать текущую стартовую позицию командой /set_coords.
- Некоторые небольшие изменения:
- добавлен тг-ник пробившего через бот в выдаче /sectors и /bonuses (удобно видеть, какой полевой какие сектора закрывал через бот)
- реплай сообщения бота не вызывает пробития реплая
- добавлена команда /game_info со ссылкой на игру (также можно добавить док командой /set_doc)
- добавлена команда /sectors_left, показывающая только оставшиеся сектора
- автоматическое отключение ввода кодов при нахождении в тексте уровня вхождений "ложн" или "штраф" (настраивается в параметре Stop_accept_codes_words)
- папка level_snapshots для хранения истории уровней будет создана автоматически, если она отсутствует
Функции бота 1.0:
- Отправка информации об уровне (номер, текст уровня, автопереход, инфа о блокировке ответов)
- Отправка информации о секторах, бонусах, подсказках на уровне.
- Ввод кодов (в т.ч. принудительный ввод при блокировке ответов)
- Мониторинг движка (автопереход и выдача нового задания, приход подсказки, время до апа, закрытие сектора, закрытие бонуса)
- Мониторинг изменений (поменялось задание уровня, добавлено сообщение, количество секторов поменялось, количество бонусов поменялось, количество секторов для прохождения поменялось, добавлена подсказка)
- Запись на диск информации о прошедших уровнях (можно посмотреть закрывшие бонусы и сектора ответы)
- Показать скриншот текущего уровня
- Открыть браузер, привязанный к сессии бота, на компьютере, где запущен бот
- Отправить геометку по координатам
- Парсинг текста на координаты и kml
- Добавить тг полевых игроков (их будет тегать через @ при апе)
Чтобы запустить бота, необходимо:
- Скачать последнюю скомпилированную в exe версию из релизов (нужна win >=10): https://github.com/temig74/en_engine_bot/releases .
- Чтобы работал браузер и скрины, нужно запустить install_chromium.bat или install_firefox.bat (смотря что будете используете, по умолчанию в settings.ini указан chromium), это скачает необходимый браузер для playwright
- Или Вы можете запускать из исходников через питон, установив все необходимые библиотеки (aiogram, lxml, playwright (и далее установив playwright install firefox\chromium (какой браузер использовать можно указать в en_settings.ini)), BeautifulSoup4), использовалась версия питона 3.12
- Зарегистрировать своего бота у https://t.me/BotFather, получить Токен, вписать этот токен в конфиг бота (Token в tg_settings.ini). Для своего удобства у BotFather можете добавить нужные вам команды для бота, которые будут предлагаться после ввода / (через edit commands)
- Добавить логин(ы) в тг в список админов бота в tg_settings.ini (через запятую без пробелов, если несколько)
- Добавить зарегистрированного бота в игровой чат
- Запустить бота en_tg_bot.exe (или, как выше писалось, запустить из исходников)
- Авторизовать бота на игру:
- либо в самом игровом чате: /auth домен id_игры логин пароль
- либо через личку, если не хотите светить пароль в чате: /auth домен id_игры логин пароль id_чата
- логин должен быть без пробелов, но можете использовать id вместо логина
- Id чата можно получить в игровом чате командой /get_id (для групповых чатов он отрицательный, это нормально, вписывать тоже с минусом)
- запустить мониторинг: /game_monitor. Если игра уже началась, запросите задание /task. Если еще не началась, бот пришлет первое задание, как игра начнется.
Подробно с командами бота можно ознакомиться /help:
- /help, /start - этот help
- /auth домен id_игры логин пароль [id_чата] - авторизовать бота на игру в игровом чате (или в личке, добавив id_чата)
- /stop_auth - отключить чат
- /get_id - получить id чата
- /game_monitor [0] - включить/[отключить] слежение за игрой
- /s, /sectors [level№] - показать сектора [прошедшего_уровня]
- /sl - оставшиеся сектора на уровне
- /b, /bonuses [level№] - показать бонусы [прошедшего_уровня]
- /bl - оставшиеся бонусы на уровне
- /h, /hints - показать подсказки
- /t, /task - показать текущее задание
- /scr, /скр - скриншот текущего уровня
- /fs, /фс - полный скриншот текущего уровня
- /любой_код123 - вбитие в движок любой_код123
- /!любой_код123 - вбитие в сектор любой_код123 (актуально при блокировке)
- /accept_codes [0] - включить/[выключить] прием кодов из чата
- /sector_monitor [0] - включить/[выключить] мониторинг секторов
- /bonus_monitor [0] - включить/[выключить] мониторинг бонусов
- /parser [0] - включить/[выключить] парсер HTML
- /send_screen [0] - включить/[выключить] отправку скрина нового уровня
- /send_code_in_block [0] - включить/[выключить] отправку кодов в сектор при блокировке (без !)
- /route_builder [0] - включить/[выключить] автомобильный построитель маршрутов. Необходим Api-ключ Яндекса "JavaScript API и HTTP Геокодер"
- /up_full_screen [0] - включить/[выключить] полноэкранный скриншот при апе уровня (если снятие скриншотов включено)
- /set_coords xx.xxxxxx yy.yyyyyy - установить текущие координаты (для построителя маршрутов)
- /time - оставшееся время до апа
- /load_old_json - загрузить информацию о прошедших уровнях игры из файла (при перезапуске бота)
- /geo или /* координаты через пробел - отправить геометку по координатам
- /set_players @игрок1 @игрок2... - установить список полевых игроков
- /open_browser открыть бразуер на компьютере, где запущен бот, привязанный к сессии бота
- /game_info - информация об игре
- /set_doc - установить ссылку на гуглдок
- /w название_статьи - скрин статьи из вики
- /wf название_статьи - полный скрин статьи из вики
- /leave_chat id_чата - покинуть чат с указанным id
- /set_level номер_уровня - установить текущий номер уровня (актуально для штурма)
- /levels - список уровней
- /set_prefix prefix - установить префикс для вбития кодов (если отличен от / то нужен будет доступ бота к сообщениям чата)
- /penalty id_штрафной_подсказки - взять штрафную подсказку
Если будет желание задонатить:
- 5536 9138 8657 7465 T-bank
- USDT TBwC4TCnWBd1qEX6YiHKmAgNXGh1cqkWJW (TRC20)
- Еноты (id 154783)