Версия v1.x больше не будет обновляться и поддерживаться, при необходимости обновите и используйте версию v2.x! ! !
Введение
Используйте модуль сторожевого таймера («сторожевой таймер») в python для мониторинга каталога медиатеки Emby и отправляйте новую видеоинформацию в медиатеку Emby, включая фильмы и эпизоды, для направления подписчиков через ботов и каналы телеграмм.
Исходный код проекта загружен на github — https://github.com/Ccccx159/watchdog_for_Emby.git
изображение докера загружено на hub.docker.com — https://hub.docker.com/r/b1gfac3c4t/overwatch
добро пожаловать в использование~
Примечания по реализации
В версии v2.x удалена xmllint-зависимость в оригинальной версии, а все функции реализованы только через python. Поэтому в dockerfile базовый образ изменен ubuntu:latest
с на python:alpine3.17
, а размер образа уменьшен с 231 МБ до 69,5 МБ после вытягивания, что примерно на 70% меньше .
watchdog_for_Emby отслеживает файл «xxxx.nfo», созданный автоматической очисткой видео Emby Server. После того, как новый фильм будет помещен в библиотеку, Emby Server автоматически выполнит очистку для создания файла nfo в формате xml. Через xmllint можно проанализировать некоторую информацию о фильме или эпизоде. Файл nfo можно проанализировать с помощью «ElementTree». модуль для получения основной информации о текущем фильме. Изображение обложки фильма и подробную информацию об эпизоде необходимо запрашивать через API TMDB, и запрос завершается вызовом метода «requests.get()». После сборки данных полезной нагрузки в соответствии с API-документом телеграмм-бота вызовите метод «requests.post()», чтобы передать их боту, и бот отправит их на соответствующий канал.
зависимости
- python3.10 и выше (в версии v2.x используется синтаксис match...case..., который поддерживается только в версии 3.10 и выше)
- Модуль Python: сторожевой таймер , запросы (cmd:)
pip3 install watchdog requests
, ElementTree Эта зависимость была удалена вsudo apt-get install libxml2-utils
xmllint (os: ubuntu 20.04, cmd:)v2.x
Настройки переменных среды
параметр | иллюстрировать |
---|---|
BOT_TOKEN | Токен бота Telegram |
CHAT_ID | Telegram-канал chat_id |
TMDB_API | API-токен TMDB |
МЕДИА_ПУТЬ | Путь к библиотеке Emby |
LOG_PATH | <необязательный> путь к файлу журнала, по умолчанию/var/tmp/overwatch.log |
Докер Бег
docker run -d --name=watchdog-emby --restart=unless-stopped \
-v "your media lib's host path":"media lib's container path" \
-e BOT_TOKEN="your telegram bot's token" \
-e CHAT_ID="your telegram channle's chat_id" \
-e TMDB_API="tmdb api token" \
-e MEDIA_PATH="media lib's container path" \
-e LOG_PATH="log's output path" \
b1gfac3c4t/overwatch
Показать результаты
Фильм:
эпизоды:
справочные документы
- документация API tmdb: https://developers.themoviedb.org/3
- Документация API бота Telegram: https://core.telegram.org/bots/api