WikimediaRoleManager — бот, созданный специально для автоматизации задач по модерированию серверов Википедии.
Задачи, которые решает бот:
- Верифицировать (подтверждать) участника при входе на сервер.
- Добавлять участников в тематические каналы при помощи ролей.
- Получать информацию из Википедии с помощью команд (в разработке).
В данный момент бот может работать только с сервером русскоязычных проектов Викимедиа.
Техническая информация: Бот написан на Python с использованием библиотек PWB и Discord.py.
Код разбит на несколько независимых модулей:
- file.py (отвечает за работу с файлами).
- botlike.py (лайкинг рандомной правки).
- bot.py (основной файл, откуда происходит работа с дискордом).
- Так как библиотека pywikibot не поддерживает асинхронную работу (корутины), приходится ждать до 3-5 секунд, пока бот поблагодарит правку. Из-за этого может быть некоторая заторможенность в исполнении команд.
- Чёрный список работает либо на все реакции, либо ни на какие. Поэтому в данный момент нет возможности запретить заходить в конкректный канал.
- В данный момент добавление/удаление канала(-ов) работает только с одним сообщением.
-
Поддержка работы на двух и более серверах одновременно.
Для работы с ботом необходим Python версии 3.7+.
Клонируйте данный репозиторий.
Установите pywikibot, следуя инструкции на странице установки.
Установите библиотеку discord.py с помощью команды pip install discord.py
.
Создайте своего бота на официальном сайте дискорда по инструкции. Укажите в файл token.py ваш токен, который сгенерировался во время создания.
После этого запустите файл main.py с помощью команды python3 main.py
, предварительно установив все зависимости. Следующим шагом будет добавление бота на сервер. Обратите внимание, что после добавления, роль бота необходимо переместить в самый верх, иначе во время работы будут случаться ошибки.
После того, как вы пригласите вашего бота, в файле config.json появится JSON-объект следующего вида:
{
"633673794468446270": {
"moderator_channel": null,
"main_role": 634300711688994817,
"moderators_role": 635073118045470751,
"join_channel_id": 637487510217424908,
"reactions": {
"wikipedia": 635091804902916106,
"🎦": 376712814250950660
},
"message_id": 635095374780039178,
"message_channel": null,
"time_adding": "2019-10-26 22:55:41.709699",
"owner": "OlegCinema#7385",
"created_at": "2019-10-15 14:33:25.691000",
"prefix": "$",
"bot_name": "OlegCinema"
}
}
Заполните следующие поля, после чего сохраните файл:
main_role
— ID (целое число) роли, которая будет присваиваться в случае успешного подтверждения аккаунта.moderators_role
— ID (целое число) модераторской роли.join_channel_id
— ID (целое число) канала, в котором будет осуществляться верификация (например, #login).message_id
— ID (целое число) сообщения, под которым будут стоять реакции для добавления в каналы.reactions
— словарь, в котором ключ — название emoji (обратите внимание, что если это базовые emoji, то необходимо поставить само emoji в качестве ключа, а если это загруженное emoji, то его название), а значение — ID (целое число) роли, которая будет присваиваться после нажатия. Внимание! Перед добавлением в файл конфигураций создайте соответствующее сообщение и поставьте под ним реакции.bot_name
— название аккаунта в Википедии, который будет благодарить правки.
Если вы желаете внедрить бота на свой сервер, свяжитесь со мной по электронной почте olegcinemaw@mail.ru или по дискорду OlegCinema#7385.