Discord-бот для скачивания модов Open Workshop, Factorio и Steam Workshop напрямую из чата.
- Вся кодовая база перенесена в
src/open_workshop_discord_bot/ - Старые корневые входные файлы удалены
config.jsonтеперь является единственным источником правды для всех несекретных настроек- Секреты передаются через переменные окружения
- Зависимости теперь лежат в
requirements.txt
- Скопируйте
.env.exampleв.env.
cp .env.example .env-
Укажите
DISCORD_TOKENв.env. -
Заполните
config.jsonцеликом. В коде больше нет запасных значений по умолчанию. -
Установите зависимости:
python3 -m pip install -r requirements.txt- Запустите бота:
PYTHONPATH=src python3 -m open_workshop_discord_bot
# или
PYTHONPATH=src python3 -m open_workshop_discord_bot --config path/to/config.jsonЧтобы bot user появился участником сервера и был виден в Guilds при запуске,
приложение нужно установить с OAuth2 scope bot. Одного applications.commands
недостаточно: так Discord может добавить slash-команды, но не добавить самого
бота как участника сервера.
В Discord Developer Portal:
- Откройте
Installation. - Для
Guild Installвключите scopesbotиapplications.commands. - В bot permissions выберите минимум
View Channels,Send Messages,Embed LinksиAttach Files. - Используйте Guild Install / OAuth2 URL Generator, а не User Install.
Прямая форма ссылки:
https://discord.com/oauth2/authorize?client_id=<APPLICATION_ID>&scope=bot%20applications.commands&permissions=52224
config.jsonдолжен содержать все секции и все поля без пропусковdiscord- статус, activity и автосинхронизация командapi- адрес API, сайт, таймаут запроса и порог выдачи прямой ссылкиstorage- путь к SQLite-базе, где бот хранит статистику по днямui- тексты embed'ов, кнопки и цветаmessages- все пользовательские сообщения и шаблоныcommands- имена и описания slash-команд, а также имя context menu
DISCORD_TOKEN- токен Discord-бота, хранится в.env.envподхватывается автоматически при запуске