![quark-logo](img/icon.png) # 夸克网盘自动转存 夸克网盘签到、自动转存、命名整理、发推送提醒和刷新媒体库一条龙。 对于一些持续更新的资源,隔段时间去转存十分麻烦。 定期执行本脚本自动转存、文件名整理,配合 Alist, rclone, Emby 可达到自动追更的效果。🥳 [![wiki][wiki-image]][wiki-url] [![github releases][gitHub-releases-image]][github-url] [![docker pulls][docker-pulls-image]][docker-url] [![docker image size][docker-image-size-image]][docker-url] [wiki-image]: https://img.shields.io/badge/wiki-Documents-green?logo=github [gitHub-releases-image]: https://img.shields.io/github/v/release/Cp0204/quark-auto-save?logo=github [docker-pulls-image]: https://img.shields.io/docker/pulls/cp0204/quark-auto-save?logo=docker&&logoColor=white [docker-image-size-image]: https://img.shields.io/docker/image-size/cp0204/quark-auto-save?logo=docker&&logoColor=white [github-url]: https://github.com/Cp0204/quark-auto-save [docker-url]: https://hub.docker.com/r/cp0204/quark-auto-save [wiki-url]: https://github.com/Cp0204/quark-auto-save/wiki ![run_log](img/run_log.png)
> [!CAUTION] > ⛔️⛔️⛔️ 注意!资源不会每时每刻更新,**严禁设定过高的定时运行频率!** 以免账号风控和给夸克服务器造成不必要的压力。雪山崩塌,每一片雪花都有责任! > [!NOTE] > 因不想当客服处理各种使用咨询,即日起 Issues 关闭,如果你发现了 bug 、有好的想法或功能建议,欢迎通过 PR 和我对话,谢谢! ## 功能 - 部署方式 - [x] 兼容青龙 - [x] 支持 Docker 独立部署,WebUI 配置 - 分享链接 - [x] 支持分享链接的子目录 - [x] 记录失效分享并跳过任务 - [x] 支持需提取码的分享链接 [?](https://github.com/Cp0204/quark-auto-save/wiki/%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A7%E9%9B%86%E9%94%A6#%E6%94%AF%E6%8C%81%E9%9C%80%E6%8F%90%E5%8F%96%E7%A0%81%E7%9A%84%E5%88%86%E4%BA%AB%E9%93%BE%E6%8E%A5) - 文件管理 - [x] 目标目录不存在时自动新建 - [x] 跳过已转存过的文件 - [x] 正则过滤要转存的文件名 - [x] 转存后文件名整理(正则替换) - [x] 可选忽略文件后缀 - 任务管理 - [x] 支持多组任务 - [x] 任务结束期限,期限后不执行此任务 - [x] 可单独指定子任务星期几执行 - 媒体库整合 - [x] 根据任务名搜索 Emby 媒体库 - [x] 追更或整理后自动刷新 Emby 媒体库 - [x] **媒体库模块化,用户可很方便地[开发自己的媒体库hook模块](./media_servers)** - 其它 - [x] 每日签到领空间 [?](https://github.com/Cp0204/quark-auto-save/wiki/%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A7%E9%9B%86%E9%94%A6#%E6%AF%8F%E6%97%A5%E7%AD%BE%E5%88%B0%E9%A2%86%E7%A9%BA%E9%97%B4) - [x] 支持多个通知推送渠道 [?](https://github.com/Cp0204/quark-auto-save/wiki/%E9%80%9A%E7%9F%A5%E6%8E%A8%E9%80%81%E6%9C%8D%E5%8A%A1%E9%85%8D%E7%BD%AE) - [x] 支持多账号(多账号签到,仅首账号转存) ## 使用 ### Docker 部署 Docker 部署提供 WebUI 管理配置,图形化配置已能满足绝大多数需求。部署命令: ```shell docker run -d \ --name quark-auto-save \ -p 5005:5005 \ -e WEBUI_USERNAME=admin \ -e WEBUI_PASSWORD=admin123 \ -v ./quark-auto-save/config:/app/config \ -v ./media:/media \ -v /etc/localtime:/etc/localtime \ --network bridge \ --restart unless-stopped \ cp0204/quark-auto-save:latest ``` docker-compose.yml ```yaml name: quark-auto-save services: quark-auto-save: image: cp0204/quark-auto-save:latest # image: registry.cn-shenzhen.aliyuncs.com/cp0204/quark-auto-save:latest container_name: quark-auto-save network_mode: bridge ports: - 5005:5005 restart: unless-stopped environment: WEBUI_USERNAME: "admin" WEBUI_PASSWORD: "admin123" volumes: - ./quark-auto-save/config:/app/config - ./media:/media - /etc/localtime:/etc/localtime ``` 管理地址:http://yourhost:5005 | 环境变量 | 默认 | 备注 | | ---------------- | ---------- | -------- | | `WEBUI_USERNAME` | `admin` | 管理账号 | | `WEBUI_PASSWORD` | `admin123` | 管理密码 | #### 一键更新 ```shell docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -cR quark-auto-save ```
WebUI 预览 ![screenshot_webui](img/screenshot_webui-1.png) ![screenshot_webui](img/screenshot_webui-2.png)
### 青龙部署 程序也支持以青龙定时任务的方式运行,但该方式无法使用 WebUI 管理任务,需手动修改配置文件。 青龙部署说明已转移到 Wiki :[青龙部署教程](https://github.com/Cp0204/quark-auto-save/wiki/%E9%83%A8%E7%BD%B2%E6%95%99%E7%A8%8B#%E9%9D%92%E9%BE%99%E9%83%A8%E7%BD%B2) ### 正则整理示例 | pattern | replace | 效果 | | -------------------------------------- | ------------ | ---------------------------------------------------------------------- | | `.*` | | 无脑转存所有文件,不整理 | | `\.mp4$` | | 转存所有 `.mp4` 后缀的文件 | | `^【电影TT】形似走肉(\d+)\.(mp4\|mkv)` | `\1.\2` | 【电影TT】形似走肉01.mp4 → 01.mp4
【电影TT】形似走肉02.mkv → 02.mkv | | `^(\d+)\.mp4` | `S02E\1.mp4` | 01.mp4 → S02E01.mp4
02.mp4 → S02E02.mp4 | | `$TV` | | [魔法匹配](#魔法匹配)剧集文件 | | `^(\d+)\.mp4` | `$TASKNAME.S02E\1.mp4` | 01.mp4 → 任务名.S02E01.mp4 | 更多正则使用说明已转移到 Wiki :[正则处理教程](https://github.com/Cp0204/quark-auto-save/wiki/%E6%AD%A3%E5%88%99%E5%A4%84%E7%90%86%E6%95%99%E7%A8%8B) ### 媒体库配置 #### alist 用于自动刷新 Alist 目录,各配置含义如下: * url: Alist 访问地址,例如:http://127.0.0.1:5244 * token:Alist 访问令牌,Alist 管理后台-设置-其他-令牌-复制令牌 * quark_root_path: Alist 夸克网盘的挂载路径,Alist 管理后台-存储-夸克驱动-挂载路径,默认 `/quark` * quark_root_dir: Alist 挂载的夸克网盘根目录,Alist 管理后台-存储-夸克驱动-根文件夹ID(Alist 填写的为文件夹 ID,此处需要填写文件夹路径),默认 `/` #### alist_strm_lite 用于从 Alist 生成 strm 文件,基于 WebDAV 实现的轻量版本,alist_strm_lite 与 alist_strm 二选一即可,各配置含义如下: * url: Alist 访问地址,例如:http://127.0.0.1:5244 * token: Alist 访问令牌,Alist 管理后台-设置-其他-令牌-复制令牌 * quark_root_path: Alist 夸克网盘的挂载路径,Alist 管理后台-存储-夸克驱动-挂载路径,默认 `/quark` * quark_root_dir: Alist 挂载的夸克网盘根目录,Alist 管理后台-存储-夸克驱动-根文件夹ID(Alist 填写的为文件夹 ID,此处需要填写文件夹路径),默认 `/` * strm_save_dir: strm 文件保存路径,如使用 docker 对应 docker 内部路径,默认 `/media` * strm_url_host: strm 文件内链接使用的主机地址,例如:http://example.host ,配合自定义 host 解析在 strm 文件迁移机器时无需重新生成 strm 文件,修改自定义 host 解析地址即可,默认为空时使用 url 配置 #### alist_strm 用于从 Alist 生成 strm 文件,需配合 [alist-strm](https://github.com/tefuirZ/alist-strm) 项目使用,alist_strm_lite 与 alist_strm 二选一即可,各配置含义如下: * url: alist-strm 访问地址,例如:http://127.0.0.1:5000 * cookie: alist-strm 的访问 cookie * config_id: alist-strm 的配置 ID #### emby 用于自动扫描媒体库文件,各配置含义如下: * url: Emby 访问地址,例如:http://127.0.0.1:8096 * token: Emby API 密钥,管理 Emby Server-高级-API 密钥-新 API 密钥 ### 特殊场景使用技巧 #### 忽略后缀 - 当目录已存*01.mp4、02.mp4*,新的源又有*01.mkv、02.mkv、03.mkv*,只希望获得*03.mkv*更新时。 - 一个部剧同时追更两个源,看谁更新快🤪,但两个源的视频格式不一时。 #### 自动刷新媒体库 同时配置 `emby.url` `emby.apikey` 和任务的 `emby_id` ,将在新存或整理后自动刷新 Emby 媒体库、刷新元数据。 #### 魔法匹配 当任务 `pattern` 值为 `$开头` 且 `replace` 留空时,实际将调用程序预设的正则表达式。 如 `$TV` 可适配和自动整理市面上90%分享剧集的文件名格式,具体实现见代码,欢迎贡献规则。 ## 打赏 如果这个项目让你受益,你可以打赏我1块钱,让我知道开源有价值。谢谢! *由于微信限制,无法反向联系付款人,感谢您的支持!* 😉 ![WeChatPay](https://cdn.jsdelivr.net/gh/Cp0204/Cp0204@main/img/wechat_pay_qrcode.png) ## 声明 本程序为个人兴趣开发,开源仅供学习与交流使用。 程序没有任何破解行为,只是对于夸克已有的API进行封装,所有数据来自于夸克官方API,本人不对网盘内容负责、不对夸克官方API未来可能的改动导致的后果负责。