Samuro Bot for Heroes of the Storm
Пригласить на свой discord сервер
Дискорд
Описание
Бот обладает библиотекой функций, связанных с игрой Heroes of the Storm;
Также присутствует несколько функций для discord-комьюнити.
При необходимости можно добавлять или удалять отдельные модули из cogs не затрагивая остальной функционал
Первый запуск
Подготовка
- Установить зависимости (желательно в venv)
pip install -r requirements.txt
- Подготовить БД создав нужные таблицы через скрипт sql.init;
Скрипт написан под PostgreSQL, корректность для других БД не проверялась
- Зарегистрировать бота на сайте Discord Developers
- Для работы потребуется APPLICATION ID и TOKEN
- Настройку Bot Permissions и Privileged Gateway Intents расписывать не буду, они зависят от нужных модулей
- Подготовить для себя config:
- Поставить нужный префикс
- Поставить нужных админов
- Выбрать цвета сообщений
Запуск
- Установить переменные среды APP_ID и TOKEN или напрямую вставить значения в bot.py
TOKEN = os.environ.get('TOKEN')
APP_ID = os.environ.get('APP_ID')
- Запустить файл bot.py
COGs
Игровые
- heroes - Модуль выдает основую информацию по всем героям
- hots - Все команды связанные с хотсом, помимо информации о героях
Основые модули из-за которых бот изначально писался. Требуют минимум доп библиотек.
Сообщество
- profile - Связка профилей в дискорде с батлнете. Основа для следующих модулей
- event - Проведение событий
- team - Объединения людей в команды/кланы
- achievement - Присвоение и вывод достижений
- stats - Вывод статистики по людям, событиям, достижениям
- fix - Фиксы различных данных в таблицах. Требовался при пересмотре логики некоторых функций.
Код некоторых функций может не работать, т.к они писались для разового использования.
Данный раздел требует для работы отдельную Базу данных.
RU | Heroes of the Storm
-
news - Создание новостей и рассписания для сообщенства *RU |
Heroes of the Storm* |
- ruhots - Доп функции для RUHotS: лайки и вывод Артов от художников
Модули отделены от основной кодовой базы, содержат много хардкода и специфичных моментов.
Возможно когда-нибудь я вернусь к этим функциям, в их текущем состоянии рекомендую их к удалению.
Технические
- help - Хелп по командам, выводит справку по каждому отдельному модулю
- CommandErrorHandler - Обработчик особых ситуаций. Вынесен отдельно т.к используется много своих обработок исключений
- owner - Ряд технических команд доступных только создателю бота (в данный момент не доработан)
- general - Базовые команды: проверка жив ли бот, приглашение бота, информация о боте
- slash - Создание команд с подсказками через слеш
Слеш команды обладают несколькими особенностями.
Именно из-за них во многих местах используется получение guild_id и author_id,
т.к эти атрибуты именуются не так, как в стандартной библиотеке дискорда.
Обычно для слеша команды пишут отдельно, но я ленив и старался писать так, чтобы они работали сразу и там и там.
Прочие файлы для настройки
- Константы - Различные пути к файлам и используемые в коде константы
- Исключения - Дополнительные исключения
- Проверки - Различные проверки для разграничения доступа к функциям
- Скрипты - Частично не нужные или даже не работающие скрипты с тестами различных функций
Patch Updates
Обновление осуществляется в полуавтоматическом режиме, поскольку обновление файлов в репозитории heroesdata осуществляется с задержкой.
Перед обновлением проверить, что мейнтейнер выложил новые файлы под текущий патч.
Обновление до актуального патча
License
This project is licensed under the Apache License 2.0 - see the LICENSE.md file for details