{"id":"f0d602b3-44e9-4934-8889-8f554735ae5d","entityType":"agent","slug":"clawhub-yuexinguo-movie-monitor","name":"movie-monitor","canonicalUrl":"https://www.xpersona.co/agent/clawhub-yuexinguo-movie-monitor","canonicalPath":"/agent/clawhub-yuexinguo-movie-monitor","generatedAt":"2026-10-10T21:59:34.185Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T19:27:47.164Z","emptyReason":null},"description":"电影监控下载自动化技能。自动从6v电影站抓取新片、添加到115离线下载、复制到本地NAS并重命名。支持IMDb/豆瓣双评分过滤。触发场景：用户要求运行电影下载任务、检查监控状态、修复下载问题、或对电影pipeline做任何调整。 Skill: movie-monitor Owner: yuexinguo Summary: 电影监控下载自动化技能。自动从6v电影站抓取新片、添加到115离线下载、复制到本地NAS并重命名。支持IMDb/豆瓣双评分过滤。触发场景：用户要求运行电影下载任务、检查监控状态、修复下载问题、或对电影pipeline做任何调整。 Tags: latest:1.4.0 Version history: v1.4.0 | 2026-06-01T16:25:54.892Z | user 修复：增加/jddy/（动漫）分类抓取，熊出没等动画现在能被正确抓取；URL日期正则同步支持jddy路径 v1.3.1 | 2026-05-28T14:17:04.788Z | user 修复中点号·(U+00B7)被正则字符类错误处理的BUG，导致杰克·莱恩在去重匹配时变成杰克莱恩的问题。涉及copy_and_rename_movies.py、cleanup","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.3K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s177h0ndw5hegjrxhjmpsdc59185r7xt:movie-monitor","sourceUrl":"https://clawhub.ai/yuexinguo/movie-monitor","homepage":"https://clawhub.ai/yuexinguo/skills/movie-monitor","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/yuexinguo/movie-monitor","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/yuexinguo/skills/movie-monitor","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":62,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"电影监控下载自动化技能。自动从6v电影站抓取新片、添加到115离线下载、复制到本地NAS并重命名。支持IMDb/豆瓣双评分过滤。触发场景：用户要求运行电影下载任务、检查监控状态、修复下载问题、或对电影pipeline做任何调整。 Skill: movie-monitor Owner: yuexinguo Summary"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T19:27:47.164Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T19:27:47.164Z","emptyReason":null},"stars":null,"forks":null,"downloads":1280,"packageName":null,"latestVersion":"1.4.0","tractionLabel":"1.3K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T19:27:47.164Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T19:27:47.164Z","lastCrawledAt":"2026-10-10T19:27:47.164Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T19:27:47.164Z","lastVerifiedAt":null,"highlights":[{"version":"1.4.0","createdAt":"2026-06-01T16:25:54.892Z","changelog":"修复：增加/jddy/（动漫）分类抓取，熊出没等动画现在能被正确抓取；URL日期正则同步支持jddy路径","fileCount":3,"zipByteSize":4151},{"version":"1.3.1","createdAt":"2026-05-28T14:17:04.788Z","changelog":"修复中点号·(U+00B7)被正则字符类错误处理的BUG，导致杰克·莱恩在去重匹配时变成杰克莱恩的问题。涉及copy_and_rename_movies.py、cleanup_and_rename.py、batch_rename_movies.py、batch_rename_115_cloud.py。","fileCount":3,"zipByteSize":4146},{"version":"1.3.0","createdAt":"2026-05-19T14:18:01.302Z","changelog":"新增cleanup_and_rename.py脚本——批量清理115云端和本地NAS的垃圾后缀目录/文件名；修复云端重命名逻辑（直接遍历云端文件匹配清理）；新增清理脚本文档说明","fileCount":11,"zipByteSize":34439},{"version":"1.2.0","createdAt":"2026-05-18T14:34:38.315Z","changelog":"1.2.0 - 修复：cron任务改为agentTurn+isolated类型，真正执行shell不再遗漏；补充115云端重命名功能说明（之前SKILL.md未提及）；增加115-renamer cookie同步说明；完善批量重命名脚本说明；增加去重规则说明。 1.1.1 - Major refactor with reorganization of core scripts and updated copy/rename rules.","fileCount":2,"zipByteSize":2428},{"version":"1.1.1","createdAt":"2026-05-17T07:41:15.063Z","changelog":"movie-monitor 1.1.1 summary: Major refactor with reorganization of core scripts and updated copy/rename rules. - Moved all core scripts and config files from the scripts/ subfolder to the main directory for easier access and management. - Added support for automatic renaming rules: now supports both movie and multi-episode naming conventions with smart episode detection. - SKILL.md updated with new copy/rename documentation and TMDB image proxy config note. - TMDB image download now optionally uses a configurable `image_proxy` (default `http://127.0.0.1:7890`). - No core logic changes to movie grabbing, filtering, or 115/NAS workflows.","fileCount":10,"zipByteSize":33225},{"version":"1.1.0","createdAt":"2026-05-06T07:38:00.799Z","changelog":"修复评分正则匹配bug；fetch_movies()增加douban_rating和imdb_rating字段传递","fileCount":10,"zipByteSize":32440},{"version":"1.0.0","createdAt":"2026-04-29T15:00:10.062Z","changelog":"初始版本：支持IMDb/豆瓣评分过滤、115离线下载、NAS同步重命名","fileCount":9,"zipByteSize":30101}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s177h0ndw5hegjrxhjmpsdc59185r7xt:movie-monitor","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yuexinguo-movie-monitor/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yuexinguo-movie-monitor/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yuexinguo-movie-monitor/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-yuexinguo-movie-monitor/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-yuexinguo-movie-monitor/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-yuexinguo-movie-monitor/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T21:59:34.185Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yuexinguo-movie-monitor/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yuexinguo-movie-monitor/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yuexinguo-movie-monitor/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yuexinguo-movie-monitor/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-10T19:27:47.164Z","emptyReason":null},"readme":"Skill: movie-monitor\n\nOwner: yuexinguo\n\nSummary: 电影监控下载自动化技能。自动从6v电影站抓取新片、添加到115离线下载、复制到本地NAS并重命名。支持IMDb/豆瓣双评分过滤。触发场景：用户要求运行电影下载任务、检查监控状态、修复下载问题、或对电影pipeline做任何调整。\n\nTags: latest:1.4.0\n\nVersion history:\n\nv1.4.0 | 2026-06-01T16:25:54.892Z | user\n\n修复：增加/jddy/（动漫）分类抓取，熊出没等动画现在能被正确抓取；URL日期正则同步支持jddy路径\n\nv1.3.1 | 2026-05-28T14:17:04.788Z | user\n\n修复中点号·(U+00B7)被正则字符类错误处理的BUG，导致杰克·莱恩在去重匹配时变成杰克莱恩的问题。涉及copy_and_rename_movies.py、cleanup_and_rename.py、batch_rename_movies.py、batch_rename_115_cloud.py。\n\nv1.3.0 | 2026-05-19T14:18:01.302Z | user\n\n新增cleanup_and_rename.py脚本——批量清理115云端和本地NAS的垃圾后缀目录/文件名；修复云端重命名逻辑（直接遍历云端文件匹配清理）；新增清理脚本文档说明\n\nv1.2.0 | 2026-05-18T14:34:38.315Z | user\n\n1.2.0 - 修复：cron任务改为agentTurn+isolated类型，真正执行shell不再遗漏；补充115云端重命名功能说明（之前SKILL.md未提及）；增加115-renamer cookie同步说明；完善批量重命名脚本说明；增加去重规则说明。\n1.1.1 - Major refactor with reorganization of core scripts and updated copy/rename rules.\n\nv1.1.1 | 2026-05-17T07:41:15.063Z | auto\n\nmovie-monitor 1.1.1 summary: Major refactor with reorganization of core scripts and updated copy/rename rules.\n\n- Moved all core scripts and config files from the scripts/ subfolder to the main directory for easier access and management.\n- Added support for automatic renaming rules: now supports both movie and multi-episode naming conventions with smart episode detection.\n- SKILL.md updated with new copy/rename documentation and TMDB image proxy config note.\n- TMDB image download now optionally uses a configurable `image_proxy` (default `http://127.0.0.1:7890`).\n- No core logic changes to movie grabbing, filtering, or 115/NAS workflows.\n\nv1.1.0 | 2026-05-06T07:38:00.799Z | user\n\n修复评分正则匹配bug；fetch_movies()增加douban_rating和imdb_rating字段传递\n\nv1.0.0 | 2026-04-29T15:00:10.062Z | user\n\n初始版本：支持IMDb/豆瓣评分过滤、115离线下载、NAS同步重命名\n\nArchive index:\n\nArchive v1.4.0: 3 files, 4151 bytes\n\nFiles: skill-card.md (2255b), SKILL.md (5738b), _meta.json (132b)\n\nFile v1.4.0:SKILL.md\n\n---\nname: movie-monitor\ndescription: 电影监控下载自动化技能。自动从6v电影站抓取新片、添加到115离线下载、复制到本地NAS并重命名。支持IMDb/豆瓣双评分过滤。触发场景：用户要求运行电影下载任务、检查监控状态、修复下载问题、或对电影pipeline做任何调整。\n---\n\n# Movie Monitor Skill\n\n电影自动化监控下载 pipeline，支持 6v520 电影站 → 115离线下载 → NAS 存储。\n\n## 架构\n\n```\n6v520 列表页 ──抓取──> movie_pipeline.py --mode=monitor ──添加──> 115离线下载\n                                              │\n                          copy_and_rename_movies.py <──复制── 115挂载目录\n                                              │\n                                           NAS存储\n                                              │\n                        复制完成后自动重命名115云端文件夹及视频文件\n```\n\n## 定时任务\n\n| 时间 | 任务 | 类型 |\n|------|------|------|\n| 每天 20:00 | 抓取新片并添加到115离线下载 | agentTurn + isolated |\n| 每天 21:00 | 从115挂载目录复制到NAS并重命名 | agentTurn + isolated |\n\ncron 任务使用 `agentTurn + isolated` 类型，在独立 session 中真正执行 shell，不会遗漏。\n\n## 核心脚本\n\n| 脚本 | 用途 |\n|------|------|\n| `movie_pipeline.py` | 主入口，mode=monitor 只抓取+添加115，mode=download 只下载 |\n| `movie_monitor_simple.py` | 抓取电影列表、提取评分、添加到115 |\n| `copy_and_rename_movies.py` | 从115挂载目录复制到NAS并重命名，复制完成后自动重命名115云端文件夹和文件 |\n| `client_115.py` | 115 API 客户端（Cookie：`~/.openclaw/scripts/movie-monitor/115_cookie_manual.json`） |\n| `download_from_115.py` | 115下载到本地逻辑 |\n| `config.py` | 配置（源目录、目标目录、Cookie路径等） |\n| `cleanup_and_rename.py` | 批量清理115云端和本地NAS的垃圾后缀目录/文件名（电影港 dygang、6v电影、地址发布页等），修复本地目录和云端文件重命名 |\n\n## 115 重命名脚本\n\n`~/.openclaw/scripts/115-renamer/115.js`（Node.js）\n\n**重要**：重命名脚本使用独立 Cookie（`~/.openclaw/scripts/115-renamer/cookie.json`），需要与 movie-monitor 的 cookie 保持同步更新。\n\n```bash\n# 列出云下载目录\nnode 115.js ls <cid>\n\n# 重命名文件/文件夹\nnode 115.js rename \"<旧名>\" \"<新名>\" <cid>\n```\n\n## 使用方式\n\n### 抓取新片并添加到115\n```bash\npython3 movie_pipeline.py --mode=monitor\n```\n\n### 从115复制到NAS并重命名\n```bash\npython3 copy_and_rename_movies.py\n```\n\n### 清理115云端和本地NAS的垃圾目录/文件名\n```bash\npython3 cleanup_and_rename.py\n```\n自动去除垃圾后缀（电影港 dygang、6v电影、地址发布页等），同时修复本地目录和云端文件。\n\n### 完整流程\n```bash\npython3 movie_pipeline.py --mode=full\n```\n\n### 清理115云端脏名（批量重命名）\n```bash\npython3 batch_rename_115_cloud.py\n```\n\n## 配置\n\n```python\n# cookie 文件（两个脚本共用同一个）\ncookie_file = \"~/.openclaw/scripts/movie-monitor/115_cookie_manual.json\"\nrenamer_cookie = \"~/.openclaw/scripts/115-renamer/cookie.json\"\n# 两者需保持同步！\n\n# 源目录：115挂载的云下载目录\nsource_dir = \"/mnt/public/CloudDrive/115open/云下载\"\n\n# 目标目录：NAS本地存储\ntarget_dir = \"/mnt/media/115\"\n```\n\n## 评分过滤\n\n- IMDb 或 豆瓣评分 ≥ 6.0 才下载\n- 过滤正则：`r'豆瓣评分[：:\\s]*([\\d.]+)'` 和 `r'IMDb评分[：:\\s]*([\\d.]+)'`\n- **注意**：页面格式为 `◎豆瓣评分:　7.2`（无 `/10`），注意不要写错正则\n\n## 复制重命名规则（v1.3.1 中点号·修复）\n\n复制到 NAS 时自动重命名：\n\n| 类型 | 命名格式 |\n|------|----------|\n| 单部电影 | `电影名(年份).mkv` |\n| 多集剧集 | `电影名(年份)S01E01.mp4`、`电影名(年份)S01E02.mp4` ... |\n\n**中点号 `·` 处理说明**：源目录名中的中点号（如 `杰克·莱恩`）在清理后会转换为空格，但在去重匹配时，`杰克 莱恩` 和 `杰克·莱恩` 会被视为同一电影。复制后的目录名/文件名遵循源目录的实际命名。\n\n## 历史版本\n\n### v1.3.1\n- 修复中点号 `·` (U+00B7) 被错误处理的 BUG：之前 `·` 在正则字符类中被替换为空，导致 `杰克·莱恩` 变成 `杰克 莱恩`。现在 `·` 从正则字符类中移除，改为显式 `.replace('·', ' ')` 处理，避免与去重匹配逻辑冲突。涉及 `copy_and_rename_movies.py`、`cleanup_and_rename.py`、`batch_rename_movies.py`、`batch_rename_115_cloud.py`。\n\n### v1.3.0\n- 115 文件重命名改为调用 Node.js 脚本（`~/.openclaw/scripts/115-renamer/115.js`），支持文件夹和文件双重重命名\n- TMDB 元数据刮削加入中文语言优先\n- 修复集数识别支持 `Kimetsu no Yaiba - 56` 格式\n- 115 离线下载添加显示进度\n\n### v1.2.0\n- 从源目录复制文件到目标目录，复制完成后自动重命名 115 云端文件夹和视频文件\n\n## 去重规则\n\n检查三个目录：NAS电影目录、NAS 115目录、媒体预处理目录，任意一个存在同名电影即跳过。\n\n超过72小时未修改的目录自动跳过，减少无效遍历。\n\n## 依赖\n\n```\nrequests\nbeautifulsoup4\n```\n\n## 注意事项\n\n- 115 Cookie 需保存在 `115_cookie_manual.json`（JSON格式，非 cookies.txt）\n- 两个 cookie 文件（movie-monitor 和 115-renamer）必须同步更新，否则云端重命名会失败\n- 云下载目录 CID：`1870455255659183041`\n- TMDB 图片下载可配置 `image_proxy`（默认 `http://127.0.0.1:7890`）\n- 复制任务独立运行，不会干扰监控任务\n\nFile v1.4.0:_meta.json\n\n{\n  \"ownerId\": \"kn7by8exybq0fkscvs6nzam3nn85s6hm\",\n  \"slug\": \"movie-monitor\",\n  \"version\": \"1.4.0\",\n  \"publishedAt\": 1780331154892\n}\n\nFile v1.4.0:skill-card.md\n\n## Description:\n\nAutomates a movie monitoring pipeline that scrapes 6v520 listings, filters titles by IMDb or Douban score, adds downloads to 115 offline download, copies media to NAS storage, and renames local and cloud files.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[yuexinguo](https://clawhub.ai/user/yuexinguo)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and developers use this skill to operate a personal movie-download pipeline that monitors new listings, queues 115 offline downloads, copies completed media to NAS storage, and performs cleanup or rename actions.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Scheduled tasks may modify local NAS media and 115 cloud files without interactive confirmation.\n\nMitigation: Review the scheduled actions before installation, use a restricted dedicated account, and preview cleanup or batch rename operations before allowing them to run.\n\nRisk: The workflow depends on cookie files for 115 access, including a separate renamer cookie.\n\nMitigation: Keep cookie files under strict filesystem permissions, rotate them if exposed, and avoid sharing them across unrelated automation.\n\nRisk: The skill calls external local scripts from expected ~/.openclaw paths that are not included in the artifact.\n\nMitigation: Audit the referenced Python and Node.js scripts in the local ~/.openclaw locations before enabling the skill.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/yuexinguo/skills/movie-monitor)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with inline shell commands and configuration paths]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May schedule agent turns that execute local Python and Node.js scripts against 115 cloud storage and NAS paths.]\n\n## Skill Version(s):\n\n1.4.0 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.3.1: 3 files, 4146 bytes\n\nFiles: skill-card.md (2379b), SKILL.md (5738b), _meta.json (132b)\n\nFile v1.3.1:SKILL.md\n\n---\nname: movie-monitor\ndescription: 电影监控下载自动化技能。自动从6v电影站抓取新片、添加到115离线下载、复制到本地NAS并重命名。支持IMDb/豆瓣双评分过滤。触发场景：用户要求运行电影下载任务、检查监控状态、修复下载问题、或对电影pipeline做任何调整。\n---\n\n# Movie Monitor Skill\n\n电影自动化监控下载 pipeline，支持 6v520 电影站 → 115离线下载 → NAS 存储。\n\n## 架构\n\n```\n6v520 列表页 ──抓取──> movie_pipeline.py --mode=monitor ──添加──> 115离线下载\n                                              │\n                          copy_and_rename_movies.py <──复制── 115挂载目录\n                                              │\n                                           NAS存储\n                                              │\n                        复制完成后自动重命名115云端文件夹及视频文件\n```\n\n## 定时任务\n\n| 时间 | 任务 | 类型 |\n|------|------|------|\n| 每天 20:00 | 抓取新片并添加到115离线下载 | agentTurn + isolated |\n| 每天 21:00 | 从115挂载目录复制到NAS并重命名 | agentTurn + isolated |\n\ncron 任务使用 `agentTurn + isolated` 类型，在独立 session 中真正执行 shell，不会遗漏。\n\n## 核心脚本\n\n| 脚本 | 用途 |\n|------|------|\n| `movie_pipeline.py` | 主入口，mode=monitor 只抓取+添加115，mode=download 只下载 |\n| `movie_monitor_simple.py` | 抓取电影列表、提取评分、添加到115 |\n| `copy_and_rename_movies.py` | 从115挂载目录复制到NAS并重命名，复制完成后自动重命名115云端文件夹和文件 |\n| `client_115.py` | 115 API 客户端（Cookie：`~/.openclaw/scripts/movie-monitor/115_cookie_manual.json`） |\n| `download_from_115.py` | 115下载到本地逻辑 |\n| `config.py` | 配置（源目录、目标目录、Cookie路径等） |\n| `cleanup_and_rename.py` | 批量清理115云端和本地NAS的垃圾后缀目录/文件名（电影港 dygang、6v电影、地址发布页等），修复本地目录和云端文件重命名 |\n\n## 115 重命名脚本\n\n`~/.openclaw/scripts/115-renamer/115.js`（Node.js）\n\n**重要**：重命名脚本使用独立 Cookie（`~/.openclaw/scripts/115-renamer/cookie.json`），需要与 movie-monitor 的 cookie 保持同步更新。\n\n```bash\n# 列出云下载目录\nnode 115.js ls <cid>\n\n# 重命名文件/文件夹\nnode 115.js rename \"<旧名>\" \"<新名>\" <cid>\n```\n\n## 使用方式\n\n### 抓取新片并添加到115\n```bash\npython3 movie_pipeline.py --mode=monitor\n```\n\n### 从115复制到NAS并重命名\n```bash\npython3 copy_and_rename_movies.py\n```\n\n### 清理115云端和本地NAS的垃圾目录/文件名\n```bash\npython3 cleanup_and_rename.py\n```\n自动去除垃圾后缀（电影港 dygang、6v电影、地址发布页等），同时修复本地目录和云端文件。\n\n### 完整流程\n```bash\npython3 movie_pipeline.py --mode=full\n```\n\n### 清理115云端脏名（批量重命名）\n```bash\npython3 batch_rename_115_cloud.py\n```\n\n## 配置\n\n```python\n# cookie 文件（两个脚本共用同一个）\ncookie_file = \"~/.openclaw/scripts/movie-monitor/115_cookie_manual.json\"\nrenamer_cookie = \"~/.openclaw/scripts/115-renamer/cookie.json\"\n# 两者需保持同步！\n\n# 源目录：115挂载的云下载目录\nsource_dir = \"/mnt/public/CloudDrive/115open/云下载\"\n\n# 目标目录：NAS本地存储\ntarget_dir = \"/mnt/media/115\"\n```\n\n## 评分过滤\n\n- IMDb 或 豆瓣评分 ≥ 6.0 才下载\n- 过滤正则：`r'豆瓣评分[：:\\s]*([\\d.]+)'` 和 `r'IMDb评分[：:\\s]*([\\d.]+)'`\n- **注意**：页面格式为 `◎豆瓣评分:　7.2`（无 `/10`），注意不要写错正则\n\n## 复制重命名规则（v1.3.1 中点号·修复）\n\n复制到 NAS 时自动重命名：\n\n| 类型 | 命名格式 |\n|------|----------|\n| 单部电影 | `电影名(年份).mkv` |\n| 多集剧集 | `电影名(年份)S01E01.mp4`、`电影名(年份)S01E02.mp4` ... |\n\n**中点号 `·` 处理说明**：源目录名中的中点号（如 `杰克·莱恩`）在清理后会转换为空格，但在去重匹配时，`杰克 莱恩` 和 `杰克·莱恩` 会被视为同一电影。复制后的目录名/文件名遵循源目录的实际命名。\n\n## 历史版本\n\n### v1.3.1\n- 修复中点号 `·` (U+00B7) 被错误处理的 BUG：之前 `·` 在正则字符类中被替换为空，导致 `杰克·莱恩` 变成 `杰克 莱恩`。现在 `·` 从正则字符类中移除，改为显式 `.replace('·', ' ')` 处理，避免与去重匹配逻辑冲突。涉及 `copy_and_rename_movies.py`、`cleanup_and_rename.py`、`batch_rename_movies.py`、`batch_rename_115_cloud.py`。\n\n### v1.3.0\n- 115 文件重命名改为调用 Node.js 脚本（`~/.openclaw/scripts/115-renamer/115.js`），支持文件夹和文件双重重命名\n- TMDB 元数据刮削加入中文语言优先\n- 修复集数识别支持 `Kimetsu no Yaiba - 56` 格式\n- 115 离线下载添加显示进度\n\n### v1.2.0\n- 从源目录复制文件到目标目录，复制完成后自动重命名 115 云端文件夹和视频文件\n\n## 去重规则\n\n检查三个目录：NAS电影目录、NAS 115目录、媒体预处理目录，任意一个存在同名电影即跳过。\n\n超过72小时未修改的目录自动跳过，减少无效遍历。\n\n## 依赖\n\n```\nrequests\nbeautifulsoup4\n```\n\n## 注意事项\n\n- 115 Cookie 需保存在 `115_cookie_manual.json`（JSON格式，非 cookies.txt）\n- 两个 cookie 文件（movie-monitor 和 115-renamer）必须同步更新，否则云端重命名会失败\n- 云下载目录 CID：`1870455255659183041`\n- TMDB 图片下载可配置 `image_proxy`（默认 `http://127.0.0.1:7890`）\n- 复制任务独立运行，不会干扰监控任务\n\nFile v1.3.1:_meta.json\n\n{\n  \"ownerId\": \"kn7by8exybq0fkscvs6nzam3nn85s6hm\",\n  \"slug\": \"movie-monitor\",\n  \"version\": \"1.3.1\",\n  \"publishedAt\": 1779977824788\n}\n\nFile v1.3.1:skill-card.md\n\n## Description: <br>\nMovie Monitor automates a movie download pipeline that checks 6v520 listings, adds selected titles to 115 offline downloads, copies completed files to a NAS, and renames local and cloud media files. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[yuexinguo](https://clawhub.ai/user/yuexinguo) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers or operators with a 115 cloud account and NAS use this skill to monitor movie listings, add qualifying titles to offline downloads, copy completed files to local storage, and clean or rename media files. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill can give an agent broad authority over a 115 cloud account and NAS files. <br>\nMitigation: Review scripts and configured paths before use, confirm commands that copy, clean, or rename files, and restrict the agent to the minimum needed account and filesystem access. <br>\nRisk: The skill depends on 115 cookie files that grant account access. <br>\nMitigation: Treat cookie files as secrets, avoid exposing them in prompts or logs, rotate them if exposed, and keep the movie-monitor and renamer cookies synchronized through a controlled process. <br>\nRisk: Scheduled monitor and copy tasks can repeatedly modify cloud and NAS media files. <br>\nMitigation: Limit or disable scheduled runs until the scripts, paths, and rename behavior have been verified in the target environment. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/yuexinguo/movie-monitor) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, Guidance] <br>\n**Output Format:** [Markdown with inline shell commands and configuration snippets] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May propose commands that access 115 cloud storage and NAS paths when authorized by the agent environment.] <br>\n\n## Skill Version(s): <br>\n1.3.1 (source: server release metadata and artifact history) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.3.0: 11 files, 34439 bytes\n\nFiles: batch_rename_115_cloud.py (5491b), client_115.py (16800b), config.py (592b), copy_and_rename_movies.py (33713b), download_from_115.py (9649b), movie_monitor_simple.py (24827b), movie_pipeline.py (11224b), requirements.txt (52b), skill-card.md (2289b), SKILL.md (3017b), _meta.json (132b)\n\nFile v1.3.0:SKILL.md\n\n---\nname: movie-monitor\ndescription: 电影监控下载自动化技能。自动从6v电影站抓取新片、添加到115离线下载、复制到本地NAS并重命名。支持IMDb/豆瓣双评分过滤。触发场景：用户要求运行电影下载任务、检查监控状态、修复下载问题、或对电影pipeline做任何调整。\n---\n\n# Movie Monitor Skill\n\n电影自动化监控下载 pipeline，支持 6v520 电影站 → 115离线下载 → NAS 存储。\n\n## 架构\n\n```\n6v520 列表页 ──抓取──> movie_pipeline.py --mode=monitor ──添加──> 115离线下载\n                                              │\n                          copy_and_rename_movies.py <──复制── 115挂载目录\n                                              │\n                                           NAS存储\n```\n\n## 核心脚本\n\n| 脚本 | 用途 |\n|------|------|\n| `movie_pipeline.py` | 主入口，mode=monitor 只抓取+添加115，mode=download 只下载 |\n| `movie_monitor_simple.py` | 抓取电影列表、提取评分、添加到115 |\n| `copy_and_rename_movies.py` | 从115挂载目录复制到NAS并重命名（需先运行115 renamer的Node.js脚本） |\n| `client_115.py` | 115 API 客户端 |\n| `download_from_115.py` | 115下载到本地逻辑 |\n| `config.py` | 配置（源目录、目标目录、Cookie路径等） |\n\n## 使用方式\n\n### 抓取新片并添加到115\n```bash\npython3 movie_pipeline.py --mode=monitor\n```\n\n### 从115复制到NAS并重命名\n```bash\npython3 copy_and_rename_movies.py\n```\n\n### 完整流程\n```bash\npython3 movie_pipeline.py --mode=full\n```\n\n## 配置 (config.py)\n\n```python\nCONFIG = {\n    \"target_url\": \"https://www.6v520.cc/gvod/zx.html\",  # 电影列表页\n    \"save_dir\": \"/auto_download\",                        # 115云下载目录\n    \"local_download_dir\": \"/mnt/media/115\",             # NAS目标目录\n    \"cookie_file\": \"~/.openclaw/scripts/movie-monitor/115_cookie_manual.json\",\n}\n```\n\n## 评分过滤\n\n- IMDb 或 豆瓣评分 ≥ 6.0 才下载\n- 过滤正则：`r'豆瓣评分[：:\\s]*([\\d.]+)'` 和 `r'IMDb评分[：:\\s]*([\\d.]+)'`\n- **注意**：页面格式为 `◎豆瓣评分:　7.2`（无 `/10`），注意不要写错正则\n\n## 复制重命名规则\n\n复制到 NAS 时自动重命名，支持单部电影和多集剧集：\n\n| 类型 | 命名格式 |\n|------|----------|\n| 单部电影 | `电影名(年份).mkv` |\n| 多集剧集 | `电影名(年份)S01E01.mp4`、`电影名(年份)S01E02.mp4` ... |\n\n集数从文件名智能识别，支持格式：`01.xxx`、`S02E05`、`第03集`、`[55]`、`Kimetsu no Yaiba - 56` 等。\n\n## 依赖\n\n```\nrequests\nbeautifulsoup4\n```\n\n## 注意事项\n\n- 115 Cookie 需保存在 `115_cookie_manual.json`（JSON格式，非 cookies.txt）\n- 云下载目录 CID 需在 client_115.py 中配置\n- copy_and_rename_movies.py 会从电影详情页抓取年份（通过 6v520 详情URL）\n- 超过72小时的旧文件自动跳过\n- TMDB 图片下载可配置 `image_proxy`（默认 `http://127.0.0.1:7890`）\n\nFile v1.3.0:_meta.json\n\n{\n  \"ownerId\": \"kn7by8exybq0fkscvs6nzam3nn85s6hm\",\n  \"slug\": \"movie-monitor\",\n  \"version\": \"1.3.0\",\n  \"publishedAt\": 1779200281302\n}\n\nFile v1.3.0:skill-card.md\n\n## Description: <br>\nMovie Monitor automates checking a 6v movie listing, adding qualifying magnet downloads to 115 Cloud, and copying or renaming completed media into NAS folders with IMDb and Douban rating filters. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[yuexinguo](https://clawhub.ai/user/yuexinguo) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and media automation operators use this skill to run or maintain a movie download pipeline that monitors new releases, filters by IMDb or Douban score, submits selected downloads to 115 Cloud, and organizes completed files on local NAS storage. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill can use stored 115 account session cookies and access a user's cloud account. <br>\nMitigation: Review, rotate, or remove bundled credentials and protect the saved cookie file before running the skill. <br>\nRisk: The skill can automatically rename or write files in 115 Cloud and NAS media directories. <br>\nMitigation: Review configured paths and run monitor-only or narrow modes before enabling copy, full, or rename workflows. <br>\nRisk: The workflow depends on an external 115 renamer script. <br>\nMitigation: Confirm the external renamer script path and implementation are trusted before allowing rename operations. <br>\n\n\n## Reference(s): <br>\n- [ClawHub release page](https://clawhub.ai/yuexinguo/movie-monitor) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown guidance with inline shell commands, Python script references, and configuration notes] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May direct the agent to execute local Python scripts that call external services and modify cloud or NAS media files.] <br>\n\n## Skill Version(s): <br>\n1.3.0 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.3.0:requirements.txt\n\nrequests>=2.28.0\nbeautifulsoup4>=4.11.0\nlxml>=4.9.0\n\nArchive v1.2.0: 2 files, 2428 bytes\n\nFiles: SKILL.md (4500b), _meta.json (132b)\n\nFile v1.2.0:SKILL.md\n\n---\nname: movie-monitor\ndescription: 电影监控下载自动化技能。自动从6v电影站抓取新片、添加到115离线下载、复制到本地NAS并重命名。支持IMDb/豆瓣双评分过滤。触发场景：用户要求运行电影下载任务、检查监控状态、修复下载问题、或对电影pipeline做任何调整。\n---\n\n# Movie Monitor Skill\n\n电影自动化监控下载 pipeline，支持 6v520 电影站 → 115离线下载 → NAS 存储。\n\n## 架构\n\n```\n6v520 列表页 ──抓取──> movie_pipeline.py --mode=monitor ──添加──> 115离线下载\n                                              │\n                          copy_and_rename_movies.py <──复制── 115挂载目录\n                                              │\n                                           NAS存储\n                                              │\n                        复制完成后自动重命名115云端文件夹及视频文件\n```\n\n## 定时任务\n\n| 时间 | 任务 | 类型 |\n|------|------|------|\n| 每天 20:00 | 抓取新片并添加到115离线下载 | agentTurn + isolated |\n| 每天 21:00 | 从115挂载目录复制到NAS并重命名 | agentTurn + isolated |\n\ncron 任务使用 `agentTurn + isolated` 类型，在独立 session 中真正执行 shell，不会遗漏。\n\n## 核心脚本\n\n| 脚本 | 用途 |\n|------|------|\n| `movie_pipeline.py` | 主入口，mode=monitor 只抓取+添加115，mode=download 只下载 |\n| `movie_monitor_simple.py` | 抓取电影列表、提取评分、添加到115 |\n| `copy_and_rename_movies.py` | 从115挂载目录复制到NAS并重命名，复制完成后自动重命名115云端文件夹和文件 |\n| `client_115.py` | 115 API 客户端（Cookie：`~/.openclaw/scripts/movie-monitor/115_cookie_manual.json`） |\n| `batch_rename_115_cloud.py` | 批量清理115云端脏名文件夹（脏名→干净名） |\n| `download_from_115.py` | 115下载到本地逻辑 |\n| `config.py` | 配置（源目录、目标目录、Cookie路径等） |\n\n## 115 重命名脚本\n\n`~/.openclaw/scripts/115-renamer/115.js`（Node.js）\n\n**重要**：重命名脚本使用独立 Cookie（`~/.openclaw/scripts/115-renamer/cookie.json`），需要与 movie-monitor 的 cookie 保持同步更新。\n\n```bash\n# 列出云下载目录\nnode 115.js ls <cid>\n\n# 重命名文件/文件夹\nnode 115.js rename \"<旧名>\" \"<新名>\" <cid>\n```\n\n## 使用方式\n\n### 抓取新片并添加到115\n```bash\npython3 movie_pipeline.py --mode=monitor\n```\n\n### 从115复制到NAS并重命名\n```bash\npython3 copy_and_rename_movies.py\n```\n\n### 完整流程\n```bash\npython3 movie_pipeline.py --mode=full\n```\n\n### 清理115云端脏名（批量重命名）\n```bash\npython3 batch_rename_115_cloud.py\n```\n\n## 配置\n\n```python\n# cookie 文件（两个脚本共用同一个）\ncookie_file = \"~/.openclaw/scripts/movie-monitor/115_cookie_manual.json\"\nrenamer_cookie = \"~/.openclaw/scripts/115-renamer/cookie.json\"\n# 两者需保持同步！\n\n# 源目录：115挂载的云下载目录\nsource_dir = \"/mnt/public/CloudDrive/115open/云下载\"\n\n# 目标目录：NAS本地存储\ntarget_dir = \"/mnt/media/115\"\n```\n\n## 评分过滤\n\n- IMDb 或 豆瓣评分 ≥ 6.0 才下载\n- 过滤正则：`r'豆瓣评分[：:\\s]*([\\d.]+)'` 和 `r'IMDb评分[：:\\s]*([\\d.]+)'`\n- **注意**：页面格式为 `◎豆瓣评分:　7.2`（无 `/10`），注意不要写错正则\n\n## 复制重命名规则\n\n复制到 NAS 时自动重命名：\n\n| 类型 | 命名格式 |\n|------|----------|\n| 单部电影 | `电影名(年份).mkv` |\n| 多集剧集 | `电影名(年份)S01E01.mp4`、`电影名(年份)S01E02.mp4` ... |\n\n集数从文件名智能识别，支持格式：`01.xxx`、`S02E05`、`第03集`、`[55]`、`Kimetsu no Yaiba - 56` 等。\n\n复制完成后自动调用 115 API 重命名云端文件夹和视频文件（与本地保持一致）。\n\n## 去重规则\n\n检查三个目录：NAS电影目录、NAS 115目录、媒体预处理目录，任意一个存在同名电影即跳过。\n\n超过72小时未修改的目录自动跳过，减少无效遍历。\n\n## 依赖\n\n```\nrequests\nbeautifulsoup4\n```\n\n## 注意事项\n\n- 115 Cookie 需保存在 `115_cookie_manual.json`（JSON格式，非 cookies.txt）\n- 两个 cookie 文件（movie-monitor 和 115-renamer）必须同步更新，否则云端重命名会失败\n- 云下载目录 CID：`1870455255659183041`\n- TMDB 图片下载可配置 `image_proxy`（默认 `http://127.0.0.1:7890`）\n- 复制任务独立运行，不会干扰监控任务\n\nFile v1.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn7by8exybq0fkscvs6nzam3nn85s6hm\",\n  \"slug\": \"movie-monitor\",\n  \"version\": \"1.2.0\",\n  \"publishedAt\": 1779114878315\n}\n\nArchive v1.1.1: 10 files, 33225 bytes\n\nFiles: batch_rename_115_cloud.py (5491b), client_115.py (16800b), config.py (592b), copy_and_rename_movies.py (33713b), download_from_115.py (9649b), movie_monitor_simple.py (24827b), movie_pipeline.py (11224b), requirements.txt (52b), SKILL.md (3017b), _meta.json (132b)\n\nFile v1.1.1:SKILL.md\n\n---\nname: movie-monitor\ndescription: 电影监控下载自动化技能。自动从6v电影站抓取新片、添加到115离线下载、复制到本地NAS并重命名。支持IMDb/豆瓣双评分过滤。触发场景：用户要求运行电影下载任务、检查监控状态、修复下载问题、或对电影pipeline做任何调整。\n---\n\n# Movie Monitor Skill\n\n电影自动化监控下载 pipeline，支持 6v520 电影站 → 115离线下载 → NAS 存储。\n\n## 架构\n\n```\n6v520 列表页 ──抓取──> movie_pipeline.py --mode=monitor ──添加──> 115离线下载\n                                              │\n                          copy_and_rename_movies.py <──复制── 115挂载目录\n                                              │\n                                           NAS存储\n```\n\n## 核心脚本\n\n| 脚本 | 用途 |\n|------|------|\n| `movie_pipeline.py` | 主入口，mode=monitor 只抓取+添加115，mode=download 只下载 |\n| `movie_monitor_simple.py` | 抓取电影列表、提取评分、添加到115 |\n| `copy_and_rename_movies.py` | 从115挂载目录复制到NAS并重命名（需先运行115 renamer的Node.js脚本） |\n| `client_115.py` | 115 API 客户端 |\n| `download_from_115.py` | 115下载到本地逻辑 |\n| `config.py` | 配置（源目录、目标目录、Cookie路径等） |\n\n## 使用方式\n\n### 抓取新片并添加到115\n```bash\npython3 movie_pipeline.py --mode=monitor\n```\n\n### 从115复制到NAS并重命名\n```bash\npython3 copy_and_rename_movies.py\n```\n\n### 完整流程\n```bash\npython3 movie_pipeline.py --mode=full\n```\n\n## 配置 (config.py)\n\n```python\nCONFIG = {\n    \"target_url\": \"https://www.6v520.cc/gvod/zx.html\",  # 电影列表页\n    \"save_dir\": \"/auto_download\",                        # 115云下载目录\n    \"local_download_dir\": \"/mnt/media/115\",             # NAS目标目录\n    \"cookie_file\": \"~/.openclaw/scripts/movie-monitor/115_cookie_manual.json\",\n}\n```\n\n## 评分过滤\n\n- IMDb 或 豆瓣评分 ≥ 6.0 才下载\n- 过滤正则：`r'豆瓣评分[：:\\s]*([\\d.]+)'` 和 `r'IMDb评分[：:\\s]*([\\d.]+)'`\n- **注意**：页面格式为 `◎豆瓣评分:　7.2`（无 `/10`），注意不要写错正则\n\n## 复制重命名规则\n\n复制到 NAS 时自动重命名，支持单部电影和多集剧集：\n\n| 类型 | 命名格式 |\n|------|----------|\n| 单部电影 | `电影名(年份).mkv` |\n| 多集剧集 | `电影名(年份)S01E01.mp4`、`电影名(年份)S01E02.mp4` ... |\n\n集数从文件名智能识别，支持格式：`01.xxx`、`S02E05`、`第03集`、`[55]`、`Kimetsu no Yaiba - 56` 等。\n\n## 依赖\n\n```\nrequests\nbeautifulsoup4\n```\n\n## 注意事项\n\n- 115 Cookie 需保存在 `115_cookie_manual.json`（JSON格式，非 cookies.txt）\n- 云下载目录 CID 需在 client_115.py 中配置\n- copy_and_rename_movies.py 会从电影详情页抓取年份（通过 6v520 详情URL）\n- 超过72小时的旧文件自动跳过\n- TMDB 图片下载可配置 `image_proxy`（默认 `http://127.0.0.1:7890`）\n\nFile v1.1.1:_meta.json\n\n{\n  \"ownerId\": \"kn7by8exybq0fkscvs6nzam3nn85s6hm\",\n  \"slug\": \"movie-monitor\",\n  \"version\": \"1.1.1\",\n  \"publishedAt\": 1779003675063\n}\n\nFile v1.1.1:requirements.txt\n\nrequests>=2.28.0\nbeautifulsoup4>=4.11.0\nlxml>=4.9.0\n\nArchive v1.1.0: 10 files, 32440 bytes\n\nFiles: scripts/batch_rename_115_cloud.py (5491b), scripts/client_115.py (16800b), scripts/config.py (592b), scripts/copy_and_rename_movies.py (31883b), scripts/download_from_115.py (9649b), scripts/movie_monitor_simple.py (24827b), scripts/movie_pipeline.py (11224b), scripts/requirements.txt (52b), SKILL.md (2540b), _meta.json (132b)\n\nFile v1.1.0:SKILL.md\n\n---\nname: movie-monitor\ndescription: 电影监控下载自动化技能。自动从6v电影站抓取新片、添加到115离线下载、复制到本地NAS并重命名。支持IMDb/豆瓣双评分过滤。触发场景：用户要求运行电影下载任务、检查监控状态、修复下载问题、或对电影pipeline做任何调整。\n---\n\n# Movie Monitor Skill\n\n电影自动化监控下载 pipeline，支持 6v520 电影站 → 115离线下载 → NAS 存储。\n\n## 架构\n\n```\n6v520 列表页 ──抓取──> movie_pipeline.py --mode=monitor ──添加──> 115离线下载\n                                              │\n                          copy_and_rename_movies.py <──复制── 115挂载目录\n                                              │\n                                           NAS存储\n```\n\n## 核心脚本\n\n| 脚本 | 用途 |\n|------|------|\n| `movie_pipeline.py` | 主入口，mode=monitor 只抓取+添加115，mode=download 只下载 |\n| `movie_monitor_simple.py` | 抓取电影列表、提取评分、添加到115 |\n| `copy_and_rename_movies.py` | 从115挂载目录复制到NAS并重命名（需先运行115 renamer的Node.js脚本） |\n| `client_115.py` | 115 API 客户端 |\n| `download_from_115.py` | 115下载到本地逻辑 |\n| `config.py` | 配置（源目录、目标目录、Cookie路径等） |\n\n## 使用方式\n\n### 抓取新片并添加到115\n```bash\npython3 movie_pipeline.py --mode=monitor\n```\n\n### 从115复制到NAS并重命名\n```bash\npython3 copy_and_rename_movies.py\n```\n\n### 完整流程\n```bash\npython3 movie_pipeline.py --mode=full\n```\n\n## 配置 (config.py)\n\n```python\nCONFIG = {\n    \"target_url\": \"https://www.6v520.cc/gvod/zx.html\",  # 电影列表页\n    \"save_dir\": \"/auto_download\",                        # 115云下载目录\n    \"local_download_dir\": \"/mnt/media/115\",             # NAS目标目录\n    \"cookie_file\": \"~/.openclaw/scripts/movie-monitor/115_cookie_manual.json\",\n}\n```\n\n## 评分过滤\n\n- IMDb 或 豆瓣评分 ≥ 6.0 才下载\n- 过滤正则：`r'豆瓣评分[：:\\s]*([\\d.]+)'` 和 `r'IMDb评分[：:\\s]*([\\d.]+)'`\n- **注意**：页面格式为 `◎豆瓣评分:　7.2`（无 `/10`），注意不要写错正则\n\n## 依赖\n\n```\nrequests\nbeautifulsoup4\n```\n\n## 注意事项\n\n- 115 Cookie 需保存在 `115_cookie_manual.json`（JSON格式，非 cookies.txt）\n- 云下载目录 CID 需在 client_115.py 中配置\n- copy_and_rename_movies.py 会从电影详情页抓取年份（通过 6v520 详情URL）\n- 超过72小时的旧文件自动跳过\n\nFile v1.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn7by8exybq0fkscvs6nzam3nn85s6hm\",\n  \"slug\": \"movie-monitor\",\n  \"version\": \"1.1.0\",\n  \"publishedAt\": 1778053080799\n}\n\nFile v1.1.0:scripts/requirements.txt\n\nrequests>=2.28.0\nbeautifulsoup4>=4.11.0\nlxml>=4.9.0\n\nArchive v1.0.0: 9 files, 30101 bytes\n\nFiles: scripts/batch_rename_115_cloud.py (5491b), scripts/client_115.py (16800b), scripts/config.py (592b), scripts/copy_and_rename_movies.py (31883b), scripts/movie_monitor_simple.py (24700b), scripts/movie_pipeline.py (11224b), scripts/requirements.txt (52b), SKILL.md (4817b), _meta.json (132b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: movie-monitor\ndescription: |\n  115网盘电影自动监控下载 pipeline。抓取 6v520.cc 近3天更新电影，\n  智能过滤评分（IMDb/豆瓣任一>=6分），添加到115离线下载，\n  自动复制到NAS并重命名，支持 TMDB 元数据刮削。\n  适用于已有 115 离线下载 + NAS 存储方案的用户。\nmetadata:\n  openclaw:\n    requires:\n      bins: [\"python3\"]\n      python_pkgs: [\"requests\", \"beautifulsoup4\", \"lxml\"]\n    install:\n      - id: python_deps\n        kind: pip\n        package: requests beautifulsoup4 lxml\n---\n\n# movie-monitor\n\n115网盘电影自动监控下载 pipeline。\n\n## 功能\n\n1. **电影监控**：抓取 6v520.cc 近3天更新电影\n2. **智能过滤**：IMDb 或豆瓣评分 >=6 才下载，低于6分自动跳过\n3. **115离线下载**：自动添加磁力到 115 云端\n4. **NAS同步重命名**：复制到本地 NAS，目标格式 `电影名(年份).后缀`\n5. **115端同步重命名**：NAS 复制完成后，同步重命名 115 上的脏名文件夹和视频文件\n6. **TMDB元数据**：自动刮削 poster/fanart/logo/nfo\n\n## 安装配置\n\n### 1. 安装依赖\n\n```bash\npip install requests beautifulsoup4 lxml\n```\n\n### 2. 配置 115 Cookie\n\n从浏览器登录 https://115.com，按 F12 → Console → 输入 `document.cookie`，将输出的 Cookie 内容保存到：\n\n```\n~/.openclaw/scripts/movie-monitor/115_cookie_manual.json\n```\n\n格式（JSON）：\n```json\n{\n  \"cookie\": \"UID=xxx; USERSESSIONID=xxx; SEID=xxx; ...\",\n  \"cookies\": [\n    {\"domain\": \".115.com\", \"name\": \"UID\", \"value\": \"xxx\", \"path\": \"/\"},\n    ...\n  ]\n}\n```\n\n### 3. 配置本地路径\n\n确认以下挂载点存在：\n- `/mnt/public/CloudDrive/115open/云下载` — 115 挂载目录\n- `/mnt/media/115` — NAS 目标目录\n- `/mnt/media/电影` — 第二个 NAS 目标目录（用于去重判断）\n\n### 4. 配置 Node.js 重命名工具（可选）\n\n115 云端重命名依赖：\n```\n~/.openclaw/scripts/115-renamer/cookie.json   # 同上的 cookie 字符串\n~/.openclaw/scripts/115-renamer/115.js       # Node.js 重命名脚本\n```\n\n115-renamer 可从 Windows 版 OpenClaw 导出的 `115-renamer.zip` 解压得到。\n\n### 5. 添加 Cookie 更新 Cron 提醒（建议）\n\n115 Cookie 约7天过期，建议配置每周提醒：\n```\n周日 10:00 提醒手动更新 Cookie\n```\n\n## 使用方式\n\n### 手动运行\n\n```bash\n# 步骤1：抓取新电影并添加到 115\npython3 ~/.openclaw/scripts/movie-monitor/movie_pipeline.py --mode=monitor\n\n# 或完整流水线（含 NAS 复制重命名）\npython3 ~/.openclaw/scripts/movie-monitor/movie_pipeline.py\n```\n\n### 定时任务配置\n\n建议配置两个 cron 任务：\n\n**任务1 — 每天 20:00**：抓取电影添加到 115\n```\n0 20 * * *  cd ~/.openclaw/scripts/movie-monitor && python3 movie_pipeline.py --mode=monitor\n```\n\n**任务2 — 每天 21:00**：NAS 复制 + 重命名\n```\n0 21 * * *  cd ~/.openclaw/scripts/movie-monitor && python3 copy_and_rename_movies.py\n```\n\n### 手动测试\n\n```bash\n# 测试 115 登录状态\npython3 -c \"from client_115 import Client115; c=Client115(); c.load_cookie(); print('OK' if c.is_logged_in() else '失效')\"\n\n# 测试电影抓取（不添加下载）\npython3 -c \"\nimport sys; sys.path.insert(0, '~/.openclaw/scripts/movie-monitor')\nfrom movie_monitor_simple import MovieMonitor\nm = MovieMonitor()\nmovies = m.fetch_movies()\nfor m2 in movies:\n    d = m2.get('douban_rating'); i = m2.get('imdb_rating')\n    print(f\\\"{m2['title']} 豆瓣:{d} IMDb:{i}\\\")\n\"\n```\n\n## 评分过滤规则\n\nIMDb 或豆瓣评分，任一 >=6 分即下载，低于6分自动跳过：\n\n```\nif (豆瓣 >= 6) OR (IMDb >= 6):\n    → 添加到 115 下载\nelse:\n    → 跳过并记录\n```\n\n评分从电影详情页提取，页面示例：\n```\n◎IMDb评分: 6.5/10 from 8,535 users\n◎豆瓣评分: 7.0/10 from 1,722 users\n```\n\n## 文件结构\n\n```\n~/.openclaw/scripts/movie-monitor/\n├── movie_pipeline.py              # 主入口\n├── movie_monitor_simple.py        # 核心监控逻辑\n├── copy_and_rename_movies.py      # NAS 复制重命名\n├── client_115.py                  # 115 API 客户端\n├── config.py                      # 配置\n├── batch_rename_115_cloud.py      # 115 批量重命名工具（历史脏名清理）\n├── 115_cookie_manual.json        # 115 认证 Cookie（需用户配置）\n├── pending.json                   # 待处理任务记录\n└── copy_processed.json            # 已处理记录（防重复）\n```\n\n## 故障排除\n\n**Cookie 失效**：115 API 返回 \"服务器开小差\" → 重新获取 Cookie\n\n**NAS 复制失败**：`PermissionError` → 检查 `/mnt/media` 挂载权限\n\n**TMDB 刮削超时**：网络问题，可忽略（电影本身已正确复制）\n\n**115 重命名失败**：确认 Node.js + cookie.json 配置正确\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn7by8exybq0fkscvs6nzam3nn85s6hm\",\n  \"slug\": \"movie-monitor\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1777474810062\n}\n\nFile v1.0.0:scripts/requirements.txt\n\nrequests>=2.28.0\nbeautifulsoup4>=4.11.0\nlxml>=4.9.0","readmeExcerpt":"Skill: movie-monitor Owner: yuexinguo Summary: 电影监控下载自动化技能。自动从6v电影站抓取新片、添加到115离线下载、复制到本地NAS并重命名。支持IMDb/豆瓣双评分过滤。触发场景：用户要求运行电影下载任务、检查监控状态、修复下载问题、或对电影pipeline做任何调整。 Tags: latest:1.4.0 Version history: v1.4.0 | 2026-06-01T16:25:54.892Z | user 修复：增加/jddy/（动漫）分类抓取，熊出没等动画现在能被正确抓取；URL日期正则同步支持jddy路径 v1.3.1 | 2026-05-28T14:17:04.788Z | user 修复中点号·(U+00B7)被正则字符类错误处理的BUG，导致杰克·莱恩在去重匹配时变成杰克莱恩的问题。涉及copy_and_rename_movies.py、cleanup","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"6v520 列表页 ──抓取──> movie_pipeline.py --mode=monitor ──添加──> 115离线下载\n                                              │\n                          copy_and_rename_movies.py <──复制── 115挂载目录\n                                              │\n                                           NAS存储\n                                              │\n                        复制完成后自动重命名115云端文件夹及视频文件"},{"language":"bash","snippet":"# 列出云下载目录\nnode 115.js ls <cid>\n\n# 重命名文件/文件夹\nnode 115.js rename \"<旧名>\" \"<新名>\" <cid>"},{"language":"bash","snippet":"python3 movie_pipeline.py --mode=monitor"},{"language":"bash","snippet":"python3 copy_and_rename_movies.py"},{"language":"bash","snippet":"python3 cleanup_and_rename.py"},{"language":"bash","snippet":"python3 movie_pipeline.py --mode=full"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: movie-monitor\ndescription: 电影监控下载自动化技能。自动从6v电影站抓取新片、添加到115离线下载、复制到本地NAS并重命名。支持IMDb/豆瓣双评分过滤。触发场景：用户要求运行电影下载任务、检查监控状态、修复下载问题、或对电影pipeline做任何调整。\n---\n\n# Movie Monitor Skill\n\n电影自动化监控下载 pipeline，支持 6v520 电影站 → 115离线下载 → NAS 存储。\n\n## 架构\n\n```\n6v520 列表页 ──抓取──> movie_pipeline.py --mode=monitor ──添加──> 115离线下载\n                                              │\n                          copy_and_rename_movies.py <──复制── 115挂载目录\n                                              │\n                                           NAS存储\n                                              │\n                        复制完成后自动重命名115云端文件夹及视频文件\n```\n\n## 定时任务\n\n| 时间 | 任务 | 类型 |\n|------|------|------|\n| 每天 20:00 | 抓取新片并添加到115离线下载 | agentTurn + isolated |\n| 每天 21:00 | 从115挂载目录复制到NAS并重命名 | agentTurn + isolated |\n\ncron 任务使用 `agentTurn + isolated` 类型，在独立 session 中真正执行 shell，不会遗漏。\n\n## 核心脚本\n\n| 脚本 | 用途 |\n|------|------|\n| `movie_pipeline.py` | 主入口，mode=monitor 只抓取+添加115，mode=download 只下载 |\n| `movie_monitor_simple.py` | 抓取电影列表、提取评分、添加到115 |\n| `copy_and_rename_movies.py` | 从115挂载目录复制到NAS并重命名，复制完成后自动重命名115云端文件夹和文件 |\n| `client_115.py` | 115 API 客户端（Cookie：`~/.openclaw/scripts/movie-monitor/115_cookie_manual.json`） |\n| `download_from_115.py` | 115下载到本地逻辑 |\n| `config.py` | 配置（源目录、目标目录、Cookie路径等） |\n| `cleanup_and_rename.py` | 批量清理115云端和本地NAS的垃圾后缀目录/文件名（电影港 dygang、6v电影、地址发布页等），修复本地目录和云端文件重命名 |\n\n## 115 重命名脚本\n\n`~/.openclaw/scripts/115-renamer/115.js`（Node.js）\n\n**重要**：重命名脚本使用独立 Cookie（`~/.openclaw/scripts/115-renamer/cookie.json`），需要与 movie-monitor 的 cookie 保持同步更新。\n\n```bash\n# 列出云下载目录\nnode 115.js ls <cid>\n\n# 重命名文件/文件夹\nnode 115.js rename \"<旧名>\" \"<新名>\" <cid>\n```\n\n## 使用方式\n\n### 抓取新片并添加到115\n```bash\npython3 movie_pipeline.py --mode=monitor\n```\n\n### 从115复制到NAS并重命名\n```bash\npython3 copy_and_rename_movies.py\n```\n\n### 清理115云端和本地NAS的垃圾目录/文件名\n```bash\npython3 cleanup_and_rename.py\n```\n自动去除垃圾后缀（电影港 dygang、6v电影、地址发布页等），同时修复本地目录和云端文件。\n\n### 完整流程\n```bash\npython3 movie_pipeline.py --mode=full\n```\n\n### 清理115云端脏名（批量重命名）\n```bash\npython3 batch_rename_115_cloud.py\n```\n\n## 配置\n\n```python\n# cookie 文件（两个脚本共用同一个）\ncookie_file = \"~/.openclaw/scripts/movie-monitor/115_cookie_manual.json\"\nrenamer_cookie = \"~/.openclaw/scripts/115-renamer/cookie.json\"\n# 两者需保持同步！\n\n# 源目录：115挂载的云下载目录\nsource_dir = \"/mnt/public/CloudDrive/115open/云下载\"\n\n# 目标目录：NAS本地存储\ntarget_dir = \"/mnt/media/115\"\n```\n\n## 评分过滤\n\n- IMDb 或 豆瓣评分 ≥ 6.0 才下载\n- 过滤正则：`r'豆瓣评分[：:\\s]*([\\d.]+)'` 和 `r'IMDb评分[：:\\s]*([\\d.]+)'`\n- **注意**：页面格式为 `◎豆瓣评分:　7.2`（无 `/10`），注意不要写错正则\n\n## 复制重命名规则（v1.3.1 中点号·修复）\n\n复制到 NAS 时自动重命名：\n\n| 类型 | 命名格式 |\n|------|----------|\n| 单部电影 | `电影名(年份).mkv` |\n| 多集剧集 | `电影名(年份)S01E01.mp4`、`电影名(年份)S01E02.mp4` ... |\n\n**中点号 `·` 处理说明**：源目录名中的中点号（如 `杰克·莱恩`）在清理后会转换为空格，但在去重匹配时，`杰克 莱恩` 和 `杰克·莱恩` 会被视为同一电影。复制后的目录名/文件名遵循源目录的实际命名。\n\n## 历史版本\n\n### v1.3.1\n- 修复中点号 `·` (U+00B7) 被错误处理的 BUG：之前 `·` 在正则字符类中被替换为空，导致 `杰克·莱恩` 变成 `杰克 莱恩`。现在 `·` 从正则字符类中移除，改为显式 `.replace('·', ' ')` 处理，避免与去重匹配逻辑冲突。涉及 `copy_and_rename_movies.py`、`cleanup_and_rename.py`、`batch_rename_movies.py`、`batch_rename_115_cloud.py`。\n"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7by8exybq0fkscvs6nzam3nn85s6hm\",\n  \"slug\": \"movie-monitor\",\n  \"version\": \"1.4.0\",\n  \"publishedAt\": 1780331154892\n}"},{"path":"skill-card.md","content":"## Description:\n\nAutomates a movie monitoring pipeline that scrapes 6v520 listings, filters titles by IMDb or Douban score, adds downloads to 115 offline download, copies media to NAS storage, and renames local and cloud files.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[yuexinguo](https://clawhub.ai/user/yuexinguo)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and developers use this skill to operate a personal movie-download pipeline that monitors new listings, queues 115 offline downloads, copies completed media to NAS storage, and performs cleanup or rename actions.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Scheduled tasks may modify local NAS media and 115 cloud files without interactive confirmation.\n\nMitigation: Review the scheduled actions before installation, use a restricted dedicated account, and preview cleanup or batch rename operations before allowing them to run.\n\nRisk: The workflow depends on cookie files for 115 access, including a separate renamer cookie.\n\nMitigation: Keep cookie files under strict filesystem permissions, rotate them if exposed, and avoid sharing them across unrelated automation.\n\nRisk: The skill calls external local scripts from expected ~/.openclaw paths that are not included in the artifact.\n\nMitigation: Audit the referenced Python and Node.js scripts in the local ~/.openclaw locations before enabling the skill.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/yuexinguo/skills/movie-monitor)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with inline shell commands and configuration paths]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May schedule agent turns that execute local Python and Node.js scripts against 115 cloud storage and NAS paths.]\n\n## Skill Version(s):\n\n1.4.0 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"电影监控下载自动化技能。自动从6v电影站抓取新片、添加到115离线下载、复制到本地NAS并重命名。支持IMDb/豆瓣双评分过滤。触发场景：用户要求运行电影下载任务、检查监控状态、修复下载问题、或对电影pipeline做任何调整。 Skill: movie-monitor Owner: yuexinguo Summary: 电影监控下载自动化技能。自动从6v电影站抓取新片、添加到115离线下载、复制到本地NAS并重命名。支持IMDb/豆瓣双评分过滤。触发场景：用户要求运行电影下载任务、检查监控状态、修复下载问题、或对电影pipeline做任何调整。 Tags: latest:1.4.0 Version history: v1.4.0 | 2026-06-01T16:25:54.892Z | user 修复：增加/jddy/（动漫）分类抓取，熊出没等动画现在能被正确抓取；URL日期正则同步支持jddy路径 v1.3.1 | 2026-05-28T14:17:04.788Z | user 修复中点号·(U+00B7)被正则字符类错误处理的BUG，导致杰克·莱恩在去重匹配时变成杰克莱恩的问题。涉及copy_and_rename_movies.py、cleanup","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":955,"uniquenessScore":51,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T19:27:47.164Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T19:27:47.164Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T21:59:34.185Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}