在 CloudMediaSync 基础上增强了页面和消息渠道的一些功能,并增加了一些开放接口,便于其他程序调用。
进入CloudMediaSync部署目录,全选复制以下命令并执行,自动识别系统架构并下载对应文件(macOS 的 arm64 将自动映射为 aarch64):
arch=$(uname -m)
case "$arch" in
x86_64|amd64)
pkg_arch="x86_64"
;;
arm64|aarch64)
pkg_arch="aarch64"
;;
*)
echo "不支持的架构: $arch" >&2
exit 1
;;
esac
URL="https://cnb.cool/ilay1678/cloud-media-sync-enhanced/-/git/raw/master/dist/usercustomize.cpython-312-${pkg_arch}-linux-gnu.so"
echo "Downloading $URL ..."
if command -v wget >/dev/null 2>&1; then
wget -O usercustomize.so "$URL"
else
curl -L "$URL" -o usercustomize.so
fi
echo "Saved to ./usercustomize.so"
挂载增强文件并增加环境变量:
services:
cloud-media-sync:
privileged: true
container_name: cloud-media-sync
image: imaliang/cloud-media-sync:latest # 使用原版镜像
restart: always
network_mode: bridge
volumes:
- "./config:/config"
- "./logs:/logs"
- "./cache:/var/cache/nginx/emby"
- "/data/media:/media"
# 挂载增强文件
- "./usercustomize.so:/cms/cms-api/usercustomize.so"
ports:
- "9527:9527"
- "9096:9096"
environment:
- PUID=0
- PGID=0
- UMASK=022
- TZ=Asia/Shanghai
- RUN_ENV=online
- ADMIN_USERNAME=admin
- ADMIN_PASSWORD=admin
- CMS_API_TOKEN=cloud_media_sync
- EMBY_HOST_PORT=http://172.17.0.1:8096
- EMBY_API_KEY=xxx
- DONATE_CODE=CMS_XXX_XXX
# Panso配置(资源搜索所需)
- PANSO_URL=http://your_panso_server_url
- PANSO_USERNAME=your_username # 可选,不配置表示无需认证
- PANSO_PASSWORD=your_password # 可选,不配置表示无需认证
docker-compose up -d
PANSO_URLPANSO_USERNAME 和 PANSO_PASSWORD在订阅弹窗中可直接通过 Panso 搜索 115、阿里云盘、磁力和 ed2k 资源,并支持复制链接或直接转存。
为 CloudMediaSynC 的 Telegram 机器人和企业微信渠道提供增强功能,基于 Panso 实现媒体资源搜索和转存。
? 或 ? 开头发送消息? 三体、? 复仇者联盟Panso 提供网盘链接聚合服务:
本系统提供了代理接口访问远程 Panso 服务。
PANSO_URL 后,系统会自动连接到远程Panso服务PANSO_USERNAME 和 PANSO_PASSWORD,系统会自动向远程Panso服务认证通过本地API代理访问远程Panso服务的搜索功能。
请求参数:
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| kw | string | 是 | 搜索关键词 |
| channels | string[] | 否 | 搜索的频道列表,不提供则使用默认配置 |
| conc | number | 否 | 并发搜索数量,不提供则自动设置 |
| refresh | boolean | 否 | 强制刷新,不使用缓存 |
| res | string | 否 | 结果类型:all/results/merge,默认merge |
| src | string | 否 | 数据来源:all/tg/plugin,默认all |
| plugins | string[] | 否 | 指定搜索的插件列表 |
| cloud_types | string[] | 否 | 指定返回的网盘类型列表 |
| ext | object | 否 | 扩展参数,传递给插件的自定义参数 |
请求示例:
{
"kw": "三体",
"res": "merge",
"cloud_types": ["baidu", "aliyun", "quark"]
}
响应字段:
| 字段名 | 类型 | 描述 |
|---|---|---|
| total | number | 搜索结果总数 |
| results | object[] | 搜索结果数组,包含详细信息 |
| merged_by_type | object | 按网盘类型分组的链接 |
响应示例:
{
"total": 10,
"merged_by_type": {
"baidu": [
{
"url": "https://pan.baidu.com/s/xxxxx",
"password": "1234",
"note": "三体全集 4K",
"datetime": "2024-01-01T00:00:00Z",
"source": "tg:某频道",
"images": ["https://example.com/image.jpg"]
}
],
"aliyun": [
{
"url": "https://www.aliyundrive.com/s/xxxxx",
"password": "",
"note": "三体 蓝光原盘",
"datetime": "2024-01-02T00:00:00Z",
"source": "plugin:某插件"
}
]
}
}
也支持GET方式搜索,参数通过query string传递:
GET /api/panso/search?kw=三体&res=merge&cloud_types=baidu,aliyun