MembarrRU
MembarrRU — это форк Membarr, который форк Invitarr, который приглашает пользователей Discord в Plex и Jellyfin. Вы также можете автоматизировать этого бота, чтобы он приглашал пользователей Discord на медиасервер, как только пользователю будет присвоена определенная роль, или же пользователя можно добавить вручную.
Features
- Возможность приглашать пользователей в Plex и Jellyfin из дискорда.
- Полностью автоматические приглашения с использованием ролей
- Возможность выкидывать пользователей из plex, если они покидают сервер Discord или если их роль отбирают.
- Возможность просмотра базы данных в Discord и ее редактирования.Commands:
/plex invite <email>
Эта команда используется для добавления электронной почты в plex
/plex remove <email>
Эта команда используется для удаления почты из plex
/jellyfin invite <jellyfin username>
Эта команда используется для добавления пользователя в Jellyfin.
/jellyfin remove <jellyfin username>
Эта команда используется для удаления пользователя из Jellyfin.
/membarr dbls
Эта команда используется для получения списка базы данных Membarr
/membarr dbadd <@user> <optional: plex email> <optional: jellyfin username>
Эта команда используется для добавления в БД существующих plex email'ов, jellyfin пользователей и discord id.
/membarr dbrm <position>
Эта команда используется для удаления записи из базы данных. Для определения позиции записи используйте /membarr dbls. пример: /membarr dbrm 1
Создание Discord-бота
- Создайте дискорд-сервер, на котором пользователи будут получать роли участников, или используйте существующий сервер, в котором можно назначать роли
- Авторизуйтесь на https://discord.com/developers/applications и нажмите 'New Application'
- (Дополнительно) Добавьте краткое описание и иконку для бота. Сохраните изменения.
- Перейдите в раздел 'Бот' в боковом меню
- Снимите флажок 'Public Bot' в разделе Authorization Flow
- Установите все три флажка в разделе Privileged Gateway Intents: Presence Intent, Server Members Intent, Message Content Intent. Сохранить изменения.
- Скопируйте токен под именем пользователя или сбросьте его для копирования. Это токен, используемый в образе докера.
- Перейдите в раздел 'OAuth2' в боковом меню, затем 'URL Generator'
- В разделе Scopes отметьте 'bot' и applications.commands
- Скопируйте 'Generated URL', вставьте его в свой браузер и добавьте его на свой сервер Discord, из шага 1.
- Бот подключится к сети после запуска Docker-контейнера с правильным токеном бота.
Ручная настройка (для Docker см. ниже)
1. Введите токен бота Discord в bot.env
2. Требования к установке
pip3 install -r requirements.txt
3. Запустить бота
python3 Run.py
Настройка и запуск Docker
Чтобы запустить Membarr в Docker, выполните следующую команду, заменив [path to config] абсолютным путем к папке конфигурации вашего бота:
docker run -d --restart unless-stopped --name membarrru -v /[path to config]:/app/app/config -e "token=YOUR_DISCORD_TOKEN_HERE" deadcxap/membarrru:latest
После запуска бота
Команды настройки Plex:
/plexsettings setup <username> <password> <server name>
Эта команда используется для настройки входа в plex.
/plexsettings addrole <@role>
Эти роли будут использоваться в качестве ролей для автоматического приглашения пользователя в plex.
/plexsettings removerole <@role>
Эта команда используется для удаления роли, которая используется для автоматического приглашения пользователей в plex.
/plexsettings setuplibs <libraries>
Эта команда используется для настройки библиотек plex. По умолчанию выбраны все. Библиотеки — это список, разделенный запятыми.
/plexsettings enable
Эта команда включает интеграцию Plex (в настоящее время включает только автоматическое добавление/автоудаление)
/plexsettings disable
Эта команда отключает интеграцию Plex (в настоящее время отключает только автоматическое добавление/автоудаление).
Команды настройки Jellyfin:
/jellyfinsettings setup <server url> <api key> <optional: external server url (default: server url)>
Эта команда используется для настройки сервера Jellyfin. URL-адрес внешнего сервера — это URL-адрес, который отправляется пользователям для входа на ваш сервер Jellyfin.
/jellyfinsettings addrole <@role>
Эти роли будут использоваться в качестве ролей для автоматического приглашения пользователя в Jellyfin.
/jellyfinsettings removerole <@role>
Эта команда используется для удаления роли, которая используется для автоматического приглашения пользователей в Jellyfin.
/jellyfinsettings setuplibs <libraries>
Эта команда используется для настройки библиотек Jellyfin. По умолчанию выбраны все. Библиотеки — это список, разделенный запятыми.
/jellyfinsettings enable
Эта команда включает интеграцию Jellyfin (в настоящее время включает только автоматическое добавление/автоудаление)
/jellyfinsettings disable
Эта команда отключает интеграцию Jellyfin (в настоящее время отключает только автоматическое добавление/автоудаление)
Миграция с Invitarr
Для Invitarr не требуется область application.commands, поэтому вам нужно будет выгнать и повторно пригласить бота Discord на свой сервер, обязательно отметив обе области "bot" и "applications.commands" в генераторе URL-адресов Oauth.
Membarr использует немного другую таблицу базы данных, чем Invitarr. Membarr автоматически обновит таблицу базы данных Invitarr до текущего формата таблицы Membarr, но новая таблица больше не будет совместима с Invitarr, поэтому сделайте резервную копию файла app.db перед запуском Membarr!
Миграция на Invitarr
Как упоминалось в Миграция с Invitarr, у Membarr немного другая таблица базы данных, чем у Invitarr. Чтобы вернуться к Invitarr, вам придется вручную изменить формат таблицы обратно. Откройте app.db в инструменте sqlite cli или в браузере, таком как DB Browser, затем удалите столбец «jellyfin_username» и сделайте столбец «email» ненулевым.
Содействие
Мы ценим любой вклад, внесенный в проект, будь то новые функции, исправления ошибок или даже исправления опечаток! Если вы хотите внести свой вклад в проект, просто создайте ветку разработки, внесите изменения и откройте запрос на включение. Запросы на включение, не относящиеся к ветке разработки, будут отклонены.
Прочее
Включите Intents, в противном случае бот не будет добавлять пользователей в Dm после получения ими роли. https://discordpy.readthedocs.io/en/latest/intents.html#privileged-intents Для полноценной работы Discord Bot требуется разрешение Bot и application.commands.