MembarrRU ================= MembarrRU — это форк Membarr, который форк Invitarr, который приглашает пользователей Discord в Plex и Jellyfin. Вы также можете автоматизировать этого бота, чтобы он приглашал пользователей Discord на медиасервер, как только пользователю будет присвоена определенная роль, или же пользователя можно добавить вручную. ### Features - Возможность приглашать пользователей в Plex и Jellyfin из дискорда. - Полностью автоматические приглашения с использованием ролей - Возможность выкидывать пользователей из plex, если они покидают сервер Discord или если их роль отбирают. - Возможность просмотра базы данных в Discord и ее редактирования.Commands: ``` /plex invite Эта команда используется для добавления электронной почты в plex /plex remove Эта команда используется для удаления почты из plex /jellyfin invite Эта команда используется для добавления пользователя в Jellyfin. /jellyfin remove Эта команда используется для удаления пользователя из Jellyfin. /membarr dbls Эта команда используется для получения списка базы данных Membarr /membarr dbadd <@user> Эта команда используется для добавления в БД существующих plex email'ов, jellyfin пользователей и discord id. /membarr dbrm Эта команда используется для удаления записи из базы данных. Для определения позиции записи используйте /membarr dbls. пример: /membarr dbrm 1 ``` # Создание Discord-бота 1. Создайте дискорд-сервер, на котором пользователи будут получать роли участников, или используйте существующий сервер, в котором можно назначать роли 2. Авторизуйтесь на https://discord.com/developers/applications и нажмите 'New Application' 3. (Дополнительно) Добавьте краткое описание и иконку для бота. Сохраните изменения. 4. Перейдите в раздел 'Бот' в боковом меню 5. Снимите флажок 'Public Bot' в разделе Authorization Flow 6. Установите все три флажка в разделе Privileged Gateway Intents: Presence Intent, Server Members Intent, Message Content Intent. Сохранить изменения. 7. Скопируйте токен под именем пользователя или сбросьте его для копирования. Это токен, используемый в образе докера. 8. Перейдите в раздел 'OAuth2' в боковом меню, затем 'URL Generator' 9. В разделе Scopes отметьте 'bot' и applications.commands 10. Скопируйте 'Generated URL', вставьте его в свой браузер и добавьте его на свой сервер Discord, из шага 1. 11. Бот подключится к сети после запуска 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 Эта команда используется для настройки входа в plex. /plexsettings addrole <@role> Эти роли будут использоваться в качестве ролей для автоматического приглашения пользователя в plex. /plexsettings removerole <@role> Эта команда используется для удаления роли, которая используется для автоматического приглашения пользователей в plex. /plexsettings setuplibs Эта команда используется для настройки библиотек plex. По умолчанию выбраны все. Библиотеки — это список, разделенный запятыми. /plexsettings enable Эта команда включает интеграцию Plex (в настоящее время включает только автоматическое добавление/автоудаление) /plexsettings disable Эта команда отключает интеграцию Plex (в настоящее время отключает только автоматическое добавление/автоудаление). ``` # Команды настройки Jellyfin: ``` /jellyfinsettings setup Эта команда используется для настройки сервера Jellyfin. URL-адрес внешнего сервера — это URL-адрес, который отправляется пользователям для входа на ваш сервер Jellyfin. /jellyfinsettings addrole <@role> Эти роли будут использоваться в качестве ролей для автоматического приглашения пользователя в Jellyfin. /jellyfinsettings removerole <@role> Эта команда используется для удаления роли, которая используется для автоматического приглашения пользователей в Jellyfin. /jellyfinsettings setuplibs Эта команда используется для настройки библиотек 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](#Migration-From-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.**