Это скрипт на языке Python для Telegram-бота, который взаимодействует с API Drova. Бот позволяет владельцам станций просматривать свои последние игровые сессии, а также устанавливать свой X-Auth-Token для доступа к API.
Поддержать авторов: Xerz и dreamer2
Подтверждена работоспособность с python 3.9.1 и python-telegram-bot==13.7
- Склонируйте этот репозиторий на свой локальный компьютер.
- Скачайте базы данных IP адресов
GeoLite2(файлы называетсяGeoLite2-City.mmdbиGeoLite2-ASN.mmdb) в папку с репозиторием. - Установите необходимые пакеты Python (см. импорты в файле бота)
- Создайте нового бота в Telegram, следуя инструкциям BotFather.
- Далее, в зависимости от вашей ОС
- Как только вы получите токен своего бота, установите его как переменную среды в вашем терминале с помощью следующей команды:
export TELEGRAM_BOT_TOKEN=<ваш токен бота>- Запустите бота, выполнив команду
python bot.pyв вашем терминале.
(спасибо dreamer2)
- Замените
REPLACE-TO-YOUR-TELEGRAM-BOT-TOKENв файлеstartbot.cmdна ваш токен - Запустите
startbot.cmd.
- Скопируйте
.env.exampleв.envи задайте значениеTELEGRAM_BOT_TOKEN. - Запустите бота командой
docker-compose up --build.
/token ваш_токен_здесь
Установите свой X-Auth-Token, отправив эту команду боту. Токен можно получить на странице "Мои сервера", считав QR-код для авторизации в мобильном приложении. Внимание! Токен даёт доступ к вашему аккаунту! Не отправляйте токен своего аккаунта в непроверенные боты!
/removetoken
Используется для удаления вашего токена из базы бота если вы не планируете дальше его использовать.
/station
Используйте эту команду, чтобы получить список ваших станций и выбрать станцию для показа сессий. Вы также можете указать ID станции, чтобы получить сессии для конкретной станции, например /station id_станции_здесь.
/sessions
Используйте эту команду, чтобы получить список сессий для указанной станции. Чтобы обновить список сессий, просто нажмите кнопку "Update" внизу сообщения. Чтобы показать только сессии длинее пяти минут, используйте команду /sessions short
/limit число_здесь
Используйте команду, чтобы сменить количество выводимых сессий. По умолчанию 5.
/dumpall
Используйте команду для получения последних 1000 сессий (ограничение API) каждой станции в виде csv файла
/dumponefile
Используйте команду для получения последних 1000 сессий (ограничение API) каждой станции в виде одного xlsx файла
/current(спасибо dreamer2)
Используйте команду для получения краткого списка станций и последних сессий на каждой станции (имена станций имеют следующую разметку - выключенные, неопубликованные, в ожидании, с активной сессией)
/disabled
Выводит по станциям список отключенных игр.
/stationsInfo
Выводит список станций с их адресами.
/dumpStationsProducts
Экспортирует в файл список станций и что на них установлено.
/dumpStationsProductsWithTime
Экспортирует в файл список станций и что на них установлено со временем.
/dumpstationsproductsmonth
Экспортирует в файл список станций и что на них установлено со временем за месяц.
пишете ему /setcommands , выбираете своего бота и вставляете список команд, например такой
token - 123-456-789 установить токен из qr кода личного кабинета мерчанта
removetoken - удалить токен пользователя из бота
current - Краткий список последних сессий по всем станциям
disabled - Список отключенного на станции
station - [id станции] выбор станции из списка или ручным вводом её id
stationsinfo - Список станций с их адресами
limit - N смена ограничения на вывод сессий
sessions - [short] просмотр сессий со всех или с выбранной станции
dumpall - экспорт сессий по серверам
dumponefile - экспорт сессий одним файлом
dumpstationsproducts - экспорт списка установленного на станциях
dumpstationsproductswithtime - экспорт списка установленного на станциях со временем
dumpstationsproductsmonth - экспорт списка установленного на станциях со временем за месяц
- Перевод станций в частный режим из опубликованного и обратно
- Отдельная команда для короткого списка сессий
- Общая отказоустойчивость и обработка ошибок в частности
- Уведомления
- об отключенных играх
- Определение города и провайдера клиента и расстояния от станции до него