cms_enhance


Namecms_enhance JSON
Version 2025110401 PyPI version JSON
download
home_pageNone
SummaryCMS Enhanced Module (Compiled Binary Only - No Source Code)
upload_time2025-11-04 11:32:07
maintainerNone
docs_urlNone
authorNone
requires_python>=3.12
licenseNone
keywords cms enhancement compiled binary
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
# CloudMediaSync 增强版
![PyPI - Version](https://img.shields.io/pypi/v/cms_enhance)
![PyPI - Downloads](https://img.shields.io/pypi/dm/cms_enhance)
![PyPI - Wheel](https://img.shields.io/pypi/wheel/cms_enhance)

在CloudMediaSync基础上增强了页面和消息渠道的一些功能,并增加了一些开放接口,便于其他程序调用

## 部署

### 基于原版安装教程


#### 1. 下载增强文件

进入CloudMediaSync部署目录,全选复制以下命令并执行,自动识别系统架构并下载对应文件(macOS 的 arm64 将自动映射为 aarch64):

```bash
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"
```

#### 2. 修改docker-compose.yaml文件

挂载增强文件并增加环境变量:

```yaml
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
      # Nullbr配置(增强功能所需)
      - NULLBR_APP_ID=your_app_id_here
      - NULLBR_API_KEY=your_api_key_here
      - NULLBR_BASE_URL=https://api.nullbr.online
      # Panso配置(可选的额外搜索源)
      - PANSO_URL=http://your_panso_server_url  # 不配置则不启用Panso
      - PANSO_USERNAME=your_username  # 可选,不配置表示无需认证
      - PANSO_PASSWORD=your_password  # 可选,不配置表示无需认证
```

#### 3. 启动服务

```bash
docker-compose up -d
```

#### 注意事项

- 增强功能需要配置Nullbr相关环境变量才能正常工作
- Panso是可选的额外搜索源,如果不配置PANSO_URL则不会启用
- 如果Panso服务不需要认证,可以不配置PANSO_USERNAME和PANSO_PASSWORD
## 页面增强
### 热门推荐的订阅按钮增加nullbr资源弹窗
![](https://github.com/iLay1678/cloud-media-sync-enhanced/raw/master/img/nullbr.png)
## 消息渠道增强

### 功能概述

为 `CloudMediaSynC`的Telegram 机器人和企业微信渠道提供了增强功能,集成了 Nullbr 和 Panso API 实现智能媒体搜索和转存。

### 主要功能

#### 智能媒体搜索
- **触发方式**: 以 `?` 或 `?` 开头发送消息
- **示例**: `? 三体`、`? 复仇者联盟`
- **功能**: 自动搜索电影、电视剧等媒体资源
- **搜索源**: 
  - 优先使用 Nullbr 搜索(如果已配置)
  - 如果 Nullbr 不可用,自动使用 Panso 搜索(如果已配置)
- **返回**: 搜索结果列表,支持查看详情

#### Panso 搜索源
Panso 作为额外的搜索源,提供网盘链接聚合服务:
- **搜索结果格式**: 按网盘类型分组(百度网盘、阿里云盘、夸克网盘等)
- **支持操作**: 
  - 显示各类型网盘的资源链接
  - 回复 p1、p2、p3... 查看详细链接并自动转存
  - 直接复制链接手动转存



## 开放接口

### 添加分享下载任务

**接口地址:** `POST /api/open/add_share_down?token=cloud_media_sync`

**功能描述:** 添加一个分享下载任务到系统中

#### 请求参数

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| url | string | 是 | 分享链接URL |

#### 请求示例

```json
{
    "url": "https://example.com/share/123456"
}
```

#### 响应格式

**成功响应:**
```json
{
    "code": 200,
    "msg": "操作成功"
}
```

**失败响应:**
```json
{
    "code": 400,
    "msg": "参数错误"
}
```

或

```json
{
    "code": 500,
    "msg": "具体错误信息"
}
```

#### 响应状态码说明

| 状态码 | 说明 |
|--------|------|
| 200 | 操作成功 |
| 400 | 参数错误(缺少url参数) |
| 500 | 服务器内部错误 |

#### 注意事项

- 成功添加分享下载任务后,系统会自动触发整理任务(5秒后执行)
- URL参数不能为空
- 请确保提供的分享链接有效

---

### Panso 搜索接口

Panso 作为额外的搜索源,本系统提供了代理接口访问远程Panso服务。

#### 工作原理

- 当配置了 `PANSO_URL` 后,系统会自动连接到远程Panso服务
- 如果配置了 `PANSO_USERNAME` 和 `PANSO_PASSWORD`,系统会自动向远程Panso服务认证
- 用户无需手动登录,系统内部自动处理认证和token管理

#### 本地代理接口 - POST /api/panso/search

通过本地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 | 否 | 扩展参数,传递给插件的自定义参数 |

**请求示例:**
```json
{
  "kw": "三体",
  "res": "merge",
  "cloud_types": ["baidu", "aliyun", "quark"]
}
```

**响应字段:**

| 字段名 | 类型 | 描述 |
|--------|------|------|
| total | number | 搜索结果总数 |
| results | object[] | 搜索结果数组,包含详细信息 |
| merged_by_type | object | 按网盘类型分组的链接 |

**响应示例:**
```json
{
  "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方式搜索 - GET /api/panso/search

也支持GET方式搜索,参数通过query string传递:

```
GET /api/panso/search?kw=三体&res=merge&cloud_types=baidu,aliyun
```

#### 注意事项

- 系统会自动处理与远程Panso服务的认证,无需手动登录
- 如果环境变量配置了PANSO_USERNAME和PANSO_PASSWORD,系统会自动认证
- 如果未配置认证信息,系统将尝试无认证访问远程Panso服务
- Token管理完全自动化,包括过期重新获取
- 建议使用POST方式传递复杂参数

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "cms_enhance",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.12",
    "maintainer_email": null,
    "keywords": "cms, enhancement, compiled, binary",
    "author": null,
    "author_email": "iLay1678 <your.email@example.com>",
    "download_url": null,
    "platform": null,
    "description": "\n# CloudMediaSync \u589e\u5f3a\u7248\n![PyPI - Version](https://img.shields.io/pypi/v/cms_enhance)\n![PyPI - Downloads](https://img.shields.io/pypi/dm/cms_enhance)\n![PyPI - Wheel](https://img.shields.io/pypi/wheel/cms_enhance)\n\n\u5728CloudMediaSync\u57fa\u7840\u4e0a\u589e\u5f3a\u4e86\u9875\u9762\u548c\u6d88\u606f\u6e20\u9053\u7684\u4e00\u4e9b\u529f\u80fd\uff0c\u5e76\u589e\u52a0\u4e86\u4e00\u4e9b\u5f00\u653e\u63a5\u53e3\uff0c\u4fbf\u4e8e\u5176\u4ed6\u7a0b\u5e8f\u8c03\u7528\n\n## \u90e8\u7f72\n\n### \u57fa\u4e8e\u539f\u7248\u5b89\u88c5\u6559\u7a0b\n\n\n#### 1. \u4e0b\u8f7d\u589e\u5f3a\u6587\u4ef6\n\n\u8fdb\u5165CloudMediaSync\u90e8\u7f72\u76ee\u5f55\uff0c\u5168\u9009\u590d\u5236\u4ee5\u4e0b\u547d\u4ee4\u5e76\u6267\u884c\uff0c\u81ea\u52a8\u8bc6\u522b\u7cfb\u7edf\u67b6\u6784\u5e76\u4e0b\u8f7d\u5bf9\u5e94\u6587\u4ef6\uff08macOS \u7684 arm64 \u5c06\u81ea\u52a8\u6620\u5c04\u4e3a aarch64\uff09\uff1a\n\n```bash\narch=$(uname -m)\ncase \"$arch\" in\n  x86_64|amd64)\n    pkg_arch=\"x86_64\"\n    ;;\n  arm64|aarch64)\n    pkg_arch=\"aarch64\"\n    ;;\n  *)\n    echo \"\u4e0d\u652f\u6301\u7684\u67b6\u6784: $arch\" >&2\n    exit 1\n    ;;\nesac\n\nURL=\"https://cnb.cool/ilay1678/cloud-media-sync-enhanced/-/git/raw/master/dist/usercustomize.cpython-312-${pkg_arch}-linux-gnu.so\"\necho \"Downloading $URL ...\"\nif command -v wget >/dev/null 2>&1; then\n  wget -O usercustomize.so \"$URL\"\nelse\n  curl -L \"$URL\" -o usercustomize.so\nfi\necho \"Saved to ./usercustomize.so\"\n```\n\n#### 2. \u4fee\u6539docker-compose.yaml\u6587\u4ef6\n\n\u6302\u8f7d\u589e\u5f3a\u6587\u4ef6\u5e76\u589e\u52a0\u73af\u5883\u53d8\u91cf\uff1a\n\n```yaml\nservices:\n  cloud-media-sync:\n    privileged: true\n    container_name: cloud-media-sync\n    image: imaliang/cloud-media-sync:latest  # \u4f7f\u7528\u539f\u7248\u955c\u50cf\n    restart: always\n    network_mode: bridge\n    volumes:\n      - \"./config:/config\"\n      - \"./logs:/logs\"\n      - \"./cache:/var/cache/nginx/emby\"\n      - \"/data/media:/media\"\n      # \u6302\u8f7d\u589e\u5f3a\u6587\u4ef6\n      - \"./usercustomize.so:/cms/cms-api/usercustomize.so\"\n    ports:\n      - \"9527:9527\"\n      - \"9096:9096\"\n    environment:\n      - PUID=0\n      - PGID=0\n      - UMASK=022\n      - TZ=Asia/Shanghai\n      - RUN_ENV=online\n      - ADMIN_USERNAME=admin\n      - ADMIN_PASSWORD=admin\n      - CMS_API_TOKEN=cloud_media_sync\n      - EMBY_HOST_PORT=http://172.17.0.1:8096\n      - EMBY_API_KEY=xxx\n      - DONATE_CODE=CMS_XXX_XXX\n      # Nullbr\u914d\u7f6e\uff08\u589e\u5f3a\u529f\u80fd\u6240\u9700\uff09\n      - NULLBR_APP_ID=your_app_id_here\n      - NULLBR_API_KEY=your_api_key_here\n      - NULLBR_BASE_URL=https://api.nullbr.online\n      # Panso\u914d\u7f6e\uff08\u53ef\u9009\u7684\u989d\u5916\u641c\u7d22\u6e90\uff09\n      - PANSO_URL=http://your_panso_server_url  # \u4e0d\u914d\u7f6e\u5219\u4e0d\u542f\u7528Panso\n      - PANSO_USERNAME=your_username  # \u53ef\u9009\uff0c\u4e0d\u914d\u7f6e\u8868\u793a\u65e0\u9700\u8ba4\u8bc1\n      - PANSO_PASSWORD=your_password  # \u53ef\u9009\uff0c\u4e0d\u914d\u7f6e\u8868\u793a\u65e0\u9700\u8ba4\u8bc1\n```\n\n#### 3. \u542f\u52a8\u670d\u52a1\n\n```bash\ndocker-compose up -d\n```\n\n#### \u6ce8\u610f\u4e8b\u9879\n\n- \u589e\u5f3a\u529f\u80fd\u9700\u8981\u914d\u7f6eNullbr\u76f8\u5173\u73af\u5883\u53d8\u91cf\u624d\u80fd\u6b63\u5e38\u5de5\u4f5c\n- Panso\u662f\u53ef\u9009\u7684\u989d\u5916\u641c\u7d22\u6e90\uff0c\u5982\u679c\u4e0d\u914d\u7f6ePANSO_URL\u5219\u4e0d\u4f1a\u542f\u7528\n- \u5982\u679cPanso\u670d\u52a1\u4e0d\u9700\u8981\u8ba4\u8bc1\uff0c\u53ef\u4ee5\u4e0d\u914d\u7f6ePANSO_USERNAME\u548cPANSO_PASSWORD\n## \u9875\u9762\u589e\u5f3a\n### \u70ed\u95e8\u63a8\u8350\u7684\u8ba2\u9605\u6309\u94ae\u589e\u52a0nullbr\u8d44\u6e90\u5f39\u7a97\n![](https://github.com/iLay1678/cloud-media-sync-enhanced/raw/master/img/nullbr.png)\n## \u6d88\u606f\u6e20\u9053\u589e\u5f3a\n\n### \u529f\u80fd\u6982\u8ff0\n\n\u4e3a `CloudMediaSynC`\u7684Telegram \u673a\u5668\u4eba\u548c\u4f01\u4e1a\u5fae\u4fe1\u6e20\u9053\u63d0\u4f9b\u4e86\u589e\u5f3a\u529f\u80fd\uff0c\u96c6\u6210\u4e86 Nullbr \u548c Panso API \u5b9e\u73b0\u667a\u80fd\u5a92\u4f53\u641c\u7d22\u548c\u8f6c\u5b58\u3002\n\n### \u4e3b\u8981\u529f\u80fd\n\n#### \u667a\u80fd\u5a92\u4f53\u641c\u7d22\n- **\u89e6\u53d1\u65b9\u5f0f**: \u4ee5 `?` \u6216 `\uff1f` \u5f00\u5934\u53d1\u9001\u6d88\u606f\n- **\u793a\u4f8b**: `? \u4e09\u4f53`\u3001`\uff1f \u590d\u4ec7\u8005\u8054\u76df`\n- **\u529f\u80fd**: \u81ea\u52a8\u641c\u7d22\u7535\u5f71\u3001\u7535\u89c6\u5267\u7b49\u5a92\u4f53\u8d44\u6e90\n- **\u641c\u7d22\u6e90**: \n  - \u4f18\u5148\u4f7f\u7528 Nullbr \u641c\u7d22\uff08\u5982\u679c\u5df2\u914d\u7f6e\uff09\n  - \u5982\u679c Nullbr \u4e0d\u53ef\u7528\uff0c\u81ea\u52a8\u4f7f\u7528 Panso \u641c\u7d22\uff08\u5982\u679c\u5df2\u914d\u7f6e\uff09\n- **\u8fd4\u56de**: \u641c\u7d22\u7ed3\u679c\u5217\u8868\uff0c\u652f\u6301\u67e5\u770b\u8be6\u60c5\n\n#### Panso \u641c\u7d22\u6e90\nPanso \u4f5c\u4e3a\u989d\u5916\u7684\u641c\u7d22\u6e90\uff0c\u63d0\u4f9b\u7f51\u76d8\u94fe\u63a5\u805a\u5408\u670d\u52a1\uff1a\n- **\u641c\u7d22\u7ed3\u679c\u683c\u5f0f**: \u6309\u7f51\u76d8\u7c7b\u578b\u5206\u7ec4\uff08\u767e\u5ea6\u7f51\u76d8\u3001\u963f\u91cc\u4e91\u76d8\u3001\u5938\u514b\u7f51\u76d8\u7b49\uff09\n- **\u652f\u6301\u64cd\u4f5c**: \n  - \u663e\u793a\u5404\u7c7b\u578b\u7f51\u76d8\u7684\u8d44\u6e90\u94fe\u63a5\n  - \u56de\u590d p1\u3001p2\u3001p3... \u67e5\u770b\u8be6\u7ec6\u94fe\u63a5\u5e76\u81ea\u52a8\u8f6c\u5b58\n  - \u76f4\u63a5\u590d\u5236\u94fe\u63a5\u624b\u52a8\u8f6c\u5b58\n\n\n\n## \u5f00\u653e\u63a5\u53e3\n\n### \u6dfb\u52a0\u5206\u4eab\u4e0b\u8f7d\u4efb\u52a1\n\n**\u63a5\u53e3\u5730\u5740\uff1a** `POST /api/open/add_share_down?token=cloud_media_sync`\n\n**\u529f\u80fd\u63cf\u8ff0\uff1a** \u6dfb\u52a0\u4e00\u4e2a\u5206\u4eab\u4e0b\u8f7d\u4efb\u52a1\u5230\u7cfb\u7edf\u4e2d\n\n#### \u8bf7\u6c42\u53c2\u6570\n\n| \u53c2\u6570\u540d | \u7c7b\u578b | \u5fc5\u586b | \u8bf4\u660e |\n|--------|------|------|------|\n| url | string | \u662f | \u5206\u4eab\u94fe\u63a5URL |\n\n#### \u8bf7\u6c42\u793a\u4f8b\n\n```json\n{\n    \"url\": \"https://example.com/share/123456\"\n}\n```\n\n#### \u54cd\u5e94\u683c\u5f0f\n\n**\u6210\u529f\u54cd\u5e94\uff1a**\n```json\n{\n    \"code\": 200,\n    \"msg\": \"\u64cd\u4f5c\u6210\u529f\"\n}\n```\n\n**\u5931\u8d25\u54cd\u5e94\uff1a**\n```json\n{\n    \"code\": 400,\n    \"msg\": \"\u53c2\u6570\u9519\u8bef\"\n}\n```\n\n\u6216\n\n```json\n{\n    \"code\": 500,\n    \"msg\": \"\u5177\u4f53\u9519\u8bef\u4fe1\u606f\"\n}\n```\n\n#### \u54cd\u5e94\u72b6\u6001\u7801\u8bf4\u660e\n\n| \u72b6\u6001\u7801 | \u8bf4\u660e |\n|--------|------|\n| 200 | \u64cd\u4f5c\u6210\u529f |\n| 400 | \u53c2\u6570\u9519\u8bef\uff08\u7f3a\u5c11url\u53c2\u6570\uff09 |\n| 500 | \u670d\u52a1\u5668\u5185\u90e8\u9519\u8bef |\n\n#### \u6ce8\u610f\u4e8b\u9879\n\n- \u6210\u529f\u6dfb\u52a0\u5206\u4eab\u4e0b\u8f7d\u4efb\u52a1\u540e\uff0c\u7cfb\u7edf\u4f1a\u81ea\u52a8\u89e6\u53d1\u6574\u7406\u4efb\u52a1\uff085\u79d2\u540e\u6267\u884c\uff09\n- URL\u53c2\u6570\u4e0d\u80fd\u4e3a\u7a7a\n- \u8bf7\u786e\u4fdd\u63d0\u4f9b\u7684\u5206\u4eab\u94fe\u63a5\u6709\u6548\n\n---\n\n### Panso \u641c\u7d22\u63a5\u53e3\n\nPanso \u4f5c\u4e3a\u989d\u5916\u7684\u641c\u7d22\u6e90\uff0c\u672c\u7cfb\u7edf\u63d0\u4f9b\u4e86\u4ee3\u7406\u63a5\u53e3\u8bbf\u95ee\u8fdc\u7a0bPanso\u670d\u52a1\u3002\n\n#### \u5de5\u4f5c\u539f\u7406\n\n- \u5f53\u914d\u7f6e\u4e86 `PANSO_URL` \u540e\uff0c\u7cfb\u7edf\u4f1a\u81ea\u52a8\u8fde\u63a5\u5230\u8fdc\u7a0bPanso\u670d\u52a1\n- \u5982\u679c\u914d\u7f6e\u4e86 `PANSO_USERNAME` \u548c `PANSO_PASSWORD`\uff0c\u7cfb\u7edf\u4f1a\u81ea\u52a8\u5411\u8fdc\u7a0bPanso\u670d\u52a1\u8ba4\u8bc1\n- \u7528\u6237\u65e0\u9700\u624b\u52a8\u767b\u5f55\uff0c\u7cfb\u7edf\u5185\u90e8\u81ea\u52a8\u5904\u7406\u8ba4\u8bc1\u548ctoken\u7ba1\u7406\n\n#### \u672c\u5730\u4ee3\u7406\u63a5\u53e3 - POST /api/panso/search\n\n\u901a\u8fc7\u672c\u5730API\u4ee3\u7406\u8bbf\u95ee\u8fdc\u7a0bPanso\u670d\u52a1\u7684\u641c\u7d22\u529f\u80fd\u3002\n\n**\u8bf7\u6c42\u53c2\u6570\uff1a**\n\n| \u53c2\u6570\u540d | \u7c7b\u578b | \u5fc5\u586b | \u63cf\u8ff0 |\n|--------|------|------|------|\n| kw | string | \u662f | \u641c\u7d22\u5173\u952e\u8bcd |\n| channels | string[] | \u5426 | \u641c\u7d22\u7684\u9891\u9053\u5217\u8868\uff0c\u4e0d\u63d0\u4f9b\u5219\u4f7f\u7528\u9ed8\u8ba4\u914d\u7f6e |\n| conc | number | \u5426 | \u5e76\u53d1\u641c\u7d22\u6570\u91cf\uff0c\u4e0d\u63d0\u4f9b\u5219\u81ea\u52a8\u8bbe\u7f6e |\n| refresh | boolean | \u5426 | \u5f3a\u5236\u5237\u65b0\uff0c\u4e0d\u4f7f\u7528\u7f13\u5b58 |\n| res | string | \u5426 | \u7ed3\u679c\u7c7b\u578b\uff1aall/results/merge\uff0c\u9ed8\u8ba4merge |\n| src | string | \u5426 | \u6570\u636e\u6765\u6e90\uff1aall/tg/plugin\uff0c\u9ed8\u8ba4all |\n| plugins | string[] | \u5426 | \u6307\u5b9a\u641c\u7d22\u7684\u63d2\u4ef6\u5217\u8868 |\n| cloud_types | string[] | \u5426 | \u6307\u5b9a\u8fd4\u56de\u7684\u7f51\u76d8\u7c7b\u578b\u5217\u8868 |\n| ext | object | \u5426 | \u6269\u5c55\u53c2\u6570\uff0c\u4f20\u9012\u7ed9\u63d2\u4ef6\u7684\u81ea\u5b9a\u4e49\u53c2\u6570 |\n\n**\u8bf7\u6c42\u793a\u4f8b\uff1a**\n```json\n{\n  \"kw\": \"\u4e09\u4f53\",\n  \"res\": \"merge\",\n  \"cloud_types\": [\"baidu\", \"aliyun\", \"quark\"]\n}\n```\n\n**\u54cd\u5e94\u5b57\u6bb5\uff1a**\n\n| \u5b57\u6bb5\u540d | \u7c7b\u578b | \u63cf\u8ff0 |\n|--------|------|------|\n| total | number | \u641c\u7d22\u7ed3\u679c\u603b\u6570 |\n| results | object[] | \u641c\u7d22\u7ed3\u679c\u6570\u7ec4\uff0c\u5305\u542b\u8be6\u7ec6\u4fe1\u606f |\n| merged_by_type | object | \u6309\u7f51\u76d8\u7c7b\u578b\u5206\u7ec4\u7684\u94fe\u63a5 |\n\n**\u54cd\u5e94\u793a\u4f8b\uff1a**\n```json\n{\n  \"total\": 10,\n  \"merged_by_type\": {\n    \"baidu\": [\n      {\n        \"url\": \"https://pan.baidu.com/s/xxxxx\",\n        \"password\": \"1234\",\n        \"note\": \"\u4e09\u4f53\u5168\u96c6 4K\",\n        \"datetime\": \"2024-01-01T00:00:00Z\",\n        \"source\": \"tg:\u67d0\u9891\u9053\",\n        \"images\": [\"https://example.com/image.jpg\"]\n      }\n    ],\n    \"aliyun\": [\n      {\n        \"url\": \"https://www.aliyundrive.com/s/xxxxx\",\n        \"password\": \"\",\n        \"note\": \"\u4e09\u4f53 \u84dd\u5149\u539f\u76d8\",\n        \"datetime\": \"2024-01-02T00:00:00Z\",\n        \"source\": \"plugin:\u67d0\u63d2\u4ef6\"\n      }\n    ]\n  }\n}\n```\n\n#### GET\u65b9\u5f0f\u641c\u7d22 - GET /api/panso/search\n\n\u4e5f\u652f\u6301GET\u65b9\u5f0f\u641c\u7d22\uff0c\u53c2\u6570\u901a\u8fc7query string\u4f20\u9012\uff1a\n\n```\nGET /api/panso/search?kw=\u4e09\u4f53&res=merge&cloud_types=baidu,aliyun\n```\n\n#### \u6ce8\u610f\u4e8b\u9879\n\n- \u7cfb\u7edf\u4f1a\u81ea\u52a8\u5904\u7406\u4e0e\u8fdc\u7a0bPanso\u670d\u52a1\u7684\u8ba4\u8bc1\uff0c\u65e0\u9700\u624b\u52a8\u767b\u5f55\n- \u5982\u679c\u73af\u5883\u53d8\u91cf\u914d\u7f6e\u4e86PANSO_USERNAME\u548cPANSO_PASSWORD\uff0c\u7cfb\u7edf\u4f1a\u81ea\u52a8\u8ba4\u8bc1\n- \u5982\u679c\u672a\u914d\u7f6e\u8ba4\u8bc1\u4fe1\u606f\uff0c\u7cfb\u7edf\u5c06\u5c1d\u8bd5\u65e0\u8ba4\u8bc1\u8bbf\u95ee\u8fdc\u7a0bPanso\u670d\u52a1\n- Token\u7ba1\u7406\u5b8c\u5168\u81ea\u52a8\u5316\uff0c\u5305\u62ec\u8fc7\u671f\u91cd\u65b0\u83b7\u53d6\n- \u5efa\u8bae\u4f7f\u7528POST\u65b9\u5f0f\u4f20\u9012\u590d\u6742\u53c2\u6570\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "CMS Enhanced Module (Compiled Binary Only - No Source Code)",
    "version": "2025110401",
    "project_urls": {
        "Homepage": "https://github.com/iLay1678/cloud-media-sync-enhanced",
        "Issues": "https://github.com/iLay1678/cloud-media-sync-enhanced/issues",
        "Repository": "https://github.com/iLay1678/cloud-media-sync-enhanced.git"
    },
    "split_keywords": [
        "cms",
        " enhancement",
        " compiled",
        " binary"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2383fcd2153c6951cb004fa0f4eee5b85b9df79e1adc62d7224812a6adb94b87",
                "md5": "d438779aac84de58287ae8d9a7b97657",
                "sha256": "3aa7252beef0eb9421ff74964a88ef3c6ebff7efdc68a02599367f72b988b438"
            },
            "downloads": -1,
            "filename": "cms_enhance-2025110401-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl",
            "has_sig": false,
            "md5_digest": "d438779aac84de58287ae8d9a7b97657",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.12",
            "size": 3191953,
            "upload_time": "2025-11-04T11:32:07",
            "upload_time_iso_8601": "2025-11-04T11:32:07.730286Z",
            "url": "https://files.pythonhosted.org/packages/23/83/fcd2153c6951cb004fa0f4eee5b85b9df79e1adc62d7224812a6adb94b87/cms_enhance-2025110401-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0c805df9019f59c38c8b0d108ddfe62cb843f55320675391eda16f46625c21b3",
                "md5": "d58766aa41eabf8aafa3d300d2a30bd5",
                "sha256": "d63952a596d40ad59f91c49912482526c48ce338500a79430124f6942ac2933b"
            },
            "downloads": -1,
            "filename": "cms_enhance-2025110401-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d58766aa41eabf8aafa3d300d2a30bd5",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.12",
            "size": 3344595,
            "upload_time": "2025-11-04T11:31:28",
            "upload_time_iso_8601": "2025-11-04T11:31:28.212537Z",
            "url": "https://files.pythonhosted.org/packages/0c/80/5df9019f59c38c8b0d108ddfe62cb843f55320675391eda16f46625c21b3/cms_enhance-2025110401-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-11-04 11:32:07",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "iLay1678",
    "github_project": "cloud-media-sync-enhanced",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "cms_enhance"
}
        
Elapsed time: 1.31937s