fix readme

This commit is contained in:
jxxghp 2023-07-11 17:53:10 +08:00
parent 9fd31f3e56
commit af7bfee7c6
2 changed files with 235 additions and 7 deletions

232
README.md
View File

@ -2,6 +2,234 @@
基于 [NAStool](https://github.com/NAStool/nas-tools) 部分代码重新设计,聚焦自动化核心需求,减少问题同时更易于扩展和维护。
仍在开发中,当前不具备使用条件。
Dockerhttps://hub.docker.com/r/jxxghp/moviepilot
## 主要特性
- 前后端分离基于FastApi + Vue3前端项目地址[MoviePilot-Frontend](https://github.com/jxxghp/MoviePilot-Frontend)
- 聚焦核心需求,简化功能和设置,部分设置项可直接使用默认值。
- 重新设计了用户界面,更加美观易用。
## 安装
1. **安装CookieCloud插件**
站点信息需要通过CookieCloud同步获取因此需要安装CookieCloud插件将浏览器中的站点Cookie数据同步到云端后再同步到MoviePilot使用。 插件下载地址请点击 [这里](https://github.com/easychen/CookieCloud/releases)。
2. **安装CookieCloud服务端可选**
MoviePilot内置了公共的CookieCloud服务器如果需要自建服务可参考 [CookieCloud](https://github.com/easychen/CookieCloud) 项目进行安装。
```shell
docker pull easychen/cookiecloud:latest
```
3. **安装配套管理软件**
MoviePilot跟NAStool一样需要配套下载器和媒体服务器使用。
- 下载器支持qBittorrent、TransmissionQB版本号要求>= 4.2.9TR版本号要求>= 3.0推荐使用QB。
- 媒体服务器支持Jellyfin、Emby、Plex推荐使用Emby。
4. **安装MoviePilot**
目前仅提供docker镜像后续可能会提供更多安装方式。
```shell
docker pull jxxghp/moviepilot:latest
```
## 配置
项目的所有配置均通过环境变量进行设置,部分环境建立容器后会自动显示待配置项,如未自动显示配置项则需要手动增加对应环境变量。
### 1. **基础设置**
- **HOST** 监听地址,默认`0.0.0.0`如需支持ipv6则需改为`::`
- **SUPERUSER** 超级管理员用户名,默认`admin`,安装后使用该用户登录后台管理界面
- **SUPERUSER_PASSWORD** 超级管理员初始密码,默认`password`,建议修改为复杂密码
- **API_TOKEN** API密钥默认`moviepilot`在媒体服务器Webhook、微信回调等地址配置中需要加上`?token=`该值,建议修改为复杂字符串
- **PROXY_HOST** 网络代理可选访问themoviedb需要使用代理访问格式为`ip:port`
- **TMDB_API_DOMAIN** TMDB API地址默认`api.themoviedb.org`,也可配置为`api.tmdb.org`或其它中转代理服务地址,能连通即可
- **DOWNLOAD_PATH** 下载保存目录,**注意:需要将`moviepilot``下载器`的映射路径与宿主机`真实路径`保持一致**,例如群晖中下载路程径为`/volume1/downloads`,则需要将`moviepilot``下载器`的映射路径均设置为`/volume1/downloads`,否则会导致下载文件无法转移
- **LIBRARY_PATH** 媒体库目录,**注意:需要将`moviepilot`的映射路径与宿主机`真实路径`保持一致**
- **LIBRARY_CATEGORY** 二级分类开关,`true`/`false`,开启后会根据配置自动在媒体库目录下建立二级目录分类
- **DOUBAN_USER_IDS** 豆瓣用户ID用于同步豆瓣标记的`想看`数据,自动添加订阅,多个用户使用,分隔
- **TRANSFER_TYPE** 转移方式,支持`link`/`copy`/`move`/`softlink`
- **COOKIECLOUD_HOST** CookieCloud服务器地址格式`http://ip:port`,必须配置,否则无法添加站点
- **COOKIECLOUD_KEY** CookieCloud用户KEY
- **COOKIECLOUD_PASSWORD** CookieCloud端对端加密密码
- **COOKIECLOUD_INTERVAL** CookieCloud同步间隔分钟
- **USER_AGENT** CookieCloud对应的浏览器UA可选同步站点后可以在管理界面中修改
- **MESSAGER** 消息通知渠道,支持 `telegram`/`wechat`/`slack`,同时还需要配置对应渠道的环境变量,非对应渠道的变量可删除,推荐使用`telegram`
`wechat`设置项:
- **WECHAT_CORPID** WeChat企业ID
- **WECHAT_APP_SECRET** WeChat应用Secret
- **WECHAT_APP_ID** WeChat应用ID
- **WECHAT_TOKEN** WeChat消息回调的Token
- **WECHAT_ENCODING_AESKEY** WeChat消息回调的EncodingAESKey
- **WECHAT_ADMINS** WeChat管理员列表多个管理员用英文逗号分隔可选
`telegram`设置项:
- **TELEGRAM_TOKEN** Telegram Bot Token
- **TELEGRAM_CHAT_ID** Telegram Chat ID
- **TELEGRAM_USERS** Telegram 用户ID多个使用,分隔只有用户ID在列表中才可以使用Bot如未设置则均可以使用Bot
- **TELEGRAM_ADMINS** Telegram 管理员ID多个使用,分隔只有管理员才可以操作Bot菜单如未设置则均可以操作菜单
`slack`设置项:
- **SLACK_OAUTH_TOKEN** Slack Bot User OAuth Token
- **SLACK_APP_TOKEN** Slack App-Level Token
- **SLACK_CHANNEL** Slack 频道名称,默认`全体`
- **DOWNLOADER** 下载器,支持`qbittorrent`/`transmission`QB版本号要求>= 4.2.9TR版本号要求>= 3.0,同时还需要配置对应渠道的环境变量,非对应渠道的变量可删除,推荐使用`qbittorrent`
`qbittorrent`设置项:
- **QB_HOST** qbittorrent地址格式`ip:port`https需要添加`https://`前缀
- **QB_USER** qbittorrent用户名
- **QB_PASSWORD** qbittorrent密码
`transmission`设置项:
- **TR_HOST** transmission地址格式`ip:port`https需要添加`https://`前缀
- **TR_USER** transmission用户名
- **TR_PASSWORD** transmission密码
- **MEDIASERVER** 媒体服务器,支持`emby`/`jellyfin`/`plex`,同时还需要配置对应媒体服务器的环境变量,非对应媒体服务器的变量可删除,推荐使用`emby`
`emby`设置项:
- **EMBY_HOST** Emby服务器地址格式`ip:port`https需要添加`https://`前缀
- **EMBY_API_KEY** Emby Api Key`设置->高级->API密钥`处生成
`jellyfin`设置项:
- **JELLYFIN_HOST** Jellyfin服务器地址格式`ip:port`https需要添加`https://`前缀
- **JELLYFIN_API_KEY** Jellyfin Api Key`设置->高级->API密钥`处生成
`plex`设置项:
- **PLEX_HOST** Plex服务器地址格式`ip:port`https需要添加`https://`前缀
- **PLEX_TOKEN** Plex网页Url中的`X-Plex-Token`通过浏览器F12->网络从请求URL中获取
### 2. **用户认证**
- **AUTH_SITE** 认证站点,支持`hhclub`/`audiences`/`hddolby`/`zmpt`/`freefarm`/`hdfans`/`wintersakura`/`leaves`/`1ptba`/`icc2022`/`iyuu`
`MoviePilot`为了控制用户数量同样需要认证PT用户后才能使用配置`AUTH_SITE`后,需要根据下表配置对应站点的认证参数。
| 站点 | 参数 |
|------|---------------------------------------|
| iyuu | `IYUU_SIGN`IYUU登录令牌 |
| hhclub | `HHCLUB_USERNAME`:用户名<br/>`passkey`:密钥 |
| audiences | `AUDIENCES_UID`用户ID<br/>`passkey`:密钥 |
| hddolby | `HDDOLBY_ID`:用户名<br/>`passkey`:密钥 |
| zmpt | `ZMPT_UID`用户ID<br/>`passkey`:密钥 |
| freefarm | `FREEFARM_UID`用户ID<br/>`passkey`:密钥 |
| hdfans | `HDFANS_UID`用户ID<br/>`passkey`:密钥 |
| wintersakura | `WINTERSAKURA_UID`用户ID<br/>`passkey`:密钥 |
| leaves | `LEAVES_UID`用户ID<br/>`passkey`:密钥 |
| 1ptba | `PTBA_UID`用户ID<br/>`passkey`:密钥 |
| icc2022 | `ICC2022_UID`用户ID<br/>`passkey`:密钥 |
### 3. **过滤规则**
- **FILTER_RULE** 配置过规则,默认`!BLU & 4K & CN > !BLU & 1080P & CN > !BLU & 4K > !BLU & 1080P` 表示优先中文字幕非蓝光4K然后中文字幕非蓝光1080P然后非蓝光4K最后非蓝光1080P
`FILTER_RULE` 规则说明:
- 仅支持使用内置规则进行排列组合,内置规则有:`BLU``4K``1080P``CN``H265``H264``DOLBY``HDR``REMUX``FREE`
- `&`表示与,``表示或,`!`表示非,`>`表示优先级层级
- 符合任一层级规则的资源将被标识选中,匹配成功的层级做为该资源的优先级,排越前面优先级超高
- 不符合过滤规则所有层级规则的资源将不会被选中
### 3. **进阶配置**
- **MOVIE_RENAME_FORMAT** 电影重命名格式
`MOVIE_RENAME_FORMAT`支持的配置项:
```python
{
# 标题
"title": mediainfo.title,
# 原文件名
"original_name": meta.org_string,
# 原语种标题
"original_title": mediainfo.original_title,
# 识别名称
"name": meta.name,
# 年份
"year": mediainfo.year,
# 版本
"edition": meta.edition,
# 分辨率
"videoFormat": meta.resource_pix,
# 制作组/字幕组
"releaseGroup": meta.resource_team,
# 特效
"effect": meta.resource_effect,
# 视频编码
"videoCodec": meta.video_encode,
# 音频编码
"audioCodec": meta.audio_encode,
# TMDBID
"tmdbid": mediainfo.tmdb_id,
# IMDBID
"imdbid": mediainfo.imdb_id,
# 段/节
"part": meta.part,
# 文件后缀
"fileExt": file_ext
}
```
`MOVIE_RENAME_FORMAT`默认配置格式:
```
{{title}}{% if year %} ({{year}}){% endif %}/{{title}}{% if year %} ({{year}}){% endif %}{% if part %}-{{part}}{% endif %}{% if videoFormat %} - {{videoFormat}}{% endif %}{{fileExt}}
```
- **TV_RENAME_FORMAT** 电视剧重命名格式
`TV_RENAME_FORMAT`额外支持的配置项:
```python
{
# 季号
"season": meta.season_seq,
# 集号
"episode": meta.episode_seqs,
# 季集 SxxExx
"season_episode": "%s%s" % (meta.season, meta.episodes)
}
```
`TV_RENAME_FORMAT`默认配置格式:
```
{{title}}{% if year %} ({{year}}){% endif %}/Season {{season}}/{{title}} - {{season_episode}}{% if part %}-{{part}}{% endif %}{% if episode %} - 第 {{episode}} 集{% endif %}{{fileExt}}
```
## 使用
- 通过CookieCloud同步快速同步站点。
- 通过下载器监控实现资源下载后自动整理入库刮削。
- 通过微信/Telegram/Slack远程搜索下载、订阅和管理设置其中Telegram将会自动添加操作菜单。
- 通过WEB进行管理将WEB添加到手机桌面获得类App使用效果管理界面地址http://ip:3000
## TODO
- [ ] 插件管理,支持自定义插件功能界面
- [ ] 更易用的自定义识别词
- [ ] 手动整理功能增强
- [ ] 消息中心、工具中心
- [ ] 本地存在标识
- [ ] 搜索结果过滤
- [ ] 媒体详情页面
- [ ] 洗版支持
前端项目:[MoviePilot-Frontend](https://github.com/jxxghp/MoviePilot-Frontend)

View File

@ -93,13 +93,13 @@ class Settings(BaseSettings):
SLACK_CHANNEL: str = ""
# 下载器 qbittorrent/transmission
DOWNLOADER: str = "qbittorrent"
# Qbittorrent地址
# Qbittorrent地址IP:PORT
QB_HOST: str = None
# Qbittorrent用户名
QB_USER: str = None
# Qbittorrent密码
QB_PASSWORD: str = None
# Transmission地址
# Transmission地址IP:PORT
TR_HOST: str = None
# Transmission用户名
TR_USER: str = None
@ -111,15 +111,15 @@ class Settings(BaseSettings):
DOWNLOAD_PATH: str = "/downloads"
# 媒体服务器 emby/jellyfin/plex
MEDIASERVER: str = "emby"
# EMBY服务器地址
# EMBY服务器地址IP:PORT
EMBY_HOST: str = None
# EMBY Api Key
EMBY_API_KEY: str = None
# Jellyfin服务器地址
# Jellyfin服务器地址IP:PORT
JELLYFIN_HOST: str = None
# Jellyfin Api Key
JELLYFIN_API_KEY: str = None
# Plex服务器地址
# Plex服务器地址IP:PORT
PLEX_HOST: str = None
# Plex Token
PLEX_TOKEN: str = None