diff --git a/.github/README.md b/.github/README.md index a5a4b324..457d700e 100644 --- a/.github/README.md +++ b/.github/README.md @@ -123,6 +123,7 @@ | 🟢 | | Docker Mailserver | https://docker-mailserver.github.io/docker-mailserver/latest/ | 可用于生产的全栈但简单的邮件服务器 | | | 🟢 | | MaxKB | https://maxkb.cn/ | 基于 LLM 大语言模型的知识库问答系统 | | | 🟢 | | Media CMS | https://mediacms.io/ | 现代、功能齐全的开源视频和媒体内容管理系统 | | +| 🟢 | | MetaTube | https://github.com/metatube-community/ | 为 Jellyfin/Emby/Plex 开发的超级好用的成人元数据刮削插件 | | | 🟢 | | MinIO | https://min.io/ | MinIO 是一种高性能、兼容 S3 的对象存储 | | | 🟢 | | MoviePilot | https://github.com/jxxghp/MoviePilot/ | NAS媒体库自动化管理工具 | | | 🟢 | | MySQL | https://www.mysql.com/ | 关系数据库管理系统 | MySQL | diff --git a/README.md b/README.md index 491b5604..ee578a80 100644 --- a/README.md +++ b/README.md @@ -106,6 +106,7 @@ | 🟢 | | Docker Mailserver | https://docker-mailserver.github.io/docker-mailserver/latest/ | 可用于生产的全栈但简单的邮件服务器 | | | 🟢 | | MaxKB | https://maxkb.cn/ | 基于 LLM 大语言模型的知识库问答系统 | | | 🟢 | | Media CMS | https://mediacms.io/ | 现代、功能齐全的开源视频和媒体内容管理系统 | | +| 🟢 | | MetaTube | https://github.com/metatube-community/ | 为 Jellyfin/Emby/Plex 开发的超级好用的成人元数据刮削插件 | | | 🟢 | | MinIO | https://min.io/ | MinIO 是一种高性能、兼容 S3 的对象存储 | | | 🟢 | | MoviePilot | https://github.com/jxxghp/MoviePilot/ | NAS媒体库自动化管理工具 | | | 🟢 | | MySQL | https://www.mysql.com/ | 关系数据库管理系统 | MySQL | diff --git a/apps/metatube-server/1.2.8/data.yml b/apps/metatube-server/1.2.8/data.yml new file mode 100644 index 00000000..25bee4cb --- /dev/null +++ b/apps/metatube-server/1.2.8/data.yml @@ -0,0 +1,91 @@ +additionalProperties: + formFields: + - child: + default: "" + envKey: PANEL_POSTGRES_SERVICE + required: true + type: service + default: postgresql + envKey: PANEL_POSTGRES_TYPE + labelZh: Postgres 服务 (前置检查) + labelEn: Postgres Service (Pre-check) + required: true + type: apps + values: + - label: PostgreSQL + value: postgresql + - default: "/home/ani-rss" + edit: true + envKey: METATUBE_ROOT_PATH + labelZh: 数据持久化路径 + labelEn: Data persistence path + required: true + type: text + - default: 8080 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelZh: WebUI 端口 + labelEn: WebUI port + required: true + rule: paramPort + type: number + - default: "" + edit: true + envKey: TOKEN + labelZh: 访问令牌 + labelEn: Access Token + required: true + type: text + - default: "127.0.0.1" + edit: true + envKey: POSTGRES_HOST + labelZh: 数据库 主机地址 + labelEn: Database Host + required: true + type: text + - default: 5432 + edit: true + envKey: POSTGRES_PORT + labelZh: 数据库 端口 + labelEn: Database Port + required: true + rule: paramPort + type: number + - default: "metatube" + edit: true + envKey: POSTGRES_NAME + labelZh: 数据库 名称 + labelEn: Database Name + required: true + rule: paramCommon + type: text + - default: "metatube" + edit: true + envKey: POSTGRES_USER + labelZh: 数据库 用户名 + labelEn: Database Username + required: true + type: text + - default: "" + edit: true + envKey: POSTGRES_PASSWORD + labelZh: 数据库 密码 + labelEn: Database Password + random: true + required: true + rule: paramComplexity + type: password + - default: "1m" + edit: true + envKey: REQUEST_TIMEOUT + labelZh: 请求超时时间 + labelEn: Request Timeout + required: true + type: text + - default: "" + edit: true + envKey: HTTP_PROXY + labelZh: 网络代理 (HTTP/Socket5) + labelEn: Network Proxy (HTTP/Socket5) + required: false + type: text diff --git a/apps/metatube-server/1.2.8/docker-compose.yml b/apps/metatube-server/1.2.8/docker-compose.yml new file mode 100644 index 00000000..7479d8bc --- /dev/null +++ b/apps/metatube-server/1.2.8/docker-compose.yml @@ -0,0 +1,27 @@ +networks: + 1panel-network: + external: true + +services: + metatube-server: + image: metatube/metatube-server:1.2.8 + container_name: ${CONTAINER_NAME} + labels: + createdBy: "Apps" + restart: always + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:8080 + env_file: + - ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env} + - ${ENV_FILE:-/etc/1panel/envs/default.env} + volumes: + - ${METATUBE_ROOT_PATH}/data:/var/run + environment: + - HTTPS_PROXY=${HTTP_PROXY} + - DB_MAX_IDLE_CONNS=0 + - DB_MAX_OPEN_CONNS=0 + - DB_PREPARED_STMT=false + - DB_AUTO_MIGRATE=true + command: -dsn "postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_NAME}" -port 8080 -db-auto-migrate -db-prepared-stmt diff --git a/apps/metatube-server/1.2.8/envs/default.env b/apps/metatube-server/1.2.8/envs/default.env new file mode 100644 index 00000000..cd05f46e --- /dev/null +++ b/apps/metatube-server/1.2.8/envs/default.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +ENV_FILE=.env diff --git a/apps/metatube-server/1.2.8/envs/global.env b/apps/metatube-server/1.2.8/envs/global.env new file mode 100644 index 00000000..e10989fe --- /dev/null +++ b/apps/metatube-server/1.2.8/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai diff --git a/apps/metatube-server/1.2.8/scripts/init.sh b/apps/metatube-server/1.2.8/scripts/init.sh new file mode 100644 index 00000000..07fb8c3f --- /dev/null +++ b/apps/metatube-server/1.2.8/scripts/init.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + sed -i '/^GLOBAL_ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/metatube-server/1.2.8/scripts/uninstall.sh b/apps/metatube-server/1.2.8/scripts/uninstall.sh new file mode 100644 index 00000000..c86c4fbc --- /dev/null +++ b/apps/metatube-server/1.2.8/scripts/uninstall.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/metatube-server/1.2.8/scripts/upgrade.sh b/apps/metatube-server/1.2.8/scripts/upgrade.sh new file mode 100644 index 00000000..07fb8c3f --- /dev/null +++ b/apps/metatube-server/1.2.8/scripts/upgrade.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + sed -i '/^GLOBAL_ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/metatube-server/README.md b/apps/metatube-server/README.md new file mode 100644 index 00000000..5423acef --- /dev/null +++ b/apps/metatube-server/README.md @@ -0,0 +1,81 @@ +# MetaTube 服务端 + +为 Jellyfin/Emby/Plex 开发的超级好用的元数据插件 + +![MetaTube](https://file.lifebus.top/imgs/metatube.png) + +![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue) + +## 应用特性 + ++ 完整数据:包括标题、简介、演员、标签、评分等内容。 ++ 完整搜索:支持通过众多的刮削源搜索影片和演员信息。 ++ 预告功能:无需下载完整预告视频即可在线观看预告片。 ++ 计划任务:自动整理影片标签以及在后台自动更新插件。 ++ 人脸识别:内置的人脸识别以人脸为中心裁剪海报图像。 ++ 自动翻译:支持将特定的元数据内容翻译成需要的语言。 + +## 应用说明 + +## 插件安装 + +### Jellyfin + +1. 进入 Jellyfin 控制台 > 插件目录/存储库 > 设置,点击添加 +2. 输入存储库名称:MetaTube +3. 输入存储库 + +```url +# URL for GitHub +https://raw.githubusercontent.com/metatube-community/jellyfin-plugin-metatube/dist/manifest.json +``` + +4. 在插件目录下找到 MetaTube,点击安装 +5. 重启 Jellyfin + +> 适用于中国大陆的存储库 +> +> ```url +> # URL for jsDelivr +> https://cdn.jsdelivr.net/gh/metatube-community/jellyfin-plugin-metatube@dist/manifest.json +> ``` + +### Emby + +1. 从 Releases 下载 MetaTube 最新插件 +2. 解压出 MetaTube.dll 文件 +3. 将 dll 文件复制到 Emby 插件目录 +4. 重启 Emby 服务 + +> PS:Emby 后续插件更新由计划任务在后台自动完成。 + +### Plex + +1. 从 [GitHub](https://github.com/metatube-community/metatube-plex-plugins/archive/refs/heads/main.zip) + 或 [Releases](https://github.com/metatube-community/metatube-plex-plugins/releases) 下载最新的插件 + zip 文件 +2. 将解压后的 MetaTube.bundle 文件夹移入 Plex 插件目录的根目录 +3. 其中文件夹 MetaTubeHelper.bundle 为辅助插件,可选择性安装 +4. 重启 Plex 服务 + +### 常见 Emby 插件应用目录 + +#### 群晖 + +`/volume1/Emby/plugins` + +#### Windows + +`emby\programdata\plugins` + +#### Docker + +`<配置文件夹>/plugins` + +#### Linux(供参考) + +`/var/lib/emby-server/plugins/` + +--- + +![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png) diff --git a/apps/metatube-server/data.yml b/apps/metatube-server/data.yml new file mode 100644 index 00000000..b0d3691b --- /dev/null +++ b/apps/metatube-server/data.yml @@ -0,0 +1,15 @@ +additionalProperties: + key: metatube-server + name: MetaTube + tags: + - WebSite + - Tool + - Local + shortDescZh: 为 Jellyfin/Emby/Plex 开发的超级好用的成人元数据刮削插件 + shortDescEn: A super easy-to-use adult metadata scraping plugin developed for Jellyfin/Emby/Plex + type: website + crossVersionUpdate: true + limit: 0 + website: https://github.com/metatube-community/ + github: https://github.com/metatube-community/ + document: https://metatube-community.github.io/ diff --git a/apps/metatube-server/logo.png b/apps/metatube-server/logo.png new file mode 100644 index 00000000..5671ce95 Binary files /dev/null and b/apps/metatube-server/logo.png differ