{"id":"78ede9ee-e651-4670-88cf-289ee04bedcf","entityType":"agent","slug":"clawhub-jesustoachild-quark-lazy-cli","name":"Quark Lazy Cli","canonicalUrl":"https://www.xpersona.co/agent/clawhub-jesustoachild-quark-lazy-cli","canonicalPath":"/agent/clawhub-jesustoachild-quark-lazy-cli","generatedAt":"2026-10-10T03:53:13.142Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T23:30:51.647Z","emptyReason":null},"description":"基于 QAS（夸克网盘自动转存项目）的懒人追剧、追番 SKILL，也内置了一个 CLI 工具。即使 QAS 的剧集订阅失效，它也可以重新搜索资源、探查多级资源目录，并在多个最新候选资源中按用户偏好（如更高清晰度）转存新剧集和缺失剧集。可以交给本地 OpenClaw、Hermes Agent 或其他Claude C...","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.9K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s175r5y3fwheav6jqj9jz07gc1843vxx:quark-lazy-cli","sourceUrl":"https://clawhub.ai/jesustoachild/quark-lazy-cli","homepage":"https://clawhub.ai/jesustoachild/skills/quark-lazy-cli","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/jesustoachild/quark-lazy-cli","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/jesustoachild/skills/quark-lazy-cli","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":66,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Quark Lazy Cli technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T23:30:51.647Z","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-09T23:30:51.647Z","emptyReason":null},"stars":null,"forks":null,"downloads":1888,"packageName":null,"latestVersion":"0.1.22","tractionLabel":"1.9K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T23:30:51.647Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T23:30:51.647Z","lastCrawledAt":"2026-10-09T23:30:51.647Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T23:30:51.647Z","lastVerifiedAt":null,"highlights":[{"version":"0.1.22","createdAt":"2026-06-01T15:52:04.564Z","changelog":"quark-lazy-cli v0.1.22 - 新增多份环境变量示例文件（.env.example, .env.local.example, references/.env.example）便于配置 - 增加 .gitignore、LICENSE、CLAUDE.md、RELEASE_AGENT.md 等文件，完善项目文档与合规性 - 删除 skill-card.md - 新增本地配置文件夹 .claude/ 和 Python 字节码缓存目录 - 文档 SKILL.md 无实质改动，内容保持一致","fileCount":23,"zipByteSize":70421},{"version":"0.1.20","createdAt":"2026-05-25T13:29:01.795Z","changelog":"- Update version to 0.1.20 - Internal code and dependency updates across multiple source files - No user-facing feature or breaking changes","fileCount":22,"zipByteSize":66868},{"version":"0.1.19","createdAt":"2026-05-24T15:54:37.745Z","changelog":"- Update version to 0.1.19 in pyproject.toml. - No code or user-visible feature changes.","fileCount":21,"zipByteSize":65489},{"version":"0.1.18","createdAt":"2026-05-24T15:37:25.562Z","changelog":"- Expanded documentation for the `llm` and `agent` advisor modes, including practical tips and explanations for their use cases. - Improved descriptions in SKILL.md for advisor modes, aiming for greater clarity and practical guidance. - Minor language and formatting updates in SKILL.md to enhance readability and usability. - No changes to core CLI commands or installation/configuration steps.","fileCount":21,"zipByteSize":65491},{"version":"0.1.17","createdAt":"2026-05-24T11:27:20.379Z","changelog":"quark-lazy-cli 0.1.17 - 替换原有 `scripts/*.sh` 脚本为 `scripts/*.sample.sh`，便于用户安全定制。请复制为 `.local.sh` 再使用。 - 更新文档和 SKILL.md，强调 sample/local 脚本分离原则和升级保留本地定制的方法。 - 优化参考文档说明，完善每日汇报、资源时间估算等用法细节。 - 移除原有 sample 示例脚本，减少升级时冲突风险。","fileCount":21,"zipByteSize":65339},{"version":"0.1.16","createdAt":"2026-05-23T14:25:17.510Z","changelog":"quark-lazy-cli v0.1.16 - Updated dependencies in pyproject.toml. - Minor internal code adjustments in `__init__.py` and `app.py`. - No user-facing changes or new features in this release.","fileCount":21,"zipByteSize":64831},{"version":"0.1.15","createdAt":"2026-05-23T13:40:36.222Z","changelog":"quark-lazy-cli 0.1.15 更新日志 - 更新依赖版本，提升兼容性和稳定性 - 优化包初始化设置，调整 pyproject.toml 与 __init__.py 文件 - 无新增功能或破坏性改动","fileCount":21,"zipByteSize":64722},{"version":"0.1.14","createdAt":"2026-05-22T18:57:50.642Z","changelog":"quark-lazy-cli v0.1.14 - 更新文档：完善或调整 README.md 和参考文档内容 - 删除多余或过时文件（.codex/hooks.json, AGENTS.md） - 微调核心源文件，优化部分实现细节 - 同步 pyproject.toml 依赖及配置信息 - 改善部分顾问模式和资源估算说明文件","fileCount":21,"zipByteSize":64722}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s175r5y3fwheav6jqj9jz07gc1843vxx:quark-lazy-cli","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s175r5y3fwheav6jqj9jz07gc1843vxx:quark-lazy-cli` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/jesustoachild/quark-lazy-cli before using production credentials."],"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-jesustoachild-quark-lazy-cli/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jesustoachild-quark-lazy-cli/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jesustoachild-quark-lazy-cli/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-jesustoachild-quark-lazy-cli/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-jesustoachild-quark-lazy-cli/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-jesustoachild-quark-lazy-cli/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-10T03:53:13.139Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jesustoachild-quark-lazy-cli/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jesustoachild-quark-lazy-cli/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jesustoachild-quark-lazy-cli/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jesustoachild-quark-lazy-cli/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":"medium","updatedAt":"2026-10-09T23:30:51.647Z","emptyReason":null},"readme":"Skill: Quark Lazy Cli\n\nOwner: jesustoachild\n\nSummary: 基于 QAS（夸克网盘自动转存项目）的懒人追剧、追番 SKILL，也内置了一个 CLI 工具。即使 QAS 的剧集订阅失效，它也可以重新搜索资源、探查多级资源目录，并在多个最新候选资源中按用户偏好（如更高清晰度）转存新剧集和缺失剧集。可以交给本地 OpenClaw、Hermes Agent 或其他Claude C...\n\nTags: latest:0.1.22\n\nVersion history:\n\nv0.1.22 | 2026-06-01T15:52:04.564Z | user\n\nquark-lazy-cli v0.1.22\n\n- 新增多份环境变量示例文件（.env.example, .env.local.example, references/.env.example）便于配置\n- 增加 .gitignore、LICENSE、CLAUDE.md、RELEASE_AGENT.md 等文件，完善项目文档与合规性\n- 删除 skill-card.md\n- 新增本地配置文件夹 .claude/ 和 Python 字节码缓存目录\n- 文档 SKILL.md 无实质改动，内容保持一致\n\nv0.1.20 | 2026-05-25T13:29:01.795Z | auto\n\n- Update version to 0.1.20\n- Internal code and dependency updates across multiple source files\n- No user-facing feature or breaking changes\n\nv0.1.19 | 2026-05-24T15:54:37.745Z | auto\n\n- Update version to 0.1.19 in pyproject.toml.\n- No code or user-visible feature changes.\n\nv0.1.18 | 2026-05-24T15:37:25.562Z | auto\n\n- Expanded documentation for the `llm` and `agent` advisor modes, including practical tips and explanations for their use cases.\n- Improved descriptions in SKILL.md for advisor modes, aiming for greater clarity and practical guidance.\n- Minor language and formatting updates in SKILL.md to enhance readability and usability.\n- No changes to core CLI commands or installation/configuration steps.\n\nv0.1.17 | 2026-05-24T11:27:20.379Z | auto\n\nquark-lazy-cli 0.1.17\n\n- 替换原有 `scripts/*.sh` 脚本为 `scripts/*.sample.sh`，便于用户安全定制。请复制为 `.local.sh` 再使用。\n- 更新文档和 SKILL.md，强调 sample/local 脚本分离原则和升级保留本地定制的方法。\n- 优化参考文档说明，完善每日汇报、资源时间估算等用法细节。\n- 移除原有 sample 示例脚本，减少升级时冲突风险。\n\nv0.1.16 | 2026-05-23T14:25:17.510Z | auto\n\nquark-lazy-cli v0.1.16\n\n- Updated dependencies in pyproject.toml.\n- Minor internal code adjustments in `__init__.py` and `app.py`.\n- No user-facing changes or new features in this release.\n\nv0.1.15 | 2026-05-23T13:40:36.222Z | auto\n\nquark-lazy-cli 0.1.15 更新日志\n\n- 更新依赖版本，提升兼容性和稳定性\n- 优化包初始化设置，调整 pyproject.toml 与 __init__.py 文件\n- 无新增功能或破坏性改动\n\nv0.1.14 | 2026-05-22T18:57:50.642Z | auto\n\nquark-lazy-cli v0.1.14\n\n- 更新文档：完善或调整 README.md 和参考文档内容\n- 删除多余或过时文件（.codex/hooks.json, AGENTS.md）\n- 微调核心源文件，优化部分实现细节\n- 同步 pyproject.toml 依赖及配置信息\n- 改善部分顾问模式和资源估算说明文件\n\nv0.1.13 | 2026-05-22T17:11:56.752Z | auto\n\n- 新增 AGENTS.md，提供 Agent 说明和集成文档。\n- 新增 .codex/hooks.json 文件，增加开发或自动化支持。\n- 更新 pyproject.toml 和 __init__.py，支持新增内容。\n- 文档与项目结构优化，便于 Agent 集成和使用。\n\nv0.1.12 | 2026-05-21T15:57:49.552Z | auto\n\n- Updated dependencies in pyproject.toml.\n- Refactored internal code in src/quark_lazy_cli/app.py.\n- Made minor adjustments to src/quark_lazy_cli/__init__.py.\n- No user-facing feature changes or new commands in this release.\n\nv0.1.11 | 2026-05-20T19:13:36.519Z | auto\n\nquark-lazy-cli 0.1.11\n\n- Updated version to 0.1.11 in pyproject.toml.\n- Minor changes to src/quark_lazy_cli/app.py and src/quark_lazy_cli/__init__.py. \n- No user-facing features or documentation changes.\n\nv0.1.10 | 2026-05-20T14:47:10.651Z | auto\n\nquark-lazy-cli v0.1.10\n\n- Updated metadata in pyproject.toml.\n- Minor code or packaging adjustments in __init__.py and app.py.\n- No user-facing changes to commands or documentation.\n\nv0.1.9 | 2026-05-20T10:00:16.648Z | auto\n\nquark-lazy-cli v0.1.9\n\n- Updated documentation in SKILL.md for clarity and usage guidance.\n- Minor code adjustments across advisor, api, app, and models modules.\n- pyproject.toml updated (possible dependency or metadata changes).\n- No breaking changes to CLI usage or core workflow.\n\nv0.1.8 | 2026-05-19T18:17:23.415Z | auto\n\nquark-lazy-cli v0.1.8\n\n- Updated package version to 0.1.8 in pyproject.toml.\n- Internal code or metadata adjustments applied in src/quark_lazy_cli/__init__.py and src/quark_lazy_cli/app.py. No user-facing features changed.\n\nv0.1.7 | 2026-05-19T10:42:50.396Z | auto\n\nquark-lazy-cli 0.1.7 更新内容：\n\n- 增加 assets/订阅时间表.md、references/环境变量.md 等文档，便于环境配置和时间表维护\n- README 和 SKILL.md 更新，完善运行说明、安装步骤和环境变量指南，优化高级用法说明\n- references/环境参数.txt 文件移除，相关内容迁移到 references/环境变量.md\n- 项目文档更突出对 OpenClaw、Hermes Agent 等多平台的适配说明\n- 依赖配置和部分源文件小幅调整以配合最新文档结构\n\nv0.1.6 | 2026-05-19T06:20:03.181Z | auto\n\n- 新增 references/环境参数.txt 文档，补充环境参数参考信息。\n- 其他功能未变。\n\nv0.1.5 | 2026-05-19T05:47:33.072Z | auto\n\n- 修正 .env 模板路径为 ./references/.env.example，避免用户出错\n- 其余文档内容保持不变，仅优化说明和操作步骤\n\nv0.1.4 | 2026-05-19T05:18:38.215Z | auto\n\n## quark-lazy-cli v0.1.4\n\n- No file changes detected in this release.\n- SKILL.md content was not modified.\n- No new features, bug fixes, or documentation updates included in this version.\n\nv0.1.3 | 2026-05-19T05:03:30.596Z | auto\n\n- Improved SKILL.md environment variable configuration: clarified steps, split说明和操作,并强调.env不要放入全局目录\n- 增强了.env配置部分的分层描述，对不同变量设置进行了详细注释，提升易用性\n- 对环境变量优先级说明进行了补充，使临时覆盖和持久配置的逻辑更清晰\n- 其余功能和CLI命令用法未更动\n\nv0.1.2 | 2026-05-18T18:22:21.398Z | auto\n\nquark-lazy-cli v0.1.2\n\n- Renamed skill to quark-lazy-cli and updated description for clarity.\n- Refined and reorganized documentation for installation, configuration, usage, and best practices.\n- Added four new reference guides covering advisor modes, scheduling, daily reports, and release time estimation in the \"references\" directory.\n- Expanded instructions on advisor modes, CLI command usage, and strict rules for safe operation.\n- Improved environment variable and runtime directory recommendations for better agent compatibility.\n\nv0.1.1 | 2026-05-18T15:11:22.968Z | auto\n\n- Documentation (SKILL.md, README.md) updated to distinguish \"Skill 文档\" from the actual CLI; instructions now clearly separate installing the skill for OpenClaw Agent vs installing the functional CLI.\n- All environment variable and configuration paths now recommend using a dedicated \".quark-lazy-cli\" directory within the skill folder instead of a flat shared directory.\n- All example commands and configuration references updated to use the new `<skill>/.quark-lazy-cli/.env` pattern for improved clarity and isolation.\n- Added sample shell scripts for status checking and reporting.\n- Minor updates/refactoring across source files and project metadata to align with new documentation and directory conventions.\n- The skill name in documentation clarified from \"quark-lazy-cli\" to \"qslazy\" for consistency.\n\nv0.1.0 | 2026-05-18T01:00:53.085Z | auto\n\nInitial release of quark-lazy-cli.\n\n- Provides agents with tools to manage QAS-based Quark drive subscriptions for anime, dramas, and shows.\n- Supports installing/configuring qslazy, inspecting subscription status, and updating missing/new episodes after user authorization.\n- Analyzes release timings and suggests optimal recurring update schedules.\n- Handles complex resource selection with advisor modes (code, llm, agent, human).\n- Includes detailed guidance on setup, safe operating principles, advisor usage, and integration with external tools.\n\nArchive index:\n\nArchive v0.1.22: 23 files, 70421 bytes\n\nFiles: .claude/settings.local.json (75b), assets/订阅时间表.md (1560b), pyproject.toml (533b), README.md (5608b), references/OpenClaw定时任务.md (2145b), references/每日汇报.md (5227b), references/环境变量.md (2172b), references/订阅时间估算.md (7348b), references/顾问模式.md (2973b), scripts/check_all_status.sample.sh (554b), scripts/daily_report.sample.sh (1564b), scripts/run_lazy_update.sample.sh (2398b), skill-card.md (2409b), SKILL.md (7216b), skills-lock.json (266b), src/quark_lazy_cli/__init__.py (71b), src/quark_lazy_cli/advisor.py (34934b), src/quark_lazy_cli/api.py (19607b), src/quark_lazy_cli/app.py (106717b), src/quark_lazy_cli/config.py (6858b), src/quark_lazy_cli/main.py (5749b), src/quark_lazy_cli/models.py (1579b), _meta.json (134b)\n\nFile v0.1.22:SKILL.md\n\n---\nname: quark-lazy-cli\ndescription: >-\n  基于 QAS（夸克网盘自动转存项目）的懒人追剧、追番 SKILL，也内置了一个 CLI 工具。即使 QAS\n  的剧集订阅失效，它也可以重新搜索资源、探查多级资源目录，并在多个最新候选资源中按用户偏好（如更高清晰度）转存新剧集和缺失剧集。可以交给本地\n  OpenClaw、Hermes Agent 或其他Claude Code, Codex Agent 使用，用来设置定时任务、定时汇报，并在订阅失败时辅助修复。有 Python\n  运行环境的进阶用户，也可以把它当作命令行工具使用。\n---\n\n# quark-lazy-cli\n\n`quark-lazy-cli` 是给 Agent 使用的夸克网盘追剧、追番订阅维护 Skill；`qslazy` 是它内置的命令行工具。它依赖 QAS 后端，用来查看订阅、检查缺集、搜索候选资源，并在用户授权后转存新剧集或补全缺失剧集。\n\n`quark-lazy-cli` 不是 QAS Web 端的替代。它的核心功能聚焦在更新、修复更新失败、精准指定源资源文件转存，让 Agent 帮用户少操心地追新、补漏和维护订阅。\n\n## 四种运行模式\n\n`LAZY_CLI_ADVISOR` 是网盘资源搜索后的决策机制，用来决定候选资源怎么选，不是聊天模式。\n\n- `code`：用代码规则自动决策。适合后台任务、资源发布规范的剧集、资源目录有“更新至n集”；速度快，无需交互，不消耗 LLM Token。\n- `llm`：后台任务中引入大模型做资源选择。适合多版本编号冲突等复杂资源；可配合 `--add-prompt` 改AI大模型定制判断规则。例如：让大模型帮你判断是动漫还是真人版的剧集、你订阅任务是剧集的中文名称，告诉大模型剧集的英文名称等。\n- `agent`：由当前 Agent 在和用户交互过程中判断候选资源。适合复杂场景的临时更新，或者在Openclaw Heateat机制里，维护和修复复杂订阅更新的场景使用。记得让Agent更新时，要求看订阅剧集.md文档中，你对剧集转存的要求。\n- `human`：用户人工选择。适合用户想亲自确认资源的场景。\n\n详细用法读取：`references/顾问模式.md`。\n\n## 安装\n\n安装分两步：Skill 文档告诉 Agent 怎么用；`qslazy` CLI 是真正执行任务的命令。两个都要装。\n\n```bash\n# skills.sh / 通用 Agent\nnpx skills add jesustoachild/quark-lazy-cli\n\n# OpenClaw / ClawHub\nopenclaw skills install quark-lazy-cli\n\n# qslazy CLI\npipx install git+https://github.com/jesustoachild/quark-lazy-cli.git\n```\n\n## 配置环境变量\n\n### 1. 确认 `.env` 位置\n\n`.env` 固定放在 Skill 目录根部，不要放到全局目录：\n\n```text\n<skills-dir>/quark-lazy-cli/.env\n```\n\n### 2. 创建 `.env`\n\n如果安装后的 Skill 目录里带有 env 样板文件，直接复制成 `.env`：\n\n```bash\ncd <skills-dir>/quark-lazy-cli\n\ncp ./.env.local.example .env\n```\n\n如果安装后的目录没有 env 样板文件，就读取 `references/环境变量.md`，由 Agent 根据里面的完整模板创建并编辑 `.env`。\n\n### 3. 写入基础配置\n\n把下面内容写入 `<skills-dir>/quark-lazy-cli/.env`，并把占位值改成用户自己的 QAS 信息：\n\n```env\n# QAS 后端地址，例如：http://192.168.1.10:15305\nQAS_HOST=http://your-qas-host:port\n\n# QAS API Token，可在 QAS Web 管理页面查看\nQAS_API_TOKEN=your-qas-api-token\n\n# 网盘资源搜索选择的顾问模式：human / code / llm / agent\nLAZY_CLI_ADVISOR=code\n\n# 运行时目录，建议使用绝对路径，放在 Skill 目录下，便于 Agent 清理和迁移\nLAZY_CLI_LOG_DIR=<skills-dir>/quark-lazy-cli/runtime/logs\nLAZY_CLI_REPORT_DIR=<skills-dir>/quark-lazy-cli/runtime/report\nLAZY_CLI_AGENT_MSG_DIR=<skills-dir>/quark-lazy-cli/runtime/message\n```\n\n如果想在任意目录下运行，建议加入 `--env`：\n\n```bash\nqslazy update new 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n如果临时覆盖 `.env` 的配置，可以不更改.env，命令行示例：\n\n```bash\nLAZY_CLI_ADVISOR=llm qslazy update new 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n环境变量优先顺序从高到低：\n\n```text\n命令行临时环境变量 > 系统环境变量 > --env 指定的 .env 文件 > 默认值\n```\n\n因此 `LAZY_CLI_ADVISOR=llm qslazy ... --env ...` 只会临时覆盖本次命令，不会修改 `.env` 文件。\n\n## 常用命令\n\n### 1. 验证安装\n\n```bash\nqslazy --help\nqslazy task --help\nqslazy update --help\n```\n\n### 2. 查看订阅\n\n```bash\nqslazy task list --env <skills-dir>/quark-lazy-cli/.env\n```\n\n### 3. 查看订阅任务状态\n\n```bash\nqslazy task status 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n### 4. 追更新集（必须先获得用户授权，禁止自行测试）\n\n禁止把更新命令当作安装测试或功能测试。只有用户明确要求更新、追新或修复订阅时，才可以执行。\n\n```bash\nLAZY_CLI_ADVISOR=code qslazy update new 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n### 5. 补全缺集 + 追新（必须先获得用户授权，禁止自行测试）\n\n禁止在用户只要求“看看”“检查”“测试 skill”时执行。先用 `task status` 汇报状态，再询问用户是否更新。\n\n```bash\nLAZY_CLI_ADVISOR=code qslazy update all 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n## 进阶能力索引\n\n### 了解用户订阅情况和资源发布规律\n\n读取文件：`references/订阅时间估算.md`\n\n用于：\n- 批量分析 `task status` 输出\n- 推算订阅更新时间\n- 维护订阅时间表\n\n### 配置完整 OpenClaw 定时任务\n\n读取文件：`references/OpenClaw定时任务.md`\n\n用于：\n- 创建定时更新任务\n- 设置通知参数\n- 维护定时任务\n\n### 让 Agent 做每日订阅汇报\n\n读取文件：`references/每日汇报.md`\n\n用于：\n- 首次使用先把 `./scripts/daily_report.sample.sh` 复制为 `./scripts/daily_report.local.sh`\n- 定时运行 `./scripts/daily_report.local.sh`\n- 汇报每日订阅状态\n- 发现新资源时先询问用户是否更新\n\n### 处理复杂资源选择\n\n读取文件：`references/顾问模式.md`\n\n用于：\n- 理解 `code / llm / agent / human` 顾问模式\n- 使用 `--add-prompt`\n- 处理 Agent JSON 决策\n\n## 铁律\n\n- 永远先观察再行动；用户只说“看看/检查/分析/测试 skill”时，只运行 `task list/status`。\n- 未获用户授权，不执行 `update new/all`，不新增、修改或删除定时任务。\n- 默认只根据 stdout 汇报；除非排错或用户要求，不读 log/报告文件，避免浪费 Token。\n- 不暴露 QAS API Token，不把真实 token 写进示例、回复、日志或定时任务。\n- 不擅自删除、改名或移动用户网盘文件。\n- 不直接修改 `scripts/*.sample.sh`。这些是升级可覆盖的样板脚本；用户定制应复制为 `scripts/*.local.sh`，并运行 `.local.sh`。\n- 不擅自研究、审查或修改 qslazy 源码。只有用户明确要求“看代码”“修 bug”“做开发/审查”时，才进入代码层；普通订阅维护只使用 CLI 和 reference 文档，避免浪费 Token。\n- 资源命名混乱时，不用 `code` 硬选，改用 `llm` 或 `agent`，并读取 `references/顾问模式.md`。\n\nFile v0.1.22:README.md\n\n# 夸克网盘懒人追剧、追番 SKILL\n\n基于 QAS（夸克网盘自动转存项目）的懒人追剧、追番 SKILL，也内置了一个 CLI 工具。即使 QAS 的剧集订阅失效，它也可以重新搜索资源、探查多级资源目录，并在多个最新候选资源中按用户偏好（如更高清晰度）转存新剧集和缺失剧集，并修复订阅链接。\n\n可以交给本地 OpenClaw、Hermes Agent 或其他 Agent 使用，用来设置定时任务、定时汇报，并在订阅失败时辅助修复。\n有 Python 运行环境的进阶用户，也可以把它当作命令行工具使用。\n\n本项目不是对QAS Web UI的替代，而聚焦订阅剧集的”偷懒的更新“。\n\n## 核心需求：\n\n- QAS 的订阅时常会失效<br>\n  手工查询、维护订阅任务很麻烦。等忙完想起来再去找新资源时，资源可能已经失效了。\n\n- Infuse、Emby 的海报墙被重复剧集搞乱<br>\n  分享资源内容可能重复，例如：凡人修仙传.S05E01.4K.mkv、凡人修仙传.S05E01.dv.mkv。用正则模板转存时，可能会把两个文件都转存下来，造成剧集文件混乱，让 Infuse、Emby 等媒体库的海报墙乱掉，需要手动删除、改名和维护。\n\n- 喜欢最高视频编码的资源<br>\n  如果偏好最高视频编码的资源，或希望选择较小体积的视频，通常需要手动下探搜索结果目录、挑选和比对。\n\n- Agent 来了，自己更懒了<br>\n  让 Agent 忙起来，自己安心当懒人。\n\n## 项目甜点：\n\n- 再也不操心订阅失效<br>\n\n- 节省 Token。命名规范、发布清晰的分享资源，可以交给 `code` 顾问执行；复杂资源情况则交给 Agent 或 LLM 大模型判断和决策<br>\n\n- Agent 可以使用 SKILL 分析资源的发布规律，并配置合理的订阅更新时间<br>\n\n- 多资源匹配用户需求、精准指定目标文件名做转存，有效规避资源目录多个相同剧集都下载搞了视频目录、资源发布时间和剧集顺序不相符情况 会看过的剧集<br>\n\n## 四种更新运行模式\n\n`LAZY_CLI_ADVISOR` 是网盘资源搜索后的决策机制，用来决定候选资源怎么选，不是聊天模式。\n\n- `code`：用代码规则自动决策。适合后台任务、资源发布规范的剧集、资源目录有“更新至n集”；速度快，无需交互，不消耗 LLM Token。<br>\n- `llm`：后台任务中引入大模型做资源选择。适合多版本编号冲突等复杂资源；可配合 `--add-prompt` 改AI大模型定制判断规则。例如：让大模型帮你判断是动漫还是真人版的剧集、你订阅任务是剧集的中文名称，告诉大模型剧集的英文名称等。<br>\n- `agent`：由当前 Agent 在和用户交互过程中判断候选资源。适合复杂场景的临时更新，或者在Openclaw Heateat机制里，维护和修复复杂订阅更新的场景使用。记得让Agent更新时，要求看订阅剧集.md文档中，你对剧集转存的要求。<br>\n- `human`：用户人工选择。适合用户想亲自确认资源的场景。<br>\n\n详细用法读取：`references/顾问模式.md`。\n---\n\n## 使用概览\n\n### 1. 手动追剧更新\n\n```bash\n# 追新：只转存高于当前最高集的新资源\nqslazy update new 凡人修仙传\n\n# 全量：补漏 + 追新\nqslazy update all 凡人修仙传\n```\n\n### 2. 查看订阅状态\n\n```bash\nqslazy task list\nqslazy task status 凡人修仙传\n```\n\n`task status` 会展示本地网盘状态、缺集情况、搜索到的资源发布时间，适合用来判断订阅是否正常，也可以帮助 Agent 推算最佳订阅更新时间。\n\n### 3. Agent / OpenClaw / Hermes 用法\n\n本项目提供 [SKILL.md](./SKILL.md)，包含更详细的 Agent 操作说明：\n\n- 如何查看订阅任务和单个剧集状态\n- 如何根据资源发布时间制定最佳订阅更新时间\n- `LAZY_CLI_ADVISOR=agent` 的决策文件工作流\n- Hermes Agent / OpenClaw 的后台执行与轮询方式\n- `--add-prompt` 的复杂资源筛选用法\n\n详细 Agent 用法请阅读 [SKILL.md](./SKILL.md)。\n\n---\n\n## 2. 安装和环境配置\n\n安装分两步：**Skill 文档**（告诉 Agent 怎么用）和 **qslazy CLI**（真正干活的命令）。两个都要装。\n\n### 第一步：安装 Skill 文档\n\nskills.sh / 通用 Agent：\n\n```bash\nnpx skills add jesustoachild/quark-lazy-cli\n```\n\nOpenClaw / ClawHub：\n\n```bash\nopenclaw skills install quark-lazy-cli\n```\n\n> Skill 安装只安装 SKILL.md、示例配置和辅助资源，不安装 Python 包。\n\n### 第二步：安装 qslazy CLI（必须）\n\n**pipx 安装（推荐）**：适用 Linux 服务器 / 已具备 Python 3.10+ 和 pipx 的用户。\n\n```bash\npipx install git+https://github.com/jesustoachild/quark-lazy-cli.git\n```\n\n**源码安装**：\n\n```bash\ngit clone https://github.com/jesustoachild/quark-lazy-cli.git\ncd quark-lazy-cli\npip install -e .\n```\n\n## 快速开始\n- 让你的 OpenClaw Agent 完成配置<br>\n- 或者，有 Python 运行环境的进阶用户可以手动配置和使用\n\n### 1. 配置环境\n\n```bash\ncd /<skill>/quark-lazy-cli\ncp .env.local.example .env\n```\n\n如果安装后的目录没有 `.env.local.example`，请读取 `references/环境变量.md`，根据里面的完整模板手动创建并编辑 `.env`。\n\n详细使用方式请阅读 `SKILL.md`。\n\n\n### 2. 查看订阅\n\n```bash\nqslazy task list\n```\n\n### 3. 查看订阅任务状态\n\n```bash\nqslazy task status 凡人修仙传\n```\n---\n\n### 4. 追更新集\n\n```bash\nqslazy update new 凡人修仙传\n```\n\n### 5. 补全缺集 + 追新\n\n```bash\nqslazy update all 凡人修仙传\n```\n\n\n## 许可证\n\nMIT\n\nFile v0.1.22:_meta.json\n\n{\n  \"ownerId\": \"kn76hk2rqrfzkebgwshctshq51813c92\",\n  \"slug\": \"quark-lazy-cli\",\n  \"version\": \"0.1.22\",\n  \"publishedAt\": 1780329124564\n}\n\nFile v0.1.22:references/OpenClaw定时任务.md\n\n# OpenClaw 定时任务\n\n本参考仅在用户要求配置 OpenClaw 定时订阅任务时读取。配置前必须已经运行过 `qslazy task status 剧名`，并根据资源发布时间向用户确认过“时间优先”或“画质优先”策略。\n\n## 推荐流程\n\n1. 用 `qslazy task status 剧名 --env <skills-dir>/quark-lazy-cli/.env` 查看网盘状态和资源发布时间。\n2. 询问用户偏好：\n   - 时间优先：最早有效资源发布时间 + 4 小时。\n   - 画质优先：最后一批高质量资源发布时间 + 4 小时。\n3. 用户确认后，再创建 OpenClaw 定时任务。\n4. 简单、命名规范的资源默认用 `LAZY_CLI_ADVISOR=code`，避免每次唤醒大模型。\n\n## 定时任务模板\n\n```bash\nopenclaw cron add \\\n  --name \"凡人修仙传-定时更新\" \\\n  --cron \"30 2 * * 0\" \\\n  --tz \"Asia/Shanghai\" \\\n  --session isolated \\\n  --agent AgentName \\\n  --announce \\\n  --channel feishu \\\n  --account bot-AgentName \\\n  --to \"USER_OPEN_ID\" \\\n  --message \"bash -c 'LAZY_CLI_ADVISOR=code qslazy update all 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env'\\n\\n仅根据 stdout 汇报结果，除非排错，不要读取 log 或报告文件。\"\n```\n\n替换项：\n\n- `凡人修仙传-定时更新`：任务显示名。\n- `30 2 * * 0`：定时表达式（cron 格式）。\n- `AgentName`：执行任务的 OpenClaw Agent。\n- `bot-AgentName`：通知账号。\n- `USER_OPEN_ID`：通知目标。\n- `<skills-dir>/quark-lazy-cli/.env`：实际 Skill 安装目录中的 `.env`。\n\n## 常用时间\n\n```text\n每周一 22:00 -> 0 22 * * 1\n每周六 14:00 -> 0 14 * * 6\n每周日 02:30 -> 30 2 * * 0\n每天 09:00 兜底 -> 0 9 * * *\n```\n\n## 汇报格式\n\n定时任务执行后，只根据 stdout 汇报。建议包含：\n\n```text\n订阅：\n当前：\n目标：\n偏好：\n更新结果：\n新增集数：\n补全剧集：\n```\n\n## 维护命令\n\n```bash\nopenclaw cron list\nopenclaw cron run <job-id>\nopenclaw cron edit <job-id> --cron \"0 22 * * 1\"\nopenclaw cron edit <job-id> --disable\nopenclaw cron edit <job-id> --enable\nopenclaw cron rm <job-id>\n```\n\n执行 `edit`、`rm` 等变更操作前，先向用户确认。\n\nFile v0.1.22:references/每日汇报.md\n\n# 每日汇报\n\n本参考用于配置 OpenClaw Agent 每日运行 `scripts/daily_report.local.sh`，汇总当天需要关注的订阅状态，并在发现网络资源高于网盘最高集时询问用户是否更新。\n\n## 使用场景\n\n用户说：\n\n- “帮我每天汇报订阅情况”\n- “每天检查今天该更新的剧”\n- “发现有新资源时问我要不要更新”\n- “帮我配置每日懒人汇报”\n\nAgent 应读取本参考。\n\n## 脚本说明\n\n脚本位置：\n\n```bash\n<skills-dir>/quark-lazy-cli/scripts/daily_report.local.sh\n```\n\n首次使用先从样板复制：\n\n```bash\ncp <skills-dir>/quark-lazy-cli/scripts/daily_report.sample.sh \\\n   <skills-dir>/quark-lazy-cli/scripts/daily_report.local.sh\n```\n\n用法：\n\n```bash\nbash <skills-dir>/quark-lazy-cli/scripts/daily_report.local.sh [星期几] [env路径]\n```\n\n示例：\n\n```bash\nbash <skills-dir>/quark-lazy-cli/scripts/daily_report.local.sh 6 <skills-dir>/quark-lazy-cli/.env\n```\n\n参数：\n\n- `星期几`：可选。`1=周一`，`2=周二`，...，`7=周日`。不传则自动使用当天。\n- `env路径`：可选。推荐传入 `<skills-dir>/quark-lazy-cli/.env`。\n\n使用前，需要把 `daily_report.local.sh` 里的 `剧名1`、`剧名2`、`剧名3` 替换成用户真实的 QAS 任务名。\n\n不要直接修改 `daily_report.sample.sh`。`.sample.sh` 是仓库提供的升级样板，后续升级可以覆盖；`.local.sh` 是用户自己的定制脚本，应保留在本地。\n\n脚本里的剧集分组应根据 [订阅时间估算.md](订阅时间估算.md) 中维护的“动漫订阅更新时间建议表”设计：\n\n- 周一汇报周一需要关注的剧。\n- 周二汇报周二需要关注的剧。\n- 如果某部剧有兜底重试时间，也可以同时放入兜底日期。\n- `run_status \"剧名1\"` 里的剧名必须使用表格里的 `taskname`，不要使用随意昵称。\n\n示例：\n\n```md\n| taskname | 剧名/显示名 | 更新策略 | 建议订阅更新时间 | 定时表达式 | 状态 | 备注 |\n|----------|-------------|----------|------------------|-------------|------|------|\n| 剧名1 | 剧名1 | 画质优先 | 周一 22:00 | `0 22 * * 1` | 正常 | |\n| 剧名2 | 剧名2 | 画质优先 | 周一 23:00 | `0 23 * * 1` | 正常 | |\n| 剧名3 | 剧名3 | 时间优先 | 周二 20:30 | `30 20 * * 2` | 正常 | |\n```\n\n对应脚本：\n\n```bash\n1)\n  echo \"📅 周一\"\n  run_status \"剧名1\"\n  run_status \"剧名2\"\n  ;;\n2)\n  echo \"📅 周二\"\n  run_status \"剧名3\"\n  ;;\n```\n\n## OpenClaw 定时任务模板\n\n```bash\nopenclaw cron add \\\n  --name \"qslazy-每日订阅汇报\" \\\n  --cron \"30 23 * * *\" \\\n  --tz \"Asia/Shanghai\" \\\n  --session isolated \\\n  --agent AgentName \\\n  --announce \\\n  --channel feishu \\\n  --account bot-AgentName \\\n  --to \"USER_OPEN_ID\" \\\n  --message \"bash -c 'bash <skills-dir>/quark-lazy-cli/scripts/daily_report.local.sh \\\"\\\" <skills-dir>/quark-lazy-cli/.env'\\n\\n请根据 stdout 汇报订阅状态。如果发现网络资源的最高集数高于网盘最高集，先询问用户是否执行 qslazy update all，不要自动更新。\"\n```\n\n替换项：\n\n- `AgentName`：执行汇报的 OpenClaw Agent。\n- `bot-AgentName`：通知账号。\n- `USER_OPEN_ID`：通知目标。\n- `<skills-dir>/quark-lazy-cli`：实际 Skill 安装目录。\n\n## Agent 汇报规则\n\nAgent 只根据 stdout 汇报，除非排错，不读取 log 或报告文件。\n\n每个任务建议汇报：\n\n```text\n[ 凡人修仙传 ]\n\n💾 网盘：最高 82（更新于：昨天），最低 78，缺[79, 80]\n🎯 目标：第82集以上资源\n💎 偏好：最高画质优先\n\n🔍 最新资源：今天和昨天\n🔍 资源更新至：83集\n\n状态总结：网盘最高 82 vs 资源更新至 83，需要更新；同时网盘缺[79, 80]，建议补漏。\n```\n\n状态文案建议：\n\n```text\n状态总结：网盘最高 X vs 资源更新至 X，网盘已是最新。\n状态总结：网盘最高 X vs 资源更新至 Y，需要更新。\n状态总结：网盘最高 X vs 资源更新至 Y，需要更新；同时网盘缺[...]，建议补漏。\n状态总结：资源编号或版本较复杂，需要人工确认。\n```\n\n## 发现新资源时的处理\n\n如果 stdout 显示网络候选资源高于网盘最高集，例如：\n\n```text\n网盘：最高 22\n候选资源：更新至 23 集\n```\n\nAgent 不能自动更新，必须先按上面的格式汇报，再问用户：\n\n```text\n我看到《剧名1》网盘最高到第 22 集，但网络资源已更新到第 23 集。\n是否现在执行 `qslazy update all 剧名1 --env <skills-dir>/quark-lazy-cli/.env` 追新并补漏？\n```\n\n用户确认后再执行：\n\n```bash\nLAZY_CLI_ADVISOR=code qslazy update all 剧名1 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n如果资源命名复杂、编号冲突或画质选择困难，改用：\n\n```bash\nLAZY_CLI_ADVISOR=llm qslazy update all 剧名1 \\\n  --env <skills-dir>/quark-lazy-cli/.env \\\n  --add-prompt \"写入该剧的特殊筛选规则\"\n```\n\n## 关键限制\n\n- 每日汇报是只读检查，默认不更新订阅。\n- 用户未授权时，不执行 `update new` 或 `update all`。\n- 发现网络资源更高时，只能询问用户是否更新。\n- 不要把真实 QAS Token、Feishu open_id 或用户私有路径写入公开模板。\n\nFile v0.1.22:references/环境变量.md\n\n# 环境变量\n\n如果安装后的 Skill 目录没有 `.env.local.example`，Agent 应根据本文件创建：\n\n```text\n<skills-dir>/quark-lazy-cli/.env\n```\n\n创建后必须替换：\n\n- `QAS_HOST`\n- `QAS_API_TOKEN`\n- 所有 `<skills-dir>` 占位符\n\n完整模板：\n\n```env\n# quark-lazy-cli 环境变量配置文件。推荐放在 Skill 目录根部，并通过 --env <skills-dir>/quark-lazy-cli/.env 指定。\n\n# QAS 服务配置\n# QAS 后端地址，例如：http://192.168.1.10:15305\nQAS_HOST=http://your-qas-host:port\n# QAS API Token，可在 QAS Web 管理页面查看\nQAS_API_TOKEN=your-qas-api-token\n\n# 系统及搜索策略配置\n# LAZY_CLI_EP_SELECTION_POLICY: 选片策略 prefer_quality=最高画质 prefer_size=最大体积\nLAZY_CLI_EP_SELECTION_POLICY=prefer_quality\n# LAZY_CLI_SEARCH_BATCH_DISP: 搜索结果分页显示数量\nLAZY_CLI_SEARCH_BATCH_DISP=30\n# LAZY_CLI_SEARCH_EXPIRATION_DAYS: 资源新鲜度阈值（天），超过则视为旧资源，根据剧集更新频率而定，LLM 和 code 顾问，只看新鲜资源\nLAZY_CLI_SEARCH_EXPIRATION_DAYS=7\n# LAZY_CLI_DRILL_MAX_DEPTH: BFS探查子目录最大深度\nLAZY_CLI_DRILL_MAX_DEPTH=3\n# LAZY_CLI_MAX_SEARCH_BREADTH: 最大搜索有效资源个数\nLAZY_CLI_MAX_SEARCH_BREADTH=10\n\n# Advisor 模式：human（默认）/ code / llm / agent\nLAZY_CLI_ADVISOR=code\nLAZY_CLI_HUMAN_FILTER=true\n\n# Agent 顾问配置（LAZY_CLI_ADVISOR=agent 时生效）\n\nLAZY_CLI_AGENT_POLL_INTERVAL=15\n\n# LLM 顾问配置（可选，仅 LAZY_CLI_ADVISOR=llm 时生效）\n# 支持 OpenAI-compatible API 服务\nLAZY_CLI_LLM_OPENAI_API_BASE=https://api.example.com/v1\nLAZY_CLI_LLM_OPENAI_API_KEY=your-api-key\nLAZY_CLI_LLM_OPENAI_MODEL=your-model-name\nLAZY_CLI_LLM_TEMPERATURE=0.4\n\n\n# 日志配置\nLAZY_CLI_DEBUG=false\n\n# 建议使用 Skill 目录下的 runtime 目录，便于 Agent 清理和迁移\nLAZY_CLI_LOG_DIR=<skills-dir>/quark-lazy-cli/runtime/logs\nLAZY_CLI_REPORT_DIR=<skills-dir>/quark-lazy-cli/runtime/report\nLAZY_CLI_AGENT_MSG_DIR=<skills-dir>/quark-lazy-cli/runtime/message\n```\n\n环境变量优先顺序：\n\n```text\n命令行临时环境变量 > 系统环境变量 > --env 指定的 .env 文件 > 默认值\n```\n\nFile v0.1.22:references/订阅时间估算.md\n\n# 订阅时间估算\n\n本参考用于 Agent 根据 `qslazy task status` 或 `scripts/check_all_status.local.sh` 的批量输出，推算每部剧/番的最佳订阅更新时间，并写入订阅时间表。\n\n## 什么时候读取\n\n当用户说：\n\n- “帮我接管订阅维护”\n- “帮我看看所有剧什么时候更新合适”\n- “根据资源发布时间制定订阅时间”\n- “生成/更新动漫订阅时间表”\n\nAgent 应读取本参考。\n\n## 批量获取状态\n\n开发目录提供了批量巡检脚本样板。首次使用先复制为本地脚本，避免升级覆盖用户定制：\n\n```bash\ncp scripts/check_all_status.sample.sh scripts/check_all_status.local.sh\nbash scripts/check_all_status.local.sh\n```\n\n它会依次执行：\n\n```bash\nqslazy task list\nqslazy task status <taskname>\n```\n\n输出形态示例：\n\n```text\n================================================\n🔍 任务: '仙剑奇侠传.2025'\n\n  [ 仙剑奇侠传.2025 ] ⏳ Searching for 仙剑奇侠传...\n\n============================================================\n  📋 任务：仙剑奇侠传.2025\n  💾 网盘：最高 22（更新于：5天前），最低 1，无缺集\n  🎯 目标：第22集以上资源\n  💎 偏好：最高画质优先\n\n============================================================\n🔍 7 天内新鲜资源：搜索到 3 个，验证资源有效后：3 个\n============================================================\n\n  [1] [5天前 21:55 周二] 仙剑奇侠传三 4K臻彩MAX [更新至22集]\n  [2] [5天前 21:41 周二] 仙剑奇侠传叁(2025)4K 臻彩MAX S01E01 - E22 HIFI声 HiveWeb\n  [3] [6天前 15:13 周二] 仙剑奇侠传叁‎ (2025) 4K 更新至22集  仙剑奇侠传3动画版\n\n🔍 7-14 天旧资源：搜索到 1 个，验证资源有效后：0 个（其中 1 个失效）\n============================================================\n  [X] [9天前 18:30 周日] 仙剑奇侠传叁(2025)4K 旧资源（失效：分享地址已失效）\n```\n\n其中 `7` 来自 `LAZY_CLI_SEARCH_EXPIRATION_DAYS`。如果该环境变量改为 `5`，状态页会显示 `5 天内新鲜资源` 和 `5-10 天旧资源`。\n\n## 状态输出解读\n\n`qslazy task status` 会显示两个观察窗口：\n\n- `{LAZY_CLI_SEARCH_EXPIRATION_DAYS}` 天内新鲜资源。\n- `{LAZY_CLI_SEARCH_EXPIRATION_DAYS}` 到 `{LAZY_CLI_SEARCH_EXPIRATION_DAYS * 2}` 天旧资源。\n\n列表标记含义：\n\n- `[1]`、`[2]`、`[3]`：验证有效资源，可用于判断可下载资源和发布时间。\n- `[X]`：验证失效资源，仅用于观察发布规律，不可选择，不进入 advisor/BFS/下载流程。\n\n失效资源仍然有参考价值：\n\n- 如果同一资源站每天都发布但很快失效，说明它发布活跃但稳定性差。\n- 如果新鲜资源大多失效，而较晚发布的资源有效，订阅时间应更偏向画质优先或延后执行。\n- 如果旧资源持续失效，说明该源不适合作为长期订阅依据。\n\n注意：`update` 的 human 选择界面也会展示 `[X]` 失效资源，但 `[X]` 不占数字序号，不能被选择；LLM advisor 只接收有效资源列表，并只看到失效资源摘要。\n\n## 估算规则\n\nAgent 从每个任务的候选资源发布时间里提取：\n\n- 最早有效资源发布时间\n- 最后一批高质量资源发布时间\n- 失效资源发布时间和数量\n- 资源是否集中在同一天、同一时间段\n- 是否有旧资源或失效资源干扰\n- 网盘当前最高集和更新时间\n\n然后先问用户偏好：\n\n```text\n你希望订阅更新时间偏向哪种策略？\n1. 时间优先：按最早有效资源发布时间 + 4 小时安排，尽快看到更新。\n2. 画质优先：按最后一批高质量资源发布时间 + 4 小时安排，等待高码率、HDR/DV、字幕组或更完整资源。\n```\n\n默认建议：\n\n- 用户不明确选择时，使用画质优先。\n- 对经常延迟或资源波动大的剧，加一次次日上午兜底重试。\n- 对已下线或长期无新资源的剧，标为手动维护。\n- 如果新鲜资源中 `[X]` 很多，但有效资源集中在更晚时间，优先参考有效资源发布时间，不要按失效资源的最早时间提前订阅。\n- 如果 `[X]` 连续多周出现在同一发布源，可在备注中标记“该源易失效”，避免把它作为唯一订阅依据。\n\n## 示例推导\n\n### 仙剑奇侠传.2025\n\n候选资源：\n\n- 周二 21:55：4K 臻彩MAX，更新至 22 集\n- 周二 21:41：4K 臻彩MAX，S01E01 - E22\n- 周二 15:13：4K，更新至 22 集\n\n建议：\n\n- 时间优先：周二 19:13 以后。\n- 画质优先：周三 01:55 左右。\n- 如果用户偏好稳定高质量资源，建议周三 02:00。\n\n### 斗破苍穹\n\n候选资源：\n\n- 周六 18:48 到 20:23 集中发布。\n- 多个 4K / 10bit / 臻彩资源，更新至 199 集。\n\n建议：\n\n- 时间优先：周六 22:50 左右。\n- 画质优先：周日 00:30 左右。\n- 若用户不急，建议周日 00:30 或周日 01:00。\n\n## 订阅时间表模板\n\n| taskname | 剧名/显示名 | 更新策略 | 建议订阅更新时间 | 定时表达式 | 状态 | 备注 |\n|----------|-------------|----------|------------------|-------------|------|------|\n| 剧名1 | 剧名1 | 画质优先 | 周六 02:30 | `30 2 * * 6` | 正常 | 参看：剧名1 订阅特殊说明 |\n| 剧名2 | 剧名2 | 时间优先 | 周日 00:30 | `30 0 * * 0` | 正常 | |\n| 剧名3 | 剧名3 | 手动维护 | — | ❌ 已下线 | 暂停 | 资源下线或订阅暂停 |\n\n字段说明：\n\n- `taskname`：QAS 里的订阅任务名，也是 qslazy 命令参数。\n- `剧名/显示名`：给用户看的名称，可以比 `taskname` 更自然。\n- `更新策略`：`时间优先`、`画质优先`、`手动维护` 或用户指定策略。\n- `建议订阅更新时间`：自然语言时间，方便用户阅读。\n- `定时表达式`：OpenClaw 使用的 cron 格式时间表达式。\n- `状态`：`正常`、`暂停`、`手动维护`、`待确认` 等。\n- `备注`：特殊资源规则、用户偏好、下线原因或参考说明。\n\n## 订阅特殊说明示例\n\n### 剧名1  订阅特殊说明\n\n- 目前资源发布有 2 套剧集编号格式：\n  - A 编号格式：百炼成神第三季从 01 开始，剧集名特征是 2 位数字，例如“更新至 22 集”。\n  - B 编号格式：百炼成神从第一季到现在一直使用累计编号，例如 `EP127`。\n\n- 用户需求：\n  - 选择 A 编号格式的 URL。\n  - 使用 A 编号格式 URL 中的最新剧集编号。\n\n推荐执行方式：\n\n```bash\nLAZY_CLI_ADVISOR=llm qslazy update new 剧名1  \\\n  --env <skills-dir>/quark-lazy-cli/.env \\\n  --add-prompt \"目前资源发布有两套剧集编号格式：A 格式为第三季从 01 开始的两位数字编号，如更新至 22 集；B 格式为从第一季累计到现在的 EP1xx 编号，如 EP127。请选择 A 格式的 URL，并取 A 格式中的最新剧集编号。\"\n```\n\n## Agent 维护规则\n\n- 新增剧名前，先运行 `qslazy task status <taskname> --env <skills-dir>/quark-lazy-cli/.env`。\n- 根据 stdout 中的资源发布时间推算更新时间，不要凭空填写。\n- 配置定时任务前，必须向用户确认更新策略。\n- 已下线、资源不稳定或需要人工判断的剧，状态标记为 `手动维护` 或 `待确认`。\n- 特殊资源规则不要塞进主表，放到下方“订阅特殊说明”。\n\nFile v0.1.22:references/顾问模式.md\n\n# 顾问模式\n\n本参考用于复杂资源选择、LLM 顾问、Agent 顾问 JSON 决策，以及 OpenClaw/Hermes 后台轮询。\n\n## Advisor 模式\n\n`LAZY_CLI_ADVISOR` 决定资源选择方式。\n\n| 模式 | 适合场景 | Agent 行为 |\n|------|----------|------------|\n| `human` | 用户手动确认 | 让用户看候选资源并选择 |\n| `code` | 命名规范、集数清晰、资源简单 | 默认推荐，用规则自动选择 |\n| `llm` | 多版本、画质/字幕/编号偏好复杂 | 加 `--add-prompt` 说明偏好 |\n| `agent` | 外部 Agent 需要亲自判断候选资源 | 启动 CLI，读取 stdout，写 JSON 决策文件 |\n\nLLM 顾问配置仅在 `LAZY_CLI_ADVISOR=llm` 时需要：\n\n```env\nLAZY_CLI_LLM_OPENAI_API_BASE=https://api.example.com/v1\nLAZY_CLI_LLM_OPENAI_API_KEY=your-api-key\nLAZY_CLI_LLM_OPENAI_MODEL=your-model-name\n```\n\n## 复杂资源筛选：--add-prompt\n\n当资源存在多版本、多编号、多字幕组或排除条件时，使用 `--add-prompt` 明确选择规则。\n\n```bash\nLAZY_CLI_ADVISOR=llm qslazy update all 凡人修仙传 \\\n  --env <skills-dir>/quark-lazy-cli/.env \\\n  --add-prompt \"只选择 S03E01 重新编号格式，不选择 EP 累计格式；优先 4K 高码率，其次 WEB-DL。\"\n```\n\n常见提示：\n\n| 场景 | `--add-prompt` 示例 |\n|------|---------------------|\n| 特定画质 | `优先选择 4K DV 或 HDR，不选择 1080p` |\n| 特定字幕 | `优先选择内封中字资源` |\n| 编号冲突 | `只选 S03E01 重新编号格式，不选 EP 累计格式` |\n| 排除版本 | `排除国配版本，排除合集压缩包` |\n| 体积偏好 | `在集数完整的前提下，优先选择较小体积版本` |\n\n## Agent 顾问模式\n\n`LAZY_CLI_ADVISOR=agent` 用于让外部 Agent 自己判断候选资源。CLI 会在 stdout 输出候选资源列表和一个 `advisor__任务名__时间戳.json` 文件路径。\n\n启动时建议使用未缓冲输出：\n\n```bash\nPYTHONUNBUFFERED=1 LAZY_CLI_ADVISOR=agent qslazy update all 剧名 --env <skills-dir>/quark-lazy-cli/.env\n```\n\nAgent 看到决策文件路径后，写入 JSON：\n\n```json\n{\"selected\": [1, 2, 3, 4], \"max_ep\": 80}\n```\n\n字段含义：\n\n- `selected`：选择的候选资源序号，使用 stdout 中的 1-based 序号。\n- `max_ep`：Agent 根据候选标题判断出的最新集数。\n\n注意：\n\n- 不要向 stdin 输入选择。\n- 必须结合任务目标和候选资源标题判断。\n- 5 分钟内没有写入决策文件，CLI 会超时。\n\n## Hermes Agent / OpenClaw 轮询方式\n\n| 步骤 | Hermes Agent | OpenClaw |\n|------|--------------|----------|\n| 启动 CLI | `terminal(background=true, pty=true, command=\"PYTHONUNBUFFERED=1 ...\")` | `exec(command, pty=True, yieldMs=120000)` |\n| 等待/轮询 | `process(wait)` / `process(poll)` | `process(action=\"poll\", sessionId=session, timeout=...)` |\n| 写决策文件 | 手动写 `advisor__任务名__时间戳.json` | `open(...)` + `json.dump(...)` |\n| 超时 | 5 分钟 | 5 分钟（20 × 15s） |\n\nFile v0.1.22:assets/订阅时间表.md\n\n## 剧集订阅更新时间建议表\n\n以下是根据各剧集历史发布时间统计得出的**建议订阅更新时间**（已预留缓冲时间）：\n\n| 动漫名称 | 建议订阅更新时间 | cron 表达式 | 备注 |\n|---------|----------------|------------|------|\n| 剧集名-01 | 周一 22:00 | `0 22 * * 1` | 参看：剧集名-01 订阅特殊说明 |\n| 剧集名-02 | 周二 18:04 | `4 18 * * 2` | |\n| 剧集名-03 | — | ❌ 已下线 | 手动维护 |\n| 剧集名-04 | 周三 21:30 | `30 21 * * 3` | |\n| 剧集名-05 | 周四 21:20 | `20 21 * * 4` | |\n| 剧集名-06 | 周五 21:30 | `30 21 * * 5` | |\n| 剧集名-07 | 周四 19:01 | `1 19 * * 4` | |\n| 剧集名-08 | 周日 20:00 | `0 20 * * 0` | |\n| 剧集名-09 | 周五 19:02 | `2 19 * * 5` | |\n| 剧集名-10 | 周五 20:30 | `30 20 * * 5` | |\n| 剧集名-11 | 周五 23:00 | `0 23 * * 5` | |\n| 剧集名-12 | 周六 22:00 | `0 22 * * 6` | |\n| 剧集名-13 | 周六 19:00 | `0 19 * * 6` | |\n| 剧集名-14 | 周六 22:00 | `0 22 * * 6` | |\n| 剧集名-15 | 周六 22:10 | `10 22 * * 6` | |\n| 剧集名-16 | 周日 15:00 | `0 15 * * 0` | |\n| 剧集名-17 | 周日 22:00 | `0 22 * * 0` | |\n\n\n---\n## 剧集名-01 订阅特殊说明\n- 目前资源发布有2套剧集编号格式，\n  A编号格式，剧集名-01 第三季从01开始，剧集名特性是2为数字，如更新至22集\n  B编号格式，剧集名-01 第一季到现在一直未按新季从1开始，所以累计1xx集， 如EP127\n\n- 用户需求要选择：A编号格式的URL，和A编号格式的URL中的最新剧集编号\n\nFile v0.1.22:skill-card.md\n\n## Description:\n\nQuark Lazy Cli helps agents and advanced Python users maintain QAS-backed Quark cloud-drive TV and anime subscriptions by checking tasks, finding replacement resources, and updating or repairing missing episodes after user authorization.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[jesustoachild](https://clawhub.ai/user/jesustoachild)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users, developers, and agent operators use this skill to maintain QAS-backed Quark cloud-drive media subscriptions, inspect subscription status, plan scheduled checks, and run authorized update or repair workflows.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill handles powerful QAS and LLM credentials.\n\nMitigation: Use only trusted local or HTTPS QAS endpoints, rotate and limit tokens, and avoid exposing tokens in examples, logs, reports, or scheduled tasks.\n\nRisk: Sample automation includes unsafe transport or shell environment sourcing patterns.\n\nMitigation: Review scripts before use and remove shell sourcing of .env from sample run scripts before adapting them for local automation.\n\nRisk: The artifact includes an unrelated Claude permission file.\n\nMitigation: Remove .claude/settings.local.json unless that local Claude permission is intentionally required.\n\n## Reference(s):\n\n- [OpenClaw Scheduled Tasks](references/OpenClaw定时任务.md)\n- [Daily Reporting](references/每日汇报.md)\n- [Environment Variables](references/环境变量.md)\n- [Subscription Time Estimation](references/订阅时间估算.md)\n- [Advisor Mode](references/顾问模式.md)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Code, Shell commands, Configuration, Guidance]\n\n**Output Format:** [Markdown guidance with shell command examples and configuration snippets]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May produce operational recommendations for QAS subscription checks and updates; update commands require explicit user authorization.]\n\n## Skill Version(s):\n\n0.1.22 (source: pyproject.toml and server release evidence)\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\nFile v0.1.22:.claude/settings.local.json\n\n{\n  \"permissions\": {\n    \"allow\": [\n      \"Bash(gh release *)\"\n    ]\n  }\n}\n\nFile v0.1.22:skills-lock.json\n\n{\n  \"version\": 1,\n  \"skills\": {\n    \"quark-lazy-cli\": {\n      \"source\": \"jesustoachild/quark-lazy-cli\",\n      \"sourceType\": \"github\",\n      \"skillPath\": \"SKILL.md\",\n      \"computedHash\": \"3702bd1b9267170319101c3eca4fa10e47e5fc17a212fb838618a70b2eb200dd\"\n    }\n  }\n}\n\nArchive v0.1.20: 22 files, 66868 bytes\n\nFiles: assets/订阅时间表.md (1560b), pyproject.toml (533b), README.md (5608b), references/OpenClaw定时任务.md (2145b), references/每日汇报.md (5227b), references/环境变量.md (2172b), references/订阅时间估算.md (7348b), references/顾问模式.md (2973b), scripts/check_all_status.sample.sh (554b), scripts/daily_report.sample.sh (1564b), scripts/run_lazy_update.sample.sh (2398b), skill-card.md (2759b), SKILL.md (7219b), skills-lock.json (266b), src/quark_lazy_cli/__init__.py (71b), src/quark_lazy_cli/advisor.py (32907b), src/quark_lazy_cli/api.py (19607b), src/quark_lazy_cli/app.py (90648b), src/quark_lazy_cli/config.py (6858b), src/quark_lazy_cli/main.py (5749b), src/quark_lazy_cli/models.py (1579b), _meta.json (134b)\n\nFile v0.1.20:SKILL.md\n\n---\nname: quark-lazy-cli\ndescription: >-\n  基于 QAS（夸克网盘自动转存项目）的懒人追剧、追番 SKILL，也内置了一个 CLI 工具。即使 QAS\n  的剧集订阅失效，它也可以重新搜索资源、探查多级资源目录，并在多个最新候选资源中按用户偏好（如更高清晰度）转存新剧集和缺失剧集。可以交给本地\n  OpenClaw、Hermes Agent 或其他Claude Code, Codex Agent 使用，用来设置定时任务、定时汇报，并在订阅失败时辅助修复。有 Python\n  运行环境的进阶用户，也可以把它当作命令行工具使用。\n  \n---\n\n# quark-lazy-cli\n\n`quark-lazy-cli` 是给 Agent 使用的夸克网盘追剧、追番订阅维护 Skill；`qslazy` 是它内置的命令行工具。它依赖 QAS 后端，用来查看订阅、检查缺集、搜索候选资源，并在用户授权后转存新剧集或补全缺失剧集。\n\n`quark-lazy-cli` 不是 QAS Web 端的替代。它的核心功能聚焦在更新、修复更新失败、精准指定源资源文件转存，让 Agent 帮用户少操心地追新、补漏和维护订阅。\n\n## 四种运行模式\n\n`LAZY_CLI_ADVISOR` 是网盘资源搜索后的决策机制，用来决定候选资源怎么选，不是聊天模式。\n\n- `code`：用代码规则自动决策。适合后台任务、资源发布规范的剧集、资源目录有“更新至n集”；速度快，无需交互，不消耗 LLM Token。\n- `llm`：后台任务中引入大模型做资源选择。适合多版本编号冲突等复杂资源；可配合 `--add-prompt` 改AI大模型定制判断规则。例如：让大模型帮你判断是动漫还是真人版的剧集、你订阅任务是剧集的中文名称，告诉大模型剧集的英文名称等。\n- `agent`：由当前 Agent 在和用户交互过程中判断候选资源。适合复杂场景的临时更新，或者在Openclaw Heateat机制里，维护和修复复杂订阅更新的场景使用。记得让Agent更新时，要求看订阅剧集.md文档中，你对剧集转存的要求。\n- `human`：用户人工选择。适合用户想亲自确认资源的场景。\n\n详细用法读取：`references/顾问模式.md`。\n\n## 安装\n\n安装分两步：Skill 文档告诉 Agent 怎么用；`qslazy` CLI 是真正执行任务的命令。两个都要装。\n\n```bash\n# skills.sh / 通用 Agent\nnpx skills add jesustoachild/quark-lazy-cli\n\n# OpenClaw / ClawHub\nopenclaw skills install quark-lazy-cli\n\n# qslazy CLI\npipx install git+https://github.com/jesustoachild/quark-lazy-cli.git\n```\n\n## 配置环境变量\n\n### 1. 确认 `.env` 位置\n\n`.env` 固定放在 Skill 目录根部，不要放到全局目录：\n\n```text\n<skills-dir>/quark-lazy-cli/.env\n```\n\n### 2. 创建 `.env`\n\n如果安装后的 Skill 目录里带有 env 样板文件，直接复制成 `.env`：\n\n```bash\ncd <skills-dir>/quark-lazy-cli\n\ncp ./.env.local.example .env\n```\n\n如果安装后的目录没有 env 样板文件，就读取 `references/环境变量.md`，由 Agent 根据里面的完整模板创建并编辑 `.env`。\n\n### 3. 写入基础配置\n\n把下面内容写入 `<skills-dir>/quark-lazy-cli/.env`，并把占位值改成用户自己的 QAS 信息：\n\n```env\n# QAS 后端地址，例如：http://192.168.1.10:15305\nQAS_HOST=http://your-qas-host:port\n\n# QAS API Token，可在 QAS Web 管理页面查看\nQAS_API_TOKEN=your-qas-api-token\n\n# 网盘资源搜索选择的顾问模式：human / code / llm / agent\nLAZY_CLI_ADVISOR=code\n\n# 运行时目录，建议使用绝对路径，放在 Skill 目录下，便于 Agent 清理和迁移\nLAZY_CLI_LOG_DIR=<skills-dir>/quark-lazy-cli/runtime/logs\nLAZY_CLI_REPORT_DIR=<skills-dir>/quark-lazy-cli/runtime/report\nLAZY_CLI_AGENT_MSG_DIR=<skills-dir>/quark-lazy-cli/runtime/message\n```\n\n如果想在任意目录下运行，建议加入 `--env`：\n\n```bash\nqslazy update new 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n如果临时覆盖 `.env` 的配置，可以不更改.env，命令行示例：\n\n```bash\nLAZY_CLI_ADVISOR=llm qslazy update new 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n环境变量优先顺序从高到低：\n\n```text\n命令行临时环境变量 > 系统环境变量 > --env 指定的 .env 文件 > 默认值\n```\n\n因此 `LAZY_CLI_ADVISOR=llm qslazy ... --env ...` 只会临时覆盖本次命令，不会修改 `.env` 文件。\n\n## 常用命令\n\n### 1. 验证安装\n\n```bash\nqslazy --help\nqslazy task --help\nqslazy update --help\n```\n\n### 2. 查看订阅\n\n```bash\nqslazy task list --env <skills-dir>/quark-lazy-cli/.env\n```\n\n### 3. 查看订阅任务状态\n\n```bash\nqslazy task status 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n### 4. 追更新集（必须先获得用户授权，禁止自行测试）\n\n禁止把更新命令当作安装测试或功能测试。只有用户明确要求更新、追新或修复订阅时，才可以执行。\n\n```bash\nLAZY_CLI_ADVISOR=code qslazy update new 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n### 5. 补全缺集 + 追新（必须先获得用户授权，禁止自行测试）\n\n禁止在用户只要求“看看”“检查”“测试 skill”时执行。先用 `task status` 汇报状态，再询问用户是否更新。\n\n```bash\nLAZY_CLI_ADVISOR=code qslazy update all 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n## 进阶能力索引\n\n### 了解用户订阅情况和资源发布规律\n\n读取文件：`references/订阅时间估算.md`\n\n用于：\n- 批量分析 `task status` 输出\n- 推算订阅更新时间\n- 维护订阅时间表\n\n### 配置完整 OpenClaw 定时任务\n\n读取文件：`references/OpenClaw定时任务.md`\n\n用于：\n- 创建定时更新任务\n- 设置通知参数\n- 维护定时任务\n\n### 让 Agent 做每日订阅汇报\n\n读取文件：`references/每日汇报.md`\n\n用于：\n- 首次使用先把 `./scripts/daily_report.sample.sh` 复制为 `./scripts/daily_report.local.sh`\n- 定时运行 `./scripts/daily_report.local.sh`\n- 汇报每日订阅状态\n- 发现新资源时先询问用户是否更新\n\n### 处理复杂资源选择\n\n读取文件：`references/顾问模式.md`\n\n用于：\n- 理解 `code / llm / agent / human` 顾问模式\n- 使用 `--add-prompt`\n- 处理 Agent JSON 决策\n\n## 铁律\n\n- 永远先观察再行动；用户只说“看看/检查/分析/测试 skill”时，只运行 `task list/status`。\n- 未获用户授权，不执行 `update new/all`，不新增、修改或删除定时任务。\n- 默认只根据 stdout 汇报；除非排错或用户要求，不读 log/报告文件，避免浪费 Token。\n- 不暴露 QAS API Token，不把真实 token 写进示例、回复、日志或定时任务。\n- 不擅自删除、改名或移动用户网盘文件。\n- 不直接修改 `scripts/*.sample.sh`。这些是升级可覆盖的样板脚本；用户定制应复制为 `scripts/*.local.sh`，并运行 `.local.sh`。\n- 不擅自研究、审查或修改 qslazy 源码。只有用户明确要求“看代码”“修 bug”“做开发/审查”时，才进入代码层；普通订阅维护只使用 CLI 和 reference 文档，避免浪费 Token。\n- 资源命名混乱时，不用 `code` 硬选，改用 `llm` 或 `agent`，并读取 `references/顾问模式.md`。\n\nFile v0.1.20:README.md\n\n# 夸克网盘懒人追剧、追番 SKILL\n\n基于 QAS（夸克网盘自动转存项目）的懒人追剧、追番 SKILL，也内置了一个 CLI 工具。即使 QAS 的剧集订阅失效，它也可以重新搜索资源、探查多级资源目录，并在多个最新候选资源中按用户偏好（如更高清晰度）转存新剧集和缺失剧集，并修复订阅链接。\n\n可以交给本地 OpenClaw、Hermes Agent 或其他 Agent 使用，用来设置定时任务、定时汇报，并在订阅失败时辅助修复。\n有 Python 运行环境的进阶用户，也可以把它当作命令行工具使用。\n\n本项目不是对QAS Web UI的替代，而聚焦订阅剧集的”偷懒的更新“。\n\n## 核心需求：\n\n- QAS 的订阅时常会失效<br>\n  手工查询、维护订阅任务很麻烦。等忙完想起来再去找新资源时，资源可能已经失效了。\n\n- Infuse、Emby 的海报墙被重复剧集搞乱<br>\n  分享资源内容可能重复，例如：凡人修仙传.S05E01.4K.mkv、凡人修仙传.S05E01.dv.mkv。用正则模板转存时，可能会把两个文件都转存下来，造成剧集文件混乱，让 Infuse、Emby 等媒体库的海报墙乱掉，需要手动删除、改名和维护。\n\n- 喜欢最高视频编码的资源<br>\n  如果偏好最高视频编码的资源，或希望选择较小体积的视频，通常需要手动下探搜索结果目录、挑选和比对。\n\n- Agent 来了，自己更懒了<br>\n  让 Agent 忙起来，自己安心当懒人。\n\n## 项目甜点：\n\n- 再也不操心订阅失效<br>\n\n- 节省 Token。命名规范、发布清晰的分享资源，可以交给 `code` 顾问执行；复杂资源情况则交给 Agent 或 LLM 大模型判断和决策<br>\n\n- Agent 可以使用 SKILL 分析资源的发布规律，并配置合理的订阅更新时间<br>\n\n- 多资源匹配用户需求、精准指定目标文件名做转存，有效规避资源目录多个相同剧集都下载搞了视频目录、资源发布时间和剧集顺序不相符情况 会看过的剧集<br>\n\n## 四种更新运行模式\n\n`LAZY_CLI_ADVISOR` 是网盘资源搜索后的决策机制，用来决定候选资源怎么选，不是聊天模式。\n\n- `code`：用代码规则自动决策。适合后台任务、资源发布规范的剧集、资源目录有“更新至n集”；速度快，无需交互，不消耗 LLM Token。<br>\n- `llm`：后台任务中引入大模型做资源选择。适合多版本编号冲突等复杂资源；可配合 `--add-prompt` 改AI大模型定制判断规则。例如：让大模型帮你判断是动漫还是真人版的剧集、你订阅任务是剧集的中文名称，告诉大模型剧集的英文名称等。<br>\n- `agent`：由当前 Agent 在和用户交互过程中判断候选资源。适合复杂场景的临时更新，或者在Openclaw Heateat机制里，维护和修复复杂订阅更新的场景使用。记得让Agent更新时，要求看订阅剧集.md文档中，你对剧集转存的要求。<br>\n- `human`：用户人工选择。适合用户想亲自确认资源的场景。<br>\n\n详细用法读取：`references/顾问模式.md`。\n---\n\n## 使用概览\n\n### 1. 手动追剧更新\n\n```bash\n# 追新：只转存高于当前最高集的新资源\nqslazy update new 凡人修仙传\n\n# 全量：补漏 + 追新\nqslazy update all 凡人修仙传\n```\n\n### 2. 查看订阅状态\n\n```bash\nqslazy task list\nqslazy task status 凡人修仙传\n```\n\n`task status` 会展示本地网盘状态、缺集情况、搜索到的资源发布时间，适合用来判断订阅是否正常，也可以帮助 Agent 推算最佳订阅更新时间。\n\n### 3. Agent / OpenClaw / Hermes 用法\n\n本项目提供 [SKILL.md](./SKILL.md)，包含更详细的 Agent 操作说明：\n\n- 如何查看订阅任务和单个剧集状态\n- 如何根据资源发布时间制定最佳订阅更新时间\n- `LAZY_CLI_ADVISOR=agent` 的决策文件工作流\n- Hermes Agent / OpenClaw 的后台执行与轮询方式\n- `--add-prompt` 的复杂资源筛选用法\n\n详细 Agent 用法请阅读 [SKILL.md](./SKILL.md)。\n\n---\n\n## 2. 安装和环境配置\n\n安装分两步：**Skill 文档**（告诉 Agent 怎么用）和 **qslazy CLI**（真正干活的命令）。两个都要装。\n\n### 第一步：安装 Skill 文档\n\nskills.sh / 通用 Agent：\n\n```bash\nnpx skills add jesustoachild/quark-lazy-cli\n```\n\nOpenClaw / ClawHub：\n\n```bash\nopenclaw skills install quark-lazy-cli\n```\n\n> Skill 安装只安装 SKILL.md、示例配置和辅助资源，不安装 Python 包。\n\n### 第二步：安装 qslazy CLI（必须）\n\n**pipx 安装（推荐）**：适用 Linux 服务器 / 已具备 Python 3.10+ 和 pipx 的用户。\n\n```bash\npipx install git+https://github.com/jesustoachild/quark-lazy-cli.git\n```\n\n**源码安装**：\n\n```bash\ngit clone https://github.com/jesustoachild/quark-lazy-cli.git\ncd quark-lazy-cli\npip install -e .\n```\n\n## 快速开始\n- 让你的 OpenClaw Agent 完成配置<br>\n- 或者，有 Python 运行环境的进阶用户可以手动配置和使用\n\n### 1. 配置环境\n\n```bash\ncd /<skill>/quark-lazy-cli\ncp .env.local.example .env\n```\n\n如果安装后的目录没有 `.env.local.example`，请读取 `references/环境变量.md`，根据里面的完整模板手动创建并编辑 `.env`。\n\n详细使用方式请阅读 `SKILL.md`。\n\n\n### 2. 查看订阅\n\n```bash\nqslazy task list\n```\n\n### 3. 查看订阅任务状态\n\n```bash\nqslazy task status 凡人修仙传\n```\n---\n\n### 4. 追更新集\n\n```bash\nqslazy update new 凡人修仙传\n```\n\n### 5. 补全缺集 + 追新\n\n```bash\nqslazy update all 凡人修仙传\n```\n\n\n## 许可证\n\nMIT\n\nFile v0.1.20:_meta.json\n\n{\n  \"ownerId\": \"kn76hk2rqrfzkebgwshctshq51813c92\",\n  \"slug\": \"quark-lazy-cli\",\n  \"version\": \"0.1.20\",\n  \"publishedAt\": 1779715741795\n}\n\nFile v0.1.20:references/OpenClaw定时任务.md\n\n# OpenClaw 定时任务\n\n本参考仅在用户要求配置 OpenClaw 定时订阅任务时读取。配置前必须已经运行过 `qslazy task status 剧名`，并根据资源发布时间向用户确认过“时间优先”或“画质优先”策略。\n\n## 推荐流程\n\n1. 用 `qslazy task status 剧名 --env <skills-dir>/quark-lazy-cli/.env` 查看网盘状态和资源发布时间。\n2. 询问用户偏好：\n   - 时间优先：最早有效资源发布时间 + 4 小时。\n   - 画质优先：最后一批高质量资源发布时间 + 4 小时。\n3. 用户确认后，再创建 OpenClaw 定时任务。\n4. 简单、命名规范的资源默认用 `LAZY_CLI_ADVISOR=code`，避免每次唤醒大模型。\n\n## 定时任务模板\n\n```bash\nopenclaw cron add \\\n  --name \"凡人修仙传-定时更新\" \\\n  --cron \"30 2 * * 0\" \\\n  --tz \"Asia/Shanghai\" \\\n  --session isolated \\\n  --agent AgentName \\\n  --announce \\\n  --channel feishu \\\n  --account bot-AgentName \\\n  --to \"USER_OPEN_ID\" \\\n  --message \"bash -c 'LAZY_CLI_ADVISOR=code qslazy update all 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env'\\n\\n仅根据 stdout 汇报结果，除非排错，不要读取 log 或报告文件。\"\n```\n\n替换项：\n\n- `凡人修仙传-定时更新`：任务显示名。\n- `30 2 * * 0`：定时表达式（cron 格式）。\n- `AgentName`：执行任务的 OpenClaw Agent。\n- `bot-AgentName`：通知账号。\n- `USER_OPEN_ID`：通知目标。\n- `<skills-dir>/quark-lazy-cli/.env`：实际 Skill 安装目录中的 `.env`。\n\n## 常用时间\n\n```text\n每周一 22:00 -> 0 22 * * 1\n每周六 14:00 -> 0 14 * * 6\n每周日 02:30 -> 30 2 * * 0\n每天 09:00 兜底 -> 0 9 * * *\n```\n\n## 汇报格式\n\n定时任务执行后，只根据 stdout 汇报。建议包含：\n\n```text\n订阅：\n当前：\n目标：\n偏好：\n更新结果：\n新增集数：\n补全剧集：\n```\n\n## 维护命令\n\n```bash\nopenclaw cron list\nopenclaw cron run <job-id>\nopenclaw cron edit <job-id> --cron \"0 22 * * 1\"\nopenclaw cron edit <job-id> --disable\nopenclaw cron edit <job-id> --enable\nopenclaw cron rm <job-id>\n```\n\n执行 `edit`、`rm` 等变更操作前，先向用户确认。\n\nFile v0.1.20:references/每日汇报.md\n\n# 每日汇报\n\n本参考用于配置 OpenClaw Agent 每日运行 `scripts/daily_report.local.sh`，汇总当天需要关注的订阅状态，并在发现网络资源高于网盘最高集时询问用户是否更新。\n\n## 使用场景\n\n用户说：\n\n- “帮我每天汇报订阅情况”\n- “每天检查今天该更新的剧”\n- “发现有新资源时问我要不要更新”\n- “帮我配置每日懒人汇报”\n\nAgent 应读取本参考。\n\n## 脚本说明\n\n脚本位置：\n\n```bash\n<skills-dir>/quark-lazy-cli/scripts/daily_report.local.sh\n```\n\n首次使用先从样板复制：\n\n```bash\ncp <skills-dir>/quark-lazy-cli/scripts/daily_report.sample.sh \\\n   <skills-dir>/quark-lazy-cli/scripts/daily_report.local.sh\n```\n\n用法：\n\n```bash\nbash <skills-dir>/quark-lazy-cli/scripts/daily_report.local.sh [星期几] [env路径]\n```\n\n示例：\n\n```bash\nbash <skills-dir>/quark-lazy-cli/scripts/daily_report.local.sh 6 <skills-dir>/quark-lazy-cli/.env\n```\n\n参数：\n\n- `星期几`：可选。`1=周一`，`2=周二`，...，`7=周日`。不传则自动使用当天。\n- `env路径`：可选。推荐传入 `<skills-dir>/quark-lazy-cli/.env`。\n\n使用前，需要把 `daily_report.local.sh` 里的 `剧名1`、`剧名2`、`剧名3` 替换成用户真实的 QAS 任务名。\n\n不要直接修改 `daily_report.sample.sh`。`.sample.sh` 是仓库提供的升级样板，后续升级可以覆盖；`.local.sh` 是用户自己的定制脚本，应保留在本地。\n\n脚本里的剧集分组应根据 [订阅时间估算.md](订阅时间估算.md) 中维护的“动漫订阅更新时间建议表”设计：\n\n- 周一汇报周一需要关注的剧。\n- 周二汇报周二需要关注的剧。\n- 如果某部剧有兜底重试时间，也可以同时放入兜底日期。\n- `run_status \"剧名1\"` 里的剧名必须使用表格里的 `taskname`，不要使用随意昵称。\n\n示例：\n\n```md\n| taskname | 剧名/显示名 | 更新策略 | 建议订阅更新时间 | 定时表达式 | 状态 | 备注 |\n|----------|-------------|----------|------------------|-------------|------|------|\n| 剧名1 | 剧名1 | 画质优先 | 周一 22:00 | `0 22 * * 1` | 正常 | |\n| 剧名2 | 剧名2 | 画质优先 | 周一 23:00 | `0 23 * * 1` | 正常 | |\n| 剧名3 | 剧名3 | 时间优先 | 周二 20:30 | `30 20 * * 2` | 正常 | |\n```\n\n对应脚本：\n\n```bash\n1)\n  echo \"📅 周一\"\n  run_status \"剧名1\"\n  run_status \"剧名2\"\n  ;;\n2)\n  echo \"📅 周二\"\n  run_status \"剧名3\"\n  ;;\n```\n\n## OpenClaw 定时任务模板\n\n```bash\nopenclaw cron add \\\n  --name \"qslazy-每日订阅汇报\" \\\n  --cron \"30 23 * * *\" \\\n  --tz \"Asia/Shanghai\" \\\n  --session isolated \\\n  --agent AgentName \\\n  --announce \\\n  --channel feishu \\\n  --account bot-AgentName \\\n  --to \"USER_OPEN_ID\" \\\n  --message \"bash -c 'bash <skills-dir>/quark-lazy-cli/scripts/daily_report.local.sh \\\"\\\" <skills-dir>/quark-lazy-cli/.env'\\n\\n请根据 stdout 汇报订阅状态。如果发现网络资源的最高集数高于网盘最高集，先询问用户是否执行 qslazy update all，不要自动更新。\"\n```\n\n替换项：\n\n- `AgentName`：执行汇报的 OpenClaw Agent。\n- `bot-AgentName`：通知账号。\n- `USER_OPEN_ID`：通知目标。\n- `<skills-dir>/quark-lazy-cli`：实际 Skill 安装目录。\n\n## Agent 汇报规则\n\nAgent 只根据 stdout 汇报，除非排错，不读取 log 或报告文件。\n\n每个任务建议汇报：\n\n```text\n[ 凡人修仙传 ]\n\n💾 网盘：最高 82（更新于：昨天），最低 78，缺[79, 80]\n🎯 目标：第82集以上资源\n💎 偏好：最高画质优先\n\n🔍 最新资源：今天和昨天\n🔍 资源更新至：83集\n\n状态总结：网盘最高 82 vs 资源更新至 83，需要更新；同时网盘缺[79, 80]，建议补漏。\n```\n\n状态文案建议：\n\n```text\n状态总结：网盘最高 X vs 资源更新至 X，网盘已是最新。\n状态总结：网盘最高 X vs 资源更新至 Y，需要更新。\n状态总结：网盘最高 X vs 资源更新至 Y，需要更新；同时网盘缺[...]，建议补漏。\n状态总结：资源编号或版本较复杂，需要人工确认。\n```\n\n## 发现新资源时的处理\n\n如果 stdout 显示网络候选资源高于网盘最高集，例如：\n\n```text\n网盘：最高 22\n候选资源：更新至 23 集\n```\n\nAgent 不能自动更新，必须先按上面的格式汇报，再问用户：\n\n```text\n我看到《剧名1》网盘最高到第 22 集，但网络资源已更新到第 23 集。\n是否现在执行 `qslazy update all 剧名1 --env <skills-dir>/quark-lazy-cli/.env` 追新并补漏？\n```\n\n用户确认后再执行：\n\n```bash\nLAZY_CLI_ADVISOR=code qslazy update all 剧名1 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n如果资源命名复杂、编号冲突或画质选择困难，改用：\n\n```bash\nLAZY_CLI_ADVISOR=llm qslazy update all 剧名1 \\\n  --env <skills-dir>/quark-lazy-cli/.env \\\n  --add-prompt \"写入该剧的特殊筛选规则\"\n```\n\n## 关键限制\n\n- 每日汇报是只读检查，默认不更新订阅。\n- 用户未授权时，不执行 `update new` 或 `update all`。\n- 发现网络资源更高时，只能询问用户是否更新。\n- 不要把真实 QAS Token、Feishu open_id 或用户私有路径写入公开模板。\n\nFile v0.1.20:references/环境变量.md\n\n# 环境变量\n\n如果安装后的 Skill 目录没有 `.env.local.example`，Agent 应根据本文件创建：\n\n```text\n<skills-dir>/quark-lazy-cli/.env\n```\n\n创建后必须替换：\n\n- `QAS_HOST`\n- `QAS_API_TOKEN`\n- 所有 `<skills-dir>` 占位符\n\n完整模板：\n\n```env\n# quark-lazy-cli 环境变量配置文件。推荐放在 Skill 目录根部，并通过 --env <skills-dir>/quark-lazy-cli/.env 指定。\n\n# QAS 服务配置\n# QAS 后端地址，例如：http://192.168.1.10:15305\nQAS_HOST=http://your-qas-host:port\n# QAS API Token，可在 QAS Web 管理页面查看\nQAS_API_TOKEN=your-qas-api-token\n\n# 系统及搜索策略配置\n# LAZY_CLI_EP_SELECTION_POLICY: 选片策略 prefer_quality=最高画质 prefer_size=最大体积\nLAZY_CLI_EP_SELECTION_POLICY=prefer_quality\n# LAZY_CLI_SEARCH_BATCH_DISP: 搜索结果分页显示数量\nLAZY_CLI_SEARCH_BATCH_DISP=30\n# LAZY_CLI_SEARCH_EXPIRATION_DAYS: 资源新鲜度阈值（天），超过则视为旧资源，根据剧集更新频率而定，LLM 和 code 顾问，只看新鲜资源\nLAZY_CLI_SEARCH_EXPIRATION_DAYS=7\n# LAZY_CLI_DRILL_MAX_DEPTH: BFS探查子目录最大深度\nLAZY_CLI_DRILL_MAX_DEPTH=3\n# LAZY_CLI_MAX_SEARCH_BREADTH: 最大搜索有效资源个数\nLAZY_CLI_MAX_SEARCH_BREADTH=10\n\n# Advisor 模式：human（默认）/ code / llm / agent\nLAZY_CLI_ADVISOR=code\nLAZY_CLI_HUMAN_FILTER=true\n\n# Agent 顾问配置（LAZY_CLI_ADVISOR=agent 时生效）\n\nLAZY_CLI_AGENT_POLL_INTERVAL=15\n\n# LLM 顾问配置（可选，仅 LAZY_CLI_ADVISOR=llm 时生效）\n# 支持 OpenAI-compatible API 服务\nLAZY_CLI_LLM_OPENAI_API_BASE=https://api.example.com/v1\nLAZY_CLI_LLM_OPENAI_API_KEY=your-api-key\nLAZY_CLI_LLM_OPENAI_MODEL=your-model-name\nLAZY_CLI_LLM_TEMPERATURE=0.4\n\n\n# 日志配置\nLAZY_CLI_DEBUG=false\n\n# 建议使用 Skill 目录下的 runtime 目录，便于 Agent 清理和迁移\nLAZY_CLI_LOG_DIR=<skills-dir>/quark-lazy-cli/runtime/logs\nLAZY_CLI_REPORT_DIR=<skills-dir>/quark-lazy-cli/runtime/report\nLAZY_CLI_AGENT_MSG_DIR=<skills-dir>/quark-lazy-cli/runtime/message\n```\n\n环境变量优先顺序：\n\n```text\n命令行临时环境变量 > 系统环境变量 > --env 指定的 .env 文件 > 默认值\n```\n\nFile v0.1.20:references/订阅时间估算.md\n\n# 订阅时间估算\n\n本参考用于 Agent 根据 `qslazy task status` 或 `scripts/check_all_status.local.sh` 的批量输出，推算每部剧/番的最佳订阅更新时间，并写入订阅时间表。\n\n## 什么时候读取\n\n当用户说：\n\n- “帮我接管订阅维护”\n- “帮我看看所有剧什么时候更新合适”\n- “根据资源发布时间制定订阅时间”\n- “生成/更新动漫订阅时间表”\n\nAgent 应读取本参考。\n\n## 批量获取状态\n\n开发目录提供了批量巡检脚本样板。首次使用先复制为本地脚本，避免升级覆盖用户定制：\n\n```bash\ncp scripts/check_all_status.sample.sh scripts/check_all_status.local.sh\nbash scripts/check_all_status.local.sh\n```\n\n它会依次执行：\n\n```bash\nqslazy task list\nqslazy task status <taskname>\n```\n\n输出形态示例：\n\n```text\n================================================\n🔍 任务: '仙剑奇侠传.2025'\n\n  [ 仙剑奇侠传.2025 ] ⏳ Searching for 仙剑奇侠传...\n\n============================================================\n  📋 任务：仙剑奇侠传.2025\n  💾 网盘：最高 22（更新于：5天前），最低 1，无缺集\n  🎯 目标：第22集以上资源\n  💎 偏好：最高画质优先\n\n============================================================\n🔍 7 天内新鲜资源：搜索到 3 个，验证资源有效后：3 个\n============================================================\n\n  [1] [5天前 21:55 周二] 仙剑奇侠传三 4K臻彩MAX [更新至22集]\n  [2] [5天前 21:41 周二] 仙剑奇侠传叁(2025)4K 臻彩MAX S01E01 - E22 HIFI声 HiveWeb\n  [3] [6天前 15:13 周二] 仙剑奇侠传叁‎ (2025) 4K 更新至22集  仙剑奇侠传3动画版\n\n🔍 7-14 天旧资源：搜索到 1 个，验证资源有效后：0 个（其中 1 个失效）\n============================================================\n  [X] [9天前 18:30 周日] 仙剑奇侠传叁(2025)4K 旧资源（失效：分享地址已失效）\n```\n\n其中 `7` 来自 `LAZY_CLI_SEARCH_EXPIRATION_DAYS`。如果该环境变量改为 `5`，状态页会显示 `5 天内新鲜资源` 和 `5-10 天旧资源`。\n\n## 状态输出解读\n\n`qslazy task status` 会显示两个观察窗口：\n\n- `{LAZY_CLI_SEARCH_EXPIRATION_DAYS}` 天内新鲜资源。\n- `{LAZY_CLI_SEARCH_EXPIRATION_DAYS}` 到 `{LAZY_CLI_SEARCH_EXPIRATION_DAYS * 2}` 天旧资源。\n\n列表标记含义：\n\n- `[1]`、`[2]`、`[3]`：验证有效资源，可用于判断可下载资源和发布时间。\n- `[X]`：验证失效资源，仅用于观察发布规律，不可选择，不进入 advisor/BFS/下载流程。\n\n失效资源仍然有参考价值：\n\n- 如果同一资源站每天都发布但很快失效，说明它发布活跃但稳定性差。\n- 如果新鲜资源大多失效，而较晚发布的资源有效，订阅时间应更偏向画质优先或延后执行。\n- 如果旧资源持续失效，说明该源不适合作为长期订阅依据。\n\n注意：`update` 的 human 选择界面也会展示 `[X]` 失效资源，但 `[X]` 不占数字序号，不能被选择；LLM advisor 只接收有效资源列表，并只看到失效资源摘要。\n\n## 估算规则\n\nAgent 从每个任务的候选资源发布时间里提取：\n\n- 最早有效资源发布时间\n- 最后一批高质量资源发布时间\n- 失效资源发布时间和数量\n- 资源是否集中在同一天、同一时间段\n- 是否有旧资源或失效资源干扰\n- 网盘当前最高集和更新时间\n\n然后先问用户偏好：\n\n```text\n你希望订阅更新时间偏向哪种策略？\n1. 时间优先：按最早有效资源发布时间 + 4 小时安排，尽快看到更新。\n2. 画质优先：按最后一批高质量资源发布时间 + 4 小时安排，等待高码率、HDR/DV、字幕组或更完整资源。\n```\n\n默认建议：\n\n- 用户不明确选择时，使用画质优先。\n- 对经常延迟或资源波动大的剧，加一次次日上午兜底重试。\n- 对已下线或长期无新资源的剧，标为手动维护。\n- 如果新鲜资源中 `[X]` 很多，但有效资源集中在更晚时间，优先参考有效资源发布时间，不要按失效资源的最早时间提前订阅。\n- 如果 `[X]` 连续多周出现在同一发布源，可在备注中标记“该源易失效”，避免把它作为唯一订阅依据。\n\n## 示例推导\n\n### 仙剑奇侠传.2025\n\n候选资源：\n\n- 周二 21:55：4K 臻彩MAX，更新至 22 集\n- 周二 21:41：4K 臻彩MAX，S01E01 - E22\n- 周二 15:13：4K，更新至 22 集\n\n建议：\n\n- 时间优先：周二 19:13 以后。\n- 画质优先：周三 01:55 左右。\n- 如果用户偏好稳定高质量资源，建议周三 02:00。\n\n### 斗破苍穹\n\n候选资源：\n\n- 周六 18:48 到 20:23 集中发布。\n- 多个 4K / 10bit / 臻彩资源，更新至 199 集。\n\n建议：\n\n- 时间优先：周六 22:50 左右。\n- 画质优先：周日 00:30 左右。\n- 若用户不急，建议周日 00:30 或周日 01:00。\n\n## 订阅时间表模板\n\n| taskname | 剧名/显示名 | 更新策略 | 建议订阅更新时间 | 定时表达式 | 状态 | 备注 |\n|----------|-------------|----------|------------------|-------------|------|------|\n| 剧名1 | 剧名1 | 画质优先 | 周六 02:30 | `30 2 * * 6` | 正常 | 参看：剧名1 订阅特殊说明 |\n| 剧名2 | 剧名2 | 时间优先 | 周日 00:30 | `30 0 * * 0` | 正常 | |\n| 剧名3 | 剧名3 | 手动维护 | — | ❌ 已下线 | 暂停 | 资源下线或订阅暂停 |\n\n字段说明：\n\n- `taskname`：QAS 里的订阅任务名，也是 qslazy 命令参数。\n- `剧名/显示名`：给用户看的名称，可以比 `taskname` 更自然。\n- `更新策略`：`时间优先`、`画质优先`、`手动维护` 或用户指定策略。\n- `建议订阅更新时间`：自然语言时间，方便用户阅读。\n- `定时表达式`：OpenClaw 使用的 cron 格式时间表达式。\n- `状态`：`正常`、`暂停`、`手动维护`、`待确认` 等。\n- `备注`：特殊资源规则、用户偏好、下线原因或参考说明。\n\n## 订阅特殊说明示例\n\n### 剧名1  订阅特殊说明\n\n- 目前资源发布有 2 套剧集编号格式：\n  - A 编号格式：百炼成神第三季从 01 开始，剧集名特征是 2 位数字，例如“更新至 22 集”。\n  - B 编号格式：百炼成神从第一季到现在一直使用累计编号，例如 `EP127`。\n\n- 用户需求：\n  - 选择 A 编号格式的 URL。\n  - 使用 A 编号格式 URL 中的最新剧集编号。\n\n推荐执行方式：\n\n```bash\nLAZY_CLI_ADVISOR=llm qslazy update new 剧名1  \\\n  --env <skills-dir>/quark-lazy-cli/.env \\\n  --add-prompt \"目前资源发布有两套剧集编号格式：A 格式为第三季从 01 开始的两位数字编号，如更新至 22 集；B 格式为从第一季累计到现在的 EP1xx 编号，如 EP127。请选择 A 格式的 URL，并取 A 格式中的最新剧集编号。\"\n```\n\n## Agent 维护规则\n\n- 新增剧名前，先运行 `qslazy task status <taskname> --env <skills-dir>/quark-lazy-cli/.env`。\n- 根据 stdout 中的资源发布时间推算更新时间，不要凭空填写。\n- 配置定时任务前，必须向用户确认更新策略。\n- 已下线、资源不稳定或需要人工判断的剧，状态标记为 `手动维护` 或 `待确认`。\n- 特殊资源规则不要塞进主表，放到下方“订阅特殊说明”。\n\nFile v0.1.20:references/顾问模式.md\n\n# 顾问模式\n\n本参考用于复杂资源选择、LLM 顾问、Agent 顾问 JSON 决策，以及 OpenClaw/Hermes 后台轮询。\n\n## Advisor 模式\n\n`LAZY_CLI_ADVISOR` 决定资源选择方式。\n\n| 模式 | 适合场景 | Agent 行为 |\n|------|----------|------------|\n| `human` | 用户手动确认 | 让用户看候选资源并选择 |\n| `code` | 命名规范、集数清晰、资源简单 | 默认推荐，用规则自动选择 |\n| `llm` | 多版本、画质/字幕/编号偏好复杂 | 加 `--add-prompt` 说明偏好 |\n| `agent` | 外部 Agent 需要亲自判断候选资源 | 启动 CLI，读取 stdout，写 JSON 决策文件 |\n\nLLM 顾问配置仅在 `LAZY_CLI_ADVISOR=llm` 时需要：\n\n```env\nLAZY_CLI_LLM_OPENAI_API_BASE=https://api.example.com/v1\nLAZY_CLI_LLM_OPENAI_API_KEY=your-api-key\nLAZY_CLI_LLM_OPENAI_MODEL=your-model-name\n```\n\n## 复杂资源筛选：--add-prompt\n\n当资源存在多版本、多编号、多字幕组或排除条件时，使用 `--add-prompt` 明确选择规则。\n\n```bash\nLAZY_CLI_ADVISOR=llm qslazy update all 凡人修仙传 \\\n  --env <skills-dir>/quark-lazy-cli/.env \\\n  --add-prompt \"只选择 S03E01 重新编号格式，不选择 EP 累计格式；优先 4K 高码率，其次 WEB-DL。\"\n```\n\n常见提示：\n\n| 场景 | `--add-prompt` 示例 |\n|------|---------------------|\n| 特定画质 | `优先选择 4K DV 或 HDR，不选择 1080p` |\n| 特定字幕 | `优先选择内封中字资源` |\n| 编号冲突 | `只选 S03E01 重新编号格式，不选 EP 累计格式` |\n| 排除版本 | `排除国配版本，排除合集压缩包` |\n| 体积偏好 | `在集数完整的前提下，优先选择较小体积版本` |\n\n## Agent 顾问模式\n\n`LAZY_CLI_ADVISOR=agent` 用于让外部 Agent 自己判断候选资源。CLI 会在 stdout 输出候选资源列表和一个 `advisor__任务名__时间戳.json` 文件路径。\n\n启动时建议使用未缓冲输出：\n\n```bash\nPYTHONUNBUFFERED=1 LAZY_CLI_ADVISOR=agent qslazy update all 剧名 --env <skills-dir>/quark-lazy-cli/.env\n```\n\nAgent 看到决策文件路径后，写入 JSON：\n\n```json\n{\"selected\": [1, 2, 3, 4], \"max_ep\": 80}\n```\n\n字段含义：\n\n- `selected`：选择的候选资源序号，使用 stdout 中的 1-based 序号。\n- `max_ep`：Agent 根据候选标题判断出的最新集数。\n\n注意：\n\n- 不要向 stdin 输入选择。\n- 必须结合任务目标和候选资源标题判断。\n- 5 分钟内没有写入决策文件，CLI 会超时。\n\n## Hermes Agent / OpenClaw 轮询方式\n\n| 步骤 | Hermes Agent | OpenClaw |\n|------|--------------|----------|\n| 启动 CLI | `terminal(background=true, pty=true, command=\"PYTHONUNBUFFERED=1 ...\")` | `exec(command, pty=True, yieldMs=120000)` |\n| 等待/轮询 | `process(wait)` / `process(poll)` | `process(action=\"poll\", sessionId=session, timeout=...)` |\n| 写决策文件 | 手动写 `advisor__任务名__时间戳.json` | `open(...)` + `json.dump(...)` |\n| 超时 | 5 分钟 | 5 分钟（20 × 15s） |\n\nFile v0.1.20:assets/订阅时间表.md\n\n## 剧集订阅更新时间建议表\n\n以下是根据各剧集历史发布时间统计得出的**建议订阅更新时间**（已预留缓冲时间）：\n\n| 动漫名称 | 建议订阅更新时间 | cron 表达式 | 备注 |\n|---------|----------------|------------|------|\n| 剧集名-01 | 周一 22:00 | `0 22 * * 1` | 参看：剧集名-01 订阅特殊说明 |\n| 剧集名-02 | 周二 18:04 | `4 18 * * 2` | |\n| 剧集名-03 | — | ❌ 已下线 | 手动维护 |\n| 剧集名-04 | 周三 21:30 | `30 21 * * 3` | |\n| 剧集名-05 | 周四 21:20 | `20 21 * * 4` | |\n| 剧集名-06 | 周五 21:30 | `30 21 * * 5` | |\n| 剧集名-07 | 周四 19:01 | `1 19 * * 4` | |\n| 剧集名-08 | 周日 20:00 | `0 20 * * 0` | |\n| 剧集名-09 | 周五 19:02 | `2 19 * * 5` | |\n| 剧集名-10 | 周五 20:30 | `30 20 * * 5` | |\n| 剧集名-11 | 周五 23:00 | `0 23 * * 5` | |\n| 剧集名-12 | 周六 22:00 | `0 22 * * 6` | |\n| 剧集名-13 | 周六 19:00 | `0 19 * * 6` | |\n| 剧集名-14 | 周六 22:00 | `0 22 * * 6` | |\n| 剧集名-15 | 周六 22:10 | `10 22 * * 6` | |\n| 剧集名-16 | 周日 15:00 | `0 15 * * 0` | |\n| 剧集名-17 | 周日 22:00 | `0 22 * * 0` | |\n\n\n---\n## 剧集名-01 订阅特殊说明\n- 目前资源发布有2套剧集编号格式，\n  A编号格式，剧集名-01 第三季从01开始，剧集名特性是2为数字，如更新至22集\n  B编号格式，剧集名-01 第一季到现在一直未按新季从1开始，所以累计1xx集， 如EP127\n\n- 用户需求要选择：A编号格式的URL，和A编号格式的URL中的最新剧集编号\n\nFile v0.1.20:skill-card.md\n\n## Description: <br>\nQuark Lazy Cli helps agents and advanced CLI users maintain QAS-based Quark Cloud media subscriptions by checking status, finding replacement resources, and transferring new or missing episodes after authorization. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[jesustoachild](https://clawhub.ai/user/jesustoachild) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users, developers, and agent operators use this skill to inspect and maintain QAS media subscription tasks, configure scheduled checks, and authorize updates when subscriptions fail or episodes are missing. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill requires sensitive QAS API credentials and can update subscriptions or transfer media. <br>\nMitigation: Store credentials only in the local .env file, do not expose tokens in logs or prompts, and run update commands only after explicit user authorization. <br>\nRisk: Server security guidance reports that one agent-decision path can select resources the operator did not actually see. <br>\nMitigation: Prefer code or human advisor modes for routine use, avoid agent mode until the selection-index issue is fixed, and require review before state-changing update commands. <br>\nRisk: LLM advisor mode may send media titles and library status to a configured model provider. <br>\nMitigation: Use LLM mode only with a provider the operator trusts, and prefer non-LLM modes when resource naming is straightforward. <br>\n\n\n## Reference(s): <br>\n- [ClawHub Skill Page](https://clawhub.ai/jesustoachild/quark-lazy-cli) <br>\n- [README](README.md) <br>\n- [Environment Variables](references/环境变量.md) <br>\n- [Advisor Modes](references/顾问模式.md) <br>\n- [OpenClaw Scheduled Tasks](references/OpenClaw定时任务.md) <br>\n- [Daily Report](references/每日汇报.md) <br>\n- [Subscription Time Estimation](references/订阅时间估算.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [guidance, markdown, shell commands, configuration] <br>\n**Output Format:** [Markdown guidance with inline shell commands and configuration snippets] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May also guide creation of local shell scripts and JSON decision files for agent advisor mode.] <br>\n\n## Skill Version(s): <br>\n0.1.20 (source: pyproject.toml and 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 v0.1.20:skills-lock.json\n\n{\n  \"version\": 1,\n  \"skills\": {\n    \"quark-lazy-cli\": {\n      \"source\": \"jesustoachild/quark-lazy-cli\",\n      \"sourceType\": \"github\",\n      \"skillPath\": \"SKILL.md\",\n      \"computedHash\": \"3702bd1b9267170319101c3eca4fa10e47e5fc17a212fb838618a70b2eb200dd\"\n    }\n  }\n}\n\nFile v0.1.20:pyproject.toml\n\n[project]\nname = \"quark-lazy-cli\"\nversion = \"0.1.20\"\ndescription = \"基于QAS的夸克云盘懒人追剧工具\"\nreadme = \"README.md\"\nrequires-python = \">=3.10\"\ndependencies = [\n    \"requests>=2.28.0\",\n    \"click>=8.0.0\",\n    \"python-dotenv>=1.0.0\",\n]\n\n[project.scripts]\nquark_lazy_cli = \"quark_lazy_cli.main:cli\"\nqslazy = \"quark_lazy_cli.main:cli\"\n\n[build-system]\nrequires = [\"setuptools>=61.0\"]\nbuild-backend = \"setuptools.build_meta\"\n\n[tool.setuptools.packages.find]\nwhere = [\"src\"]\ninclude = [\"quark_lazy_cli*\"]\nnamespaces = false\n\nArchive v0.1.19: 21 files, 65489 bytes\n\nFiles: assets/订阅时间表.md (1560b), pyproject.toml (533b), README.md (5608b), references/OpenClaw定时任务.md (2145b), references/每日汇报.md (5227b), references/环境变量.md (2172b), references/订阅时间估算.md (7348b), references/顾问模式.md (2973b), scripts/check_all_status.sample.sh (554b), scripts/daily_report.sample.sh (1564b), scripts/run_lazy_update.sample.sh (2398b), SKILL.md (7219b), skills-lock.json (266b), src/quark_lazy_cli/__init__.py (71b), src/quark_lazy_cli/advisor.py (32695b), src/quark_lazy_cli/api.py (19607b), src/quark_lazy_cli/app.py (91917b), src/quark_lazy_cli/config.py (6858b), src/quark_lazy_cli/main.py (5749b), src/quark_lazy_cli/models.py (1579b), _meta.json (134b)\n\nFile v0.1.19:SKILL.md\n\n---\nname: quark-lazy-cli\ndescription: >-\n  基于 QAS（夸克网盘自动转存项目）的懒人追剧、追番 SKILL，也内置了一个 CLI 工具。即使 QAS\n  的剧集订阅失效，它也可以重新搜索资源、探查多级资源目录，并在多个最新候选资源中按用户偏好（如更高清晰度）转存新剧集和缺失剧集。可以交给本地\n  OpenClaw、Hermes Agent 或其他Claude Code, Codex Agent 使用，用来设置定时任务、定时汇报，并在订阅失败时辅助修复。有 Python\n  运行环境的进阶用户，也可以把它当作命令行工具使用。\n  \n---\n\n# quark-lazy-cli\n\n`quark-lazy-cli` 是给 Agent 使用的夸克网盘追剧、追番订阅维护 Skill；`qslazy` 是它内置的命令行工具。它依赖 QAS 后端，用来查看订阅、检查缺集、搜索候选资源，并在用户授权后转存新剧集或补全缺失剧集。\n\n`quark-lazy-cli` 不是 QAS Web 端的替代。它的核心功能聚焦在更新、修复更新失败、精准指定源资源文件转存，让 Agent 帮用户少操心地追新、补漏和维护订阅。\n\n## 四种运行模式\n\n`LAZY_CLI_ADVISOR` 是网盘资源搜索后的决策机制，用来决定候选资源怎么选，不是聊天模式。\n\n- `code`：用代码规则自动决策。适合后台任务、资源发布规范的剧集、资源目录有“更新至n集”；速度快，无需交互，不消耗 LLM Token。\n- `llm`：后台任务中引入大模型做资源选择。适合多版本编号冲突等复杂资源；可配合 `--add-prompt` 改AI大模型定制判断规则。例如：让大模型帮你判断是动漫还是真人版的剧集、你订阅任务是剧集的中文名称，告诉大模型剧集的英文名称等。\n- `agent`：由当前 Agent 在和用户交互过程中判断候选资源。适合复杂场景的临时更新，或者在Openclaw Heateat机制里，维护和修复复杂订阅更新的场景使用。记得让Agent更新时，要求看订阅剧集.md文档中，你对剧集转存的要求。\n- `human`：用户人工选择。适合用户想亲自确认资源的场景。\n\n详细用法读取：`references/顾问模式.md`。\n\n## 安装\n\n安装分两步：Skill 文档告诉 Agent 怎么用；`qslazy` CLI 是真正执行任务的命令。两个都要装。\n\n```bash\n# skills.sh / 通用 Agent\nnpx skills add jesustoachild/quark-lazy-cli\n\n# OpenClaw / ClawHub\nopenclaw skills install quark-lazy-cli\n\n# qslazy CLI\npipx install git+https://github.com/jesustoachild/quark-lazy-cli.git\n```\n\n## 配置环境变量\n\n### 1. 确认 `.env` 位置\n\n`.env` 固定放在 Skill 目录根部，不要放到全局目录：\n\n```text\n<skills-dir>/quark-lazy-cli/.env\n```\n\n### 2. 创建 `.env`\n\n如果安装后的 Skill 目录里带有 env 样板文件，直接复制成 `.env`：\n\n```bash\ncd <skills-dir>/quark-lazy-cli\n\ncp ./.env.local.example .env\n```\n\n如果安装后的目录没有 env 样板文件，就读取 `references/环境变量.md`，由 Agent 根据里面的完整模板创建并编辑 `.env`。\n\n### 3. 写入基础配置\n\n把下面内容写入 `<skills-dir>/quark-lazy-cli/.env`，并把占位值改成用户自己的 QAS 信息：\n\n```env\n# QAS 后端地址，例如：http://192.168.1.10:15305\nQAS_HOST=http://your-qas-host:port\n\n# QAS API Token，可在 QAS Web 管理页面查看\nQAS_API_TOKEN=your-qas-api-token\n\n# 网盘资源搜索选择的顾问模式：human / code / llm / agent\nLAZY_CLI_ADVISOR=code\n\n# 运行时目录，建议使用绝对路径，放在 Skill 目录下，便于 Agent 清理和迁移\nLAZY_CLI_LOG_DIR=<skills-dir>/quark-lazy-cli/runtime/logs\nLAZY_CLI_REPORT_DIR=<skills-dir>/quark-lazy-cli/runtime/report\nLAZY_CLI_AGENT_MSG_DIR=<skills-dir>/quark-lazy-cli/runtime/message\n```\n\n如果想在任意目录下运行，建议加入 `--env`：\n\n```bash\nqslazy update new 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n如果临时覆盖 `.env` 的配置，可以不更改.env，命令行示例：\n\n```bash\nLAZY_CLI_ADVISOR=llm qslazy update new 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n环境变量优先顺序从高到低：\n\n```text\n命令行临时环境变量 > 系统环境变量 > --env 指定的 .env 文件 > 默认值\n```\n\n因此 `LAZY_CLI_ADVISOR=llm qslazy ... --env ...` 只会临时覆盖本次命令，不会修改 `.env` 文件。\n\n## 常用命令\n\n### 1. 验证安装\n\n```bash\nqslazy --help\nqslazy task --help\nqslazy update --help\n```\n\n### 2. 查看订阅\n\n```bash\nqslazy task list --env <skills-dir>/quark-lazy-cli/.env\n```\n\n### 3. 查看订阅任务状态\n\n```bash\nqslazy task status 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n### 4. 追更新集（必须先获得用户授权，禁止自行测试）\n\n禁止把更新命令当作安装测试或功能测试。只有用户明确要求更新、追新或修复订阅时，才可以执行。\n\n```bash\nLAZY_CLI_ADVISOR=code qslazy update new 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n### 5. 补全缺集 + 追新（必须先获得用户授权，禁止自行测试）\n\n禁止在用户只要求“看看”“检查”“测试 skill”时执行。先用 `task status` 汇报状态，再询问用户是否更新。\n\n```bash\nLAZY_CLI_ADVISOR=code qslazy update all 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n## 进阶能力索引\n\n### 了解用户订阅情况和资源发布规律\n\n读取文件：`references/订阅时间估算.md`\n\n用于：\n- 批量分析 `task status` 输出\n- 推算订阅更新时间\n- 维护订阅时间表\n\n### 配置完整 OpenClaw 定时任务\n\n读取文件：`references/OpenClaw定时任务.md`\n\n用于：\n- 创建定时更新任务\n- 设置通知参数\n- 维护定时任务\n\n### 让 Agent 做每日订阅汇报\n\n读取文件：`references/每日汇报.md`\n\n用于：\n- 首次使用先把 `./scripts/daily_report.sample.sh` 复制为 `./scripts/daily_report.local.sh`\n- 定时运行 `./scripts/daily_report.local.sh`\n- 汇报每日订阅状态\n- 发现新资源时先询问用户是否更新\n\n### 处理复杂资源选择\n\n读取文件：`references/顾问模式.md`\n\n用于：\n- 理解 `code / llm / agent / human` 顾问模式\n- 使用 `--add-prompt`\n- 处理 Agent JSON 决策\n\n## 铁律\n\n- 永远先观察再行动；用户只说“看看/检查/分析/测试 skill”时，只运行 `task list/status`。\n- 未获用户授权，不执行 `update new/all`，不新增、修改或删除定时任务。\n- 默认只根据 stdout 汇报；除非排错或用户要求，不读 log/报告文件，避免浪费 Token。\n- 不暴露 QAS API Token，不把真实 token 写进示例、回复、日志或定时任务。\n- 不擅自删除、改名或移动用户网盘文件。\n- 不直接修改 `scripts/*.sample.sh`。这些是升级可覆盖的样板脚本；用户定制应复制为 `scripts/*.local.sh`，并运行 `.local.sh`。\n- 不擅自研究、审查或修改 qslazy 源码。只有用户明确要求“看代码”“修 bug”“做开发/审查”时，才进入代码层；普通订阅维护只使用 CLI 和 reference 文档，避免浪费 Token。\n- 资源命名混乱时，不用 `code` 硬选，改用 `llm` 或 `agent`，并读取 `references/顾问模式.md`。\n\nFile v0.1.19:README.md\n\n# 夸克网盘懒人追剧、追番 SKILL\n\n基于 QAS（夸克网盘自动转存项目）的懒人追剧、追番 SKILL，也内置了一个 CLI 工具。即使 QAS 的剧集订阅失效，它也可以重新搜索资源、探查多级资源目录，并在多个最新候选资源中按用户偏好（如更高清晰度）转存新剧集和缺失剧集，并修复订阅链接。\n\n可以交给本地 OpenClaw、Hermes Agent 或其他 Agent 使用，用来设置定时任务、定时汇报，并在订阅失败时辅助修复。\n有 Python 运行环境的进阶用户，也可以把它当作命令行工具使用。\n\n本项目不是对QAS Web UI的替代，而聚焦订阅剧集的”偷懒的更新“。\n\n## 核心需求：\n\n- QAS 的订阅时常会失效<br>\n  手工查询、维护订阅任务很麻烦。等忙完想起来再去找新资源时，资源可能已经失效了。\n\n- Infuse、Emby 的海报墙被重复剧集搞乱<br>\n  分享资源内容可能重复，例如：凡人修仙传.S05E01.4K.mkv、凡人修仙传.S05E01.dv.mkv。用正则模板转存时，可能会把两个文件都转存下来，造成剧集文件混乱，让 Infuse、Emby 等媒体库的海报墙乱掉，需要手动删除、改名和维护。\n\n- 喜欢最高视频编码的资源<br>\n  如果偏好最高视频编码的资源，或希望选择较小体积的视频，通常需要手动下探搜索结果目录、挑选和比对。\n\n- Agent 来了，自己更懒了<br>\n  让 Agent 忙起来，自己安心当懒人。\n\n## 项目甜点：\n\n- 再也不操心订阅失效<br>\n\n- 节省 Token。命名规范、发布清晰的分享资源，可以交给 `code` 顾问执行；复杂资源情况则交给 Agent 或 LLM 大模型判断和决策<br>\n\n- Agent 可以使用 SKILL 分析资源的发布规律，并配置合理的订阅更新时间<br>\n\n- 多资源匹配用户需求、精准指定目标文件名做转存，有效规避资源目录多个相同剧集都下载搞了视频目录、资源发布时间和剧集顺序不相符情况 会看过的剧集<br>\n\n## 四种更新运行模式\n\n`LAZY_CLI_ADVISOR` 是网盘资源搜索后的决策机制，用来决定候选资源怎么选，不是聊天模式。\n\n- `code`：用代码规则自动决策。适合后台任务、资源发布规范的剧集、资源目录有“更新至n集”；速度快，无需交互，不消耗 LLM Token。<br>\n- `llm`：后台任务中引入大模型做资源选择。适合多版本编号冲突等复杂资源；可配合 `--add-prompt` 改AI大模型定制判断规则。例如：让大模型帮你判断是动漫还是真人版的剧集、你订阅任务是剧集的中文名称，告诉大模型剧集的英文名称等。<br>\n- `agent`：由当前 Agent 在和用户交互过程中判断候选资源。适合复杂场景的临时更新，或者在Openclaw Heateat机制里，维护和修复复杂订阅更新的场景使用。记得让Agent更新时，要求看订阅剧集.md文档中，你对剧集转存的要求。<br>\n- `human`：用户人工选择。适合用户想亲自确认资源的场景。<br>\n\n详细用法读取：`references/顾问模式.md`。\n---\n\n## 使用概览\n\n### 1. 手动追剧更新\n\n```bash\n# 追新：只转存高于当前最高集的新资源\nqslazy update new 凡人修仙传\n\n# 全量：补漏 + 追新\nqslazy update all 凡人修仙传\n```\n\n### 2. 查看订阅状态\n\n```bash\nqslazy task list\nqslazy task status 凡人修仙传\n```\n\n`task status` 会展示本地网盘状态、缺集情况、搜索到的资源发布时间，适合用来判断订阅是否正常，也可以帮助 Agent 推算最佳订阅更新时间。\n\n### 3. Agent / OpenClaw / Hermes 用法\n\n本项目提供 [SKILL.md](./SKILL.md)，包含更详细的 Agent 操作说明：\n\n- 如何查看订阅任务和单个剧集状态\n- 如何根据资源发布时间制定最佳订阅更新时间\n- `LAZY_CLI_ADVISOR=agent` 的决策文件工作流\n- Hermes Agent / OpenClaw 的后台执行与轮询方式\n- `--add-prompt` 的复杂资源筛选用法\n\n详细 Agent 用法请阅读 [SKILL.md](./SKILL.md)。\n\n---\n\n## 2. 安装和环境配置\n\n安装分两步：**Skill 文档**（告诉 Agent 怎么用）和 **qslazy CLI**（真正干活的命令）。两个都要装。\n\n### 第一步：安装 Skill 文档\n\nskills.sh / 通用 Agent：\n\n```bash\nnpx skills add jesustoachild/quark-lazy-cli\n```\n\nOpenClaw / ClawHub：\n\n```bash\nopenclaw skills install quark-lazy-cli\n```\n\n> Skill 安装只安装 SKILL.md、示例配置和辅助资源，不安装 Python 包。\n\n### 第二步：安装 qslazy CLI（必须）\n\n**pipx 安装（推荐）**：适用 Linux 服务器 / 已具备 Python 3.10+ 和 pipx 的用户。\n\n```bash\npipx install git+https://github.com/jesustoachild/quark-lazy-cli.git\n```\n\n**源码安装**：\n\n```bash\ngit clone https://github.com/jesustoachild/quark-lazy-cli.git\ncd quark-lazy-cli\npip install -e .\n```\n\n## 快速开始\n- 让你的 OpenClaw Agent 完成配置<br>\n- 或者，有 Python 运行环境的进阶用户可以手动配置和使用\n\n### 1. 配置环境\n\n```bash\ncd /<skill>/quark-lazy-cli\ncp .env.local.example .env\n```\n\n如果安装后的目录没有 `.env.local.example`，请读取 `references/环境变量.md`，根据里面的完整模板手动创建并编辑 `.env`。\n\n详细使用方式请阅读 `SKILL.md`。\n\n\n### 2. 查看订阅\n\n```bash\nqslazy task list\n```\n\n### 3. 查看订阅任务状态\n\n```bash\nqslazy task status 凡人修仙传\n```\n---\n\n### 4. 追更新集\n\n```bash\nqslazy update new 凡人修仙传\n```\n\n### 5. 补全缺集 + 追新\n\n```bash\nqslazy update all 凡人修仙传\n```\n\n\n## 许可证\n\nMIT\n\nFile v0.1.19:_meta.json\n\n{\n  \"ownerId\": \"kn76hk2rqrfzkebgwshctshq51813c92\",\n  \"slug\": \"quark-lazy-cli\",\n  \"version\": \"0.1.19\",\n  \"publishedAt\": 1779638077745\n}\n\nFile v0.1.19:references/OpenClaw定时任务.md\n\n# OpenClaw 定时任务\n\n本参考仅在用户要求配置 OpenClaw 定时订阅任务时读取。配置前必须已经运行过 `qslazy task status 剧名`，并根据资源发布时间向用户确认过“时间优先”或“画质优先”策略。\n\n## 推荐流程\n\n1. 用 `qslazy task status 剧名 --env <skills-dir>/quark-lazy-cli/.env` 查看网盘状态和资源发布时间。\n2. 询问用户偏好：\n   - 时间优先：最早有效资源发布时间 + 4 小时。\n   - 画质优先：最后一批高质量资源发布时间 + 4 小时。\n3. 用户确认后，再创建 OpenClaw 定时任务。\n4. 简单、命名规范的资源默认用 `LAZY_CLI_ADVISOR=code`，避免每次唤醒大模型。\n\n## 定时任务模板\n\n```bash\nopenclaw cron add \\\n  --name \"凡人修仙传-定时更新\" \\\n  --cron \"30 2 * * 0\" \\\n  --tz \"Asia/Shanghai\" \\\n  --session isolated \\\n  --agent AgentName \\\n  --announce \\\n  --channel feishu \\\n  --account bot-AgentName \\\n  --to \"USER_OPEN_ID\" \\\n  --message \"bash -c 'LAZY_CLI_ADVISOR=code qslazy update all 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env'\\n\\n仅根据 stdout 汇报结果，除非排错，不要读取 log 或报告文件。\"\n```\n\n替换项：\n\n- `凡人修仙传-定时更新`：任务显示名。\n- `30 2 * * 0`：定时表达式（cron 格式）。\n- `AgentName`：执行任务的 OpenClaw Agent。\n- `bot-AgentName`：通知账号。\n- `USER_OPEN_ID`：通知目标。\n- `<skills-dir>/quark-lazy-cli/.env`：实际 Skill 安装目录中的 `.env`。\n\n## 常用时间\n\n```text\n每周一 22:00 -> 0 22 * * 1\n每周六 14:00 -> 0 14 * * 6\n每周日 02:30 -> 30 2 * * 0\n每天 09:00 兜底 -> 0 9 * * *\n```\n\n## 汇报格式\n\n定时任务执行后，只根据 stdout 汇报。建议包含：\n\n```text\n订阅：\n当前：\n目标：\n偏好：\n更新结果：\n新增集数：\n补全剧集：\n```\n\n## 维护命令\n\n```bash\nopenclaw cron list\nopenclaw cron run <job-id>\nopenclaw cron edit <job-id> --cron \"0 22 * * 1\"\nopenclaw cron edit <job-id> --disable\nopenclaw cron edit <job-id> --enable\nopenclaw cron rm <job-id>\n```\n\n执行 `edit`、`rm` 等变更操作前，先向用户确认。\n\nFile v0.1.19:references/每日汇报.md\n\n# 每日汇报\n\n本参考用于配置 OpenClaw Agent 每日运行 `scripts/daily_report.local.sh`，汇总当天需要关注的订阅状态，并在发现网络资源高于网盘最高集时询问用户是否更新。\n\n## 使用场景\n\n用户说：\n\n- “帮我每天汇报订阅情况”\n- “每天检查今天该更新的剧”\n- “发现有新资源时问我要不要更新”\n- “帮我配置每日懒人汇报”\n\nAgent 应读取本参考。\n\n## 脚本说明\n\n脚本位置：\n\n```bash\n<skills-dir>/quark-lazy-cli/scripts/daily_report.local.sh\n```\n\n首次使用先从样板复制：\n\n```bash\ncp <skills-dir>/quark-lazy-cli/scripts/daily_report.sample.sh \\\n   <skills-dir>/quark-lazy-cli/scripts/daily_report.local.sh\n```\n\n用法：\n\n```bash\nbash <skills-dir>/quark-lazy-cli/scripts/daily_report.local.sh [星期几] [env路径]\n```\n\n示例：\n\n```bash\nbash <skills-dir>/quark-lazy-cli/scripts/daily_report.local.sh 6 <skills-dir>/quark-lazy-cli/.env\n```\n\n参数：\n\n- `星期几`：可选。`1=周一`，`2=周二`，...，`7=周日`。不传则自动使用当天。\n- `env路径`：可选。推荐传入 `<skills-dir>/quark-lazy-cli/.env`。\n\n使用前，需要把 `daily_report.local.sh` 里的 `剧名1`、`剧名2`、`剧名3` 替换成用户真实的 QAS 任务名。\n\n不要直接修改 `daily_report.sample.sh`。`.sample.sh` 是仓库提供的升级样板，后续升级可以覆盖；`.local.sh` 是用户自己的定制脚本，应保留在本地。\n\n脚本里的剧集分组应根据 [订阅时间估算.md](订阅时间估算.md) 中维护的“动漫订阅更新时间建议表”设计：\n\n- 周一汇报周一需要关注的剧。\n- 周二汇报周二需要关注的剧。\n- 如果某部剧有兜底重试时间，也可以同时放入兜底日期。\n- `run_status \"剧名1\"` 里的剧名必须使用表格里的 `taskname`，不要使用随意昵称。\n\n示例：\n\n```md\n| taskname | 剧名/显示名 | 更新策略 | 建议订阅更新时间 | 定时表达式 | 状态 | 备注 |\n|----------|-------------|----------|------------------|-------------|------|------|\n| 剧名1 | 剧名1 | 画质优先 | 周一 22:00 | `0 22 * * 1` | 正常 | |\n| 剧名2 | 剧名2 | 画质优先 | 周一 23:00 | `0 23 * * 1` | 正常 | |\n| 剧名3 | 剧名3 | 时间优先 | 周二 20:30 | `30 20 * * 2` | 正常 | |\n```\n\n对应脚本：\n\n```bash\n1)\n  echo \"📅 周一\"\n  run_status \"剧名1\"\n  run_status \"剧名2\"\n  ;;\n2)\n  echo \"📅 周二\"\n  run_status \"剧名3\"\n  ;;\n```\n\n## OpenClaw 定时任务模板\n\n```bash\nopenclaw cron add \\\n  --name \"qslazy-每日订阅汇报\" \\\n  --cron \"30 23 * * *\" \\\n  --tz \"Asia/Shanghai\" \\\n  --session isolated \\\n  --agent AgentName \\\n  --announce \\\n  --channel feishu \\\n  --account bot-AgentName \\\n  --to \"USER_OPEN_ID\" \\\n  --message \"bash -c 'bash <skills-dir>/quark-lazy-cli/scripts/daily_report.local.sh \\\"\\\" <skills-dir>/quark-lazy-cli/.env'\\n\\n请根据 stdout 汇报订阅状态。如果发现网络资源的最高集数高于网盘最高集，先询问用户是否执行 qslazy update all，不要自动更新。\"\n```\n\n替换项：\n\n- `AgentName`：执行汇报的 OpenClaw Agent。\n- `bot-AgentName`：通知账号。\n- `USER_OPEN_ID`：通知目标。\n- `<skills-dir>/quark-lazy-cli`：实际 Skill 安装目录。\n\n## Agent 汇报规则\n\nAgent 只根据 stdout 汇报，除非排错，不读取 log 或报告文件。\n\n每个任务建议汇报：\n\n```text\n[ 凡人修仙传 ]\n\n💾 网盘：最高 82（更新于：昨天），最低 78，缺[79, 80]\n🎯 目标：第82集以上资源\n💎 偏好：最高画质优先\n\n🔍 最新资源：今天和昨天\n🔍 资源更新至：83集\n\n状态总结：网盘最高 82 vs 资源更新至 83，需要更新；同时网盘缺[79, 80]，建议补漏。\n```\n\n状态文案建议：\n\n```text\n状态总结：网盘最高 X vs 资源更新至 X，网盘已是最新。\n状态总结：网盘最高 X vs 资源更新至 Y，需要更新。\n状态总结：网盘最高 X vs 资源更新至 Y，需要更新；同时网盘缺[...]，建议补漏。\n状态总结：资源编号或版本较复杂，需要人工确认。\n```\n\n## 发现新资源时的处理\n\n如果 stdout 显示网络候选资源高于网盘最高集，例如：\n\n```text\n网盘：最高 22\n候选资源：更新至 23 集\n```\n\nAgent 不能自动更新，必须先按上面的格式汇报，再问用户：\n\n```text\n我看到《剧名1》网盘最高到第 22 集，但网络资源已更新到第 23 集。\n是否现在执行 `qslazy update all 剧名1 --env <skills-dir>/quark-lazy-cli/.env` 追新并补漏？\n```\n\n用户确认后再执行：\n\n```bash\nLAZY_CLI_ADVISOR=code qslazy update all 剧名1 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n如果资源命名复杂、编号冲突或画质选择困难，改用：\n\n```bash\nLAZY_CLI_ADVISOR=llm qslazy update all 剧名1 \\\n  --env <skills-dir>/quark-lazy-cli/.env \\\n  --add-prompt \"写入该剧的特殊筛选规则\"\n```\n\n## 关键限制\n\n- 每日汇报是只读检查，默认不更新订阅。\n- 用户未授权时，不执行 `update new` 或 `update all`。\n- 发现网络资源更高时，只能询问用户是否更新。\n- 不要把真实 QAS Token、Feishu open_id 或用户私有路径写入公开模板。\n\nFile v0.1.19:references/环境变量.md\n\n# 环境变量\n\n如果安装后的 Skill 目录没有 `.env.local.example`，Agent 应根据本文件创建：\n\n```text\n<skills-dir>/quark-lazy-cli/.env\n```\n\n创建后必须替换：\n\n- `QAS_HOST`\n- `QAS_API_TOKEN`\n- 所有 `<skills-dir>` 占位符\n\n完整模板：\n\n```env\n# quark-lazy-cli 环境变量配置文件。推荐放在 Skill 目录根部，并通过 --env <skills-dir>/quark-lazy-cli/.env 指定。\n\n# QAS 服务配置\n# QAS 后端地址，例如：http://192.168.1.10:15305\nQAS_HOST=http://your-qas-host:port\n# QAS API Token，可在 QAS Web 管理页面查看\nQAS_API_TOKEN=your-qas-api-token\n\n# 系统及搜索策略配置\n# LAZY_CLI_EP_SELECTION_POLICY: 选片策略 prefer_quality=最高画质 prefer_size=最大体积\nLAZY_CLI_EP_SELECTION_POLICY=prefer_quality\n# LAZY_CLI_SEARCH_BATCH_DISP: 搜索结果分页显示数量\nLAZY_CLI_SEARCH_BATCH_DISP=30\n# LAZY_CLI_SEARCH_EXPIRATION_DAYS: 资源新鲜度阈值（天），超过则视为旧资源，根据剧集更新频率而定，LLM 和 code 顾问，只看新鲜资源\nLAZY_CLI_SEARCH_EXPIRATION_DAYS=7\n# LAZY_CLI_DRILL_MAX_DEPTH: BFS探查子目录最大深度\nLAZY_CLI_DRILL_MAX_DEPTH=3\n# LAZY_CLI_MAX_SEARCH_BREADTH: 最大搜索有效资源个数\nLAZY_CLI_MAX_SEARCH_BREADTH=10\n\n# Advisor 模式：human（默认）/ code / llm / agent\nLAZY_CLI_ADVISOR=code\nLAZY_CLI_HUMAN_FILTER=true\n\n# Agent 顾问配置（LAZY_CLI_ADVISOR=agent 时生效）\n\nLAZY_CLI_AGENT_POLL_INTERVAL=15\n\n# LLM 顾问配置（可选，仅 LAZY_CLI_ADVISOR=llm 时生效）\n# 支持 OpenAI-compatible API 服务\nLAZY_CLI_LLM_OPENAI_API_BASE=https://api.example.com/v1\nLAZY_CLI_LLM_OPENAI_API_KEY=your-api-key\nLAZY_CLI_LLM_OPENAI_MODEL=your-model-name\nLAZY_CLI_LLM_TEMPERATURE=0.4\n\n\n# 日志配置\nLAZY_CLI_DEBUG=false\n\n# 建议使用 Skill 目录下的 runtime 目录，便于 Agent 清理和迁移\nLAZY_CLI_LOG_DIR=<skills-dir>/quark-lazy-cli/runtime/logs\nLAZY_CLI_REPORT_DIR=<skills-dir>/quark-lazy-cli/runtime/report\nLAZY_CLI_AGENT_MSG_DIR=<skills-dir>/quark-lazy-cli/runtime/message\n```\n\n环境变量优先顺序：\n\n```text\n命令行临时环境变量 > 系统环境变量 > --env 指定的 .env 文件 > 默认值\n```\n\nFile v0.1.19:references/订阅时间估算.md\n\n# 订阅时间估算\n\n本参考用于 Agent 根据 `qslazy task status` 或 `scripts/check_all_status.local.sh` 的批量输出，推算每部剧/番的最佳订阅更新时间，并写入订阅时间表。\n\n## 什么时候读取\n\n当用户说：\n\n- “帮我接管订阅维护”\n- “帮我看看所有剧什么时候更新合适”\n- “根据资源发布时间制定订阅时间”\n- “生成/更新动漫订阅时间表”\n\nAgent 应读取本参考。\n\n## 批量获取状态\n\n开发目录提供了批量巡检脚本样板。首次使用先复制为本地脚本，避免升级覆盖用户定制：\n\n```bash\ncp scripts/check_all_status.sample.sh scripts/check_all_status.local.sh\nbash scripts/check_all_status.local.sh\n```\n\n它会依次执行：\n\n```bash\nqslazy task list\nqslazy task status <taskname>\n```\n\n输出形态示例：\n\n```text\n================================================\n🔍 任务: '仙剑奇侠传.2025'\n\n  [ 仙剑奇侠传.2025 ] ⏳ Searching for 仙剑奇侠传...\n\n============================================================\n  📋 任务：仙剑奇侠传.2025\n  💾 网盘：最高 22（更新于：5天前），最低 1，无缺集\n  🎯 目标：第22集以上资源\n  💎 偏好：最高画质优先\n\n============================================================\n🔍 7 天内新鲜资源：搜索到 3 个，验证资源有效后：3 个\n============================================================\n\n  [1] [5天前 21:55 周二] 仙剑奇侠传三 4K臻彩MAX [更新至22集]\n  [2] [5天前 21:41 周二] 仙剑奇侠传叁(2025)4K 臻彩MAX S01E01 - E22 HIFI声 HiveWeb\n  [3] [6天前 15:13 周二] 仙剑奇侠传叁‎ (2025) 4K 更新至22集  仙剑奇侠传3动画版\n\n🔍 7-14 天旧资源：搜索到 1 个，验证资源有效后：0 个（其中 1 个失效）\n============================================================\n  [X] [9天前 18:30 周日] 仙剑奇侠传叁(2025)4K 旧资源（失效：分享地址已失效）\n```\n\n其中 `7` 来自 `LAZY_CLI_SEARCH_EXPIRATION_DAYS`。如果该环境变量改为 `5`，状态页会显示 `5 天内新鲜资源` 和 `5-10 天旧资源`。\n\n## 状态输出解读\n\n`qslazy task status` 会显示两个观察窗口：\n\n- `{LAZY_CLI_SEARCH_EXPIRATION_DAYS}` 天内新鲜资源。\n- `{LAZY_CLI_SEARCH_EXPIRATION_DAYS}` 到 `{LAZY_CLI_SEARCH_EXPIRATION_DAYS * 2}` 天旧资源。\n\n列表标记含义：\n\n- `[1]`、`[2]`、`[3]`：验证有效资源，可用于判断可下载资源和发布时间。\n- `[X]`：验证失效资源，仅用于观察发布规律，不可选择，不进入 advisor/BFS/下载流程。\n\n失效资源仍然有参考价值：\n\n- 如果同一资源站每天都发布但很快失效，说明它发布活跃但稳定性差。\n- 如果新鲜资源大多失效，而较晚发布的资源有效，订阅时间应更偏向画质优先或延后执行。\n- 如果旧资源持续失效，说明该源不适合作为长期订阅依据。\n\n注意：`update` 的 human 选择界面也会展示 `[X]` 失效资源，但 `[X]` 不占数字序号，不能被选择；LLM advisor 只接收有效资源列表，并只看到失效资源摘要。\n\n## 估算规则\n\nAgent 从每个任务的候选资源发布时间里提取：\n\n- 最早有效资源发布时间\n- 最后一批高质量资源发布时间\n- 失效资源发布时间和数量\n- 资源是否集中在同一天、同一时间段\n- 是否有旧资源或失效资源干扰\n- 网盘当前最高集和更新时间\n\n然后先问用户偏好：\n\n```text\n你希望订阅更新时间偏向哪种策略？\n1. 时间优先：按最早有效资源发布时间 + 4 小时安排，尽快看到更新。\n2. 画质优先：按最后一批高质量资源发布时间 + 4 小时安排，等待高码率、HDR/DV、字幕组或更完整资源。\n```\n\n默认建议：\n\n- 用户不明确选择时，使用画质优先。\n- 对经常延迟或资源波动大的剧，加一次次日上午兜底重试。\n- 对已下线或长期无新资源的剧，标为手动维护。\n- 如果新鲜资源中 `[X]` 很多，但有效资源集中在更晚时间，优先参考有效资源发布时间，不要按失效资源的最早时间提前订阅。\n- 如果 `[X]` 连续多周出现在同一发布源，可在备注中标记“该源易失效”，避免把它作为唯一订阅依据。\n\n## 示例推导\n\n### 仙剑奇侠传.2025\n\n候选资源：\n\n- 周二 21:55：4K 臻彩MAX，更新至 22 集\n- 周二 21:41：4K 臻彩MAX，S01E01 - E22\n- 周二 15:13：4K，更新至 22 集\n\n建议：\n\n- 时间优先：周二 19:13 以后。\n- 画质优先：周三 01:55 左右。\n- 如果用户偏好稳定高质量资源，建议周三 02:00。\n\n### 斗破苍穹\n\n候选资源：\n\n- 周六 18:48 到 20:23 集中发布。\n- 多个 4K / 10bit / 臻彩资源，更新至 199 集。\n\n建议：\n\n- 时间优先：周六 22:50 左右。\n- 画质优先：周日 00:30 左右。\n- 若用户不急，建议周日 00:30 或周日 01:00。\n\n## 订阅时间表模板\n\n| taskname | 剧名/显示名 | 更新策略 | 建议订阅更新时间 | 定时表达式 | 状态 | 备注 |\n|----------|-------------|----------|------------------|-------------|------|------|\n| 剧名1 | 剧名1 | 画质优先 | 周六 02:30 | `30 2 * * 6` | 正常 | 参看：剧名1 订阅特殊说明 |\n| 剧名2 | 剧名2 | 时间优先 | 周日 00:30 | `30 0 * * 0` | 正常 | |\n| 剧名3 | 剧名3 | 手动维护 | — | ❌ 已下线 | 暂停 | 资源下线或订阅暂停 |\n\n字段说明：\n\n- `taskname`：QAS 里的订阅任务名，也是 qslazy 命令参数。\n- `剧名/显示名`：给用户看的名称，可以比 `taskname` 更自然。\n- `更新策略`：`时间优先`、`画质优先`、`手动维护` 或用户指定策略。\n- `建议订阅更新时间`：自然语言时间，方便用户阅读。\n- `定时表达式`：OpenClaw 使用的 cron 格式时间表达式。\n- `状态`：`正常`、`暂停`、`手动维护`、`待确认` 等。\n- `备注`：特殊资源规则、用户偏好、下线原因或参考说明。\n\n## 订阅特殊说明示例\n\n### 剧名1  订阅特殊说明\n\n- 目前资源发布有 2 套剧集编号格式：\n  - A 编号格式：百炼成神第三季从 01 开始，剧集名特征是 2 位数字，例如“更新至 22 集”。\n  - B 编号格式：百炼成神从第一季到现在一直使用累计编号，例如 `EP127`。\n\n- 用户需求：\n  - 选择 A 编号格式的 URL。\n  - 使用 A 编号格式 URL 中的最新剧集编号。\n\n推荐执行方式：\n\n```bash\nLAZY_CLI_ADVISOR=llm qslazy update new 剧名1  \\\n  --env <skills-dir>/quark-lazy-cli/.env \\\n  --add-prompt \"目前资源发布有两套剧集编号格式：A 格式为第三季从 01 开始的两位数字编号，如更新至 22 集；B 格式为从第一季累计到现在的 EP1xx 编号，如 EP127。请选择 A 格式的 URL，并取 A 格式中的最新剧集编号。\"\n```\n\n## Agent 维护规则\n\n- 新增剧名前，先运行 `qslazy task status <taskname> --env <skills-dir>/quark-lazy-cli/.env`。\n- 根据 stdout 中的资源发布时间推算更新时间，不要凭空填写。\n- 配置定时任务前，必须向用户确认更新策略。\n- 已下线、资源不稳定或需要人工判断的剧，状态标记为 `手动维护` 或 `待确认`。\n- 特殊资源规则不要塞进主表，放到下方“订阅特殊说明”。\n\nFile v0.1.19:references/顾问模式.md\n\n# 顾问模式\n\n本参考用于复杂资源选择、LLM 顾问、Agent 顾问 JSON 决策，以及 OpenClaw/Hermes 后台轮询。\n\n## Advisor 模式\n\n`LAZY_CLI_ADVISOR` 决定资源选择方式。\n\n| 模式 | 适合场景 | Agent 行为 |\n|------|----------|------------|\n| `human` | 用户手动确认 | 让用户看候选资源并选择 |\n| `code` | 命名规范、集数清晰、资源简单 | 默认推荐，用规则自动选择 |\n| `llm` | 多版本、画质/字幕/编号偏好复杂 | 加 `--add-prompt` 说明偏好 |\n| `agent` | 外部 Agent 需要亲自判断候选资源 | 启动 CLI，读取 stdout，写 JSON 决策文件 |\n\nLLM 顾问配置仅在 `LAZY_CLI_ADVISOR=llm` 时需要：\n\n```env\nLAZY_CLI_LLM_OPENAI_API_BASE=https://api.example.com/v1\nLAZY_CLI_LLM_OPENAI_API_KEY=your-api-key\nLAZY_CLI_LLM_OPENAI_MODEL=your-model-name\n```\n\n## 复杂资源筛选：--add-prompt\n\n当资源存在多版本、多编号、多字幕组或排除条件时，使用 `--add-prompt` 明确选择规则。\n\n```bash\nLAZY_CLI_ADVISOR=llm qslazy update all 凡人修仙传 \\\n  --env <skills-dir>/quark-lazy-cli/.env \\\n  --add-prompt \"只选择 S03E01 重新编号格式，不选择 EP 累计格式；优先 4K 高码率，其次 WEB-DL。\"\n```\n\n常见提示：\n\n| 场景 | `--add-prompt` 示例 |\n|------|---------------------|\n| 特定画质 | `优先选择 4K DV 或 HDR，不选择 1080p` |\n| 特定字幕 | `优先选择内封中字资源` |\n| 编号冲突 | `只选 S03E01 重新编号格式，不选 EP 累计格式` |\n| 排除版本 | `排除国配版本，排除合集压缩包` |\n| 体积偏好 | `在集数完整的前提下，优先选择较小体积版本` |\n\n## Agent 顾问模式\n\n`LAZY_CLI_ADVISOR=agent` 用于让外部 Agent 自己判断候选资源。CLI 会在 stdout 输出候选资源列表和一个 `advisor__任务名__时间戳.json` 文件路径。\n\n启动时建议使用未缓冲输出：\n\n```bash\nPYTHONUNBUFFERED=1 LAZY_CLI_ADVISOR=agent qslazy update all 剧名 --env <skills-dir>/quark-lazy-cli/.env\n```\n\nAgent 看到决策文件路径后，写入 JSON：\n\n```json\n{\"selected\": [1, 2, 3, 4], \"max_ep\": 80}\n```\n\n字段含义：\n\n- `selected`：选择的候选资源序号，使用 stdout 中的 1-based 序号。\n- `max_ep`：Agent 根据候选标题判断出的最新集数。\n\n注意：\n\n- 不要向 stdin 输入选择。\n- 必须结合任务目标和候选资源标题判断。\n- 5 分钟内没有写入决策文件，CLI 会超时。\n\n## Hermes Agent / OpenClaw 轮询方式\n\n| 步骤 | Hermes Agent | OpenClaw |\n|------|--------------|----------|\n| 启动 CLI | `terminal(background=true, pty=true, command=\"PYTHONUNBUFFERED=1 ...\")` | `exec(command, pty=True, yieldMs=120000)` |\n| 等待/轮询 | `process(wait)` / `process(poll)` | `process(action=\"poll\", sessionId=session, timeout=...)` |\n| 写决策文件 | 手动写 `advisor__任务名__时间戳.json` | `open(...)` + `json.dump(...)` |\n| 超时 | 5 分钟 | 5 分钟（20 × 15s） |\n\nFile v0.1.19:assets/订阅时间表.md\n\n## 剧集订阅更新时间建议表\n\n以下是根据各剧集历史发布时间统计得出的**建议订阅更新时间**（已预留缓冲时间）：\n\n| 动漫名称 | 建议订阅更新时间 | cron 表达式 | 备注 |\n|---------|----------------|------------|------|\n| 剧集名-01 | 周一 22:00 | `0 22 * * 1` | 参看：剧集名-01 订阅特殊说明 |\n| 剧集名-02 | 周二 18:04 | `4 18 * * 2` | |\n| 剧集名-03 | — | ❌ 已下线 | 手动维护 |\n| 剧集名-04 | 周三 21:30 | `30 21 * * 3` | |\n| 剧集名-05 | 周四 21:20 | `20 21 * * 4` | |\n| 剧集名-06 | 周五 21:30 | `30 21 * * 5` | |\n| 剧集名-07 | 周四 19:01 | `1 19 * * 4` | |\n| 剧集名-08 | 周日 20:00 | `0 20 * * 0` | |\n| 剧集名-09 | 周五 19:02 | `2 19 * * 5` | |\n| 剧集名-10 | 周五 20:30 | `30 20 * * 5` | |\n| 剧集名-11 | 周五 23:00 | `0 23 * * 5` | |\n| 剧集名-12 | 周六 22:00 | `0 22 * * 6` | |\n| 剧集名-13 | 周六 19:00 | `0 19 * * 6` | |\n| 剧集名-14 | 周六 22:00 | `0 22 * * 6` | |\n| 剧集名-15 | 周六 22:10 | `10 22 * * 6` | |\n| 剧集名-16 | 周日 15:00 | `0 15 * * 0` | |\n| 剧集名-17 | 周日 22:00 | `0 22 * * 0` | |\n\n\n---\n## 剧集名-01 订阅特殊说明\n- 目前资源发布有2套剧集编号格式，\n  A编号格式，剧集名-01 第三季从01开始，剧集名特性是2为数字，如更新至22集\n  B编号格式，剧集名-01 第一季到现在一直未按新季从1开始，所以累计1xx集， 如EP127\n\n- 用户需求要选择：A编号格式的URL，和A编号格式的URL中的最新剧集编号\n\nFile v0.1.19:skills-lock.json\n\n{\n  \"version\": 1,\n  \"skills\": {\n    \"quark-lazy-cli\": {\n      \"source\": \"jesustoachild/quark-lazy-cli\",\n      \"sourceType\": \"github\",\n      \"skillPath\": \"SKILL.md\",\n      \"computedHash\": \"3702bd1b9267170319101c3eca4fa10e47e5fc17a212fb838618a70b2eb200dd\"\n    }\n  }\n}\n\nFile v0.1.19:pyproject.toml\n\n[project]\nname = \"quark-lazy-cli\"\nversion = \"0.1.19\"\ndescription = \"基于QAS的夸克云盘懒人追剧工具\"\nreadme = \"README.md\"\nrequires-python = \">=3.10\"\ndependencies = [\n    \"requests>=2.28.0\",\n    \"click>=8.0.0\",\n    \"python-dotenv>=1.0.0\",\n]\n\n[project.scripts]\nquark_lazy_cli = \"quark_lazy_cli.main:cli\"\nqslazy = \"quark_lazy_cli.main:cli\"\n\n[build-system]\nrequires = [\"setuptools>=61.0\"]\nbuild-backend = \"setuptools.build_meta\"\n\n[tool.setuptools.packages.find]\nwhere = [\"src\"]\ninclude = [\"quark_lazy_cli*\"]\nnamespaces = false\n\nArchive v0.1.18: 21 files, 65491 bytes\n\nFiles: assets/订阅时间表.md (1560b), pyproject.toml (533b), README.md (5608b), references/OpenClaw定时任务.md (2145b), references/每日汇报.md (5227b), references/环境变量.md (2172b), references/订阅时间估算.md (7348b), references/顾问模式.md (2973b), scripts/check_all_status.sample.sh (554b), scripts/daily_report.sample.sh (1564b), scripts/run_lazy_update.sample.sh (2398b), SKILL.md (7219b), skills-lock.json (266b), src/quark_lazy_cli/__init__.py (73b), src/quark_lazy_cli/advisor.py (32695b), src/quark_lazy_cli/api.py (19607b), src/quark_lazy_cli/app.py (91917b), src/quark_lazy_cli/config.py (6858b), src/quark_lazy_cli/main.py (5749b), src/quark_lazy_cli/models.py (1579b), _meta.json (134b)\n\nFile v0.1.18:SKILL.md\n\n---\nname: quark-lazy-cli\ndescription: >-\n  基于 QAS（夸克网盘自动转存项目）的懒人追剧、追番 SKILL，也内置了一个 CLI 工具。即使 QAS\n  的剧集订阅失效，它也可以重新搜索资源、探查多级资源目录，并在多个最新候选资源中按用户偏好（如更高清晰度）转存新剧集和缺失剧集。可以交给本地\n  OpenClaw、Hermes Agent 或其他Claude Code, Codex Agent 使用，用来设置定时任务、定时汇报，并在订阅失败时辅助修复。有 Python\n  运行环境的进阶用户，也可以把它当作命令行工具使用。\n  \n---\n\n# quark-lazy-cli\n\n`quark-lazy-cli` 是给 Agent 使用的夸克网盘追剧、追番订阅维护 Skill；`qslazy` 是它内置的命令行工具。它依赖 QAS 后端，用来查看订阅、检查缺集、搜索候选资源，并在用户授权后转存新剧集或补全缺失剧集。\n\n`quark-lazy-cli` 不是 QAS Web 端的替代。它的核心功能聚焦在更新、修复更新失败、精准指定源资源文件转存，让 Agent 帮用户少操心地追新、补漏和维护订阅。\n\n## 四种运行模式\n\n`LAZY_CLI_ADVISOR` 是网盘资源搜索后的决策机制，用来决定候选资源怎么选，不是聊天模式。\n\n- `code`：用代码规则自动决策。适合后台任务、资源发布规范的剧集、资源目录有“更新至n集”；速度快，无需交互，不消耗 LLM Token。\n- `llm`：后台任务中引入大模型做资源选择。适合多版本编号冲突等复杂资源；可配合 `--add-prompt` 改AI大模型定制判断规则。例如：让大模型帮你判断是动漫还是真人版的剧集、你订阅任务是剧集的中文名称，告诉大模型剧集的英文名称等。\n- `agent`：由当前 Agent 在和用户交互过程中判断候选资源。适合复杂场景的临时更新，或者在Openclaw Heateat机制里，维护和修复复杂订阅更新的场景使用。记得让Agent更新时，要求看订阅剧集.md文档中，你对剧集转存的要求。\n- `human`：用户人工选择。适合用户想亲自确认资源的场景。\n\n详细用法读取：`references/顾问模式.md`。\n\n## 安装\n\n安装分两步：Skill 文档告诉 Agent 怎么用；`qslazy` CLI 是真正执行任务的命令。两个都要装。\n\n```bash\n# skills.sh / 通用 Agent\nnpx skills add jesustoachild/quark-lazy-cli\n\n# OpenClaw / ClawHub\nopenclaw skills install quark-lazy-cli\n\n# qslazy CLI\npipx install git+https://github.com/jesustoachild/quark-lazy-cli.git\n```\n\n## 配置环境变量\n\n### 1. 确认 `.env` 位置\n\n`.env` 固定放在 Skill 目录根部，不要放到全局目录：\n\n```text\n<skills-dir>/quark-lazy-cli/.env\n```\n\n### 2. 创建 `.env`\n\n如果安装后的 Skill 目录里带有 env 样板文件，直接复制成 `.env`：\n\n```bash\ncd <skills-dir>/quark-lazy-cli\n\ncp ./.env.local.example .env\n```\n\n如果安装后的目录没有 env 样板文件，就读取 `references/环境变量.md`，由 Agent 根据里面的完整模板创建并编辑 `.env`。\n\n### 3. 写入基础配置\n\n把下面内容写入 `<skills-dir>/quark-lazy-cli/.env`，并把占位值改成用户自己的 QAS 信息：\n\n```env\n# QAS 后端地址，例如：http://192.168.1.10:15305\nQAS_HOST=http://your-qas-host:port\n\n# QAS API Token，可在 QAS Web 管理页面查看\nQAS_API_TOKEN=your-qas-api-token\n\n# 网盘资源搜索选择的顾问模式：human / code / llm / agent\nLAZY_CLI_ADVISOR=code\n\n# 运行时目录，建议使用绝对路径，放在 Skill 目录下，便于 Agent 清理和迁移\nLAZY_CLI_LOG_DIR=<skills-dir>/quark-lazy-cli/runtime/logs\nLAZY_CLI_REPORT_DIR=<skills-dir>/quark-lazy-cli/runtime/report\nLAZY_CLI_AGENT_MSG_DIR=<skills-dir>/quark-lazy-cli/runtime/message\n```\n\n如果想在任意目录下运行，建议加入 `--env`：\n\n```bash\nqslazy update new 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n如果临时覆盖 `.env` 的配置，可以不更改.env，命令行示例：\n\n```bash\nLAZY_CLI_ADVISOR=llm qslazy update new 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n环境变量优先顺序从高到低：\n\n```text\n命令行临时环境变量 > 系统环境变量 > --env 指定的 .env 文件 > 默认值\n```\n\n因此 `LAZY_CLI_ADVISOR=llm qslazy ... --env ...` 只会临时覆盖本次命令，不会修改 `.env` 文件。\n\n## 常用命令\n\n### 1. 验证安装\n\n```bash\nqslazy --help\nqslazy task --help\nqslazy update --help\n```\n\n### 2. 查看订阅\n\n```bash\nqslazy task list --env <skills-dir>/quark-lazy-cli/.env\n```\n\n### 3. 查看订阅任务状态\n\n```bash\nqslazy task status 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n### 4. 追更新集（必须先获得用户授权，禁止自行测试）\n\n禁止把更新命令当作安装测试或功能测试。只有用户明确要求更新、追新或修复订阅时，才可以执行。\n\n```bash\nLAZY_CLI_ADVISOR=code qslazy update new 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n### 5. 补全缺集 + 追新（必须先获得用户授权，禁止自行测试）\n\n禁止在用户只要求“看看”“检查”“测试 skill”时执行。先用 `task status` 汇报状态，再询问用户是否更新。\n\n```bash\nLAZY_CLI_ADVISOR=code qslazy update all 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n## 进阶能力索引\n\n### 了解用户订阅情况和资源发布规律\n\n读取文件：`references/订阅时间估算.md`\n\n用于：\n- 批量分析 `task status` 输出\n- 推算订阅更新时间\n- 维护订阅时间表\n\n### 配置完整 OpenClaw 定时任务\n\n读取文件：`references/OpenClaw定时任务.md`\n\n用于：\n- 创建定时更新任务\n- 设置通知参数\n- 维护定时任务\n\n### 让 Agent 做每日订阅汇报\n\n读取文件：`references/每日汇报.md`\n\n用于：\n- 首次使用先把 `./scripts/daily_report.sample.sh` 复制为 `./scripts/daily_report.local.sh`\n- 定时运行 `./scripts/daily_report.local.sh`\n- 汇报每日订阅状态\n- 发现新资源时先询问用户是否更新\n\n### 处理复杂资源选择\n\n读取文件：`references/顾问模式.md`\n\n用于：\n- 理解 `code / llm / agent / human` 顾问模式\n- 使用 `--add-prompt`\n- 处理 Agent JSON 决策\n\n## 铁律\n\n- 永远先观察再行动；用户只说“看看/检查/分析/测试 skill”时，只运行 `task list/status`。\n- 未获用户授权，不执行 `update new/all`，不新增、修改或删除定时任务。\n- 默认只根据 stdout 汇报；除非排错或用户要求，不读 log/报告文件，避免浪费 Token。\n- 不暴露 QAS API Token，不把真实 token 写进示例、回复、日志或定时任务。\n- 不擅自删除、改名或移动用户网盘文件。\n- 不直接修改 `scripts/*.sample.sh`。这些是升级可覆盖的样板脚本；用户定制应复制为 `scripts/*.local.sh`，并运行 `.local.sh`。\n- 不擅自研究、审查或修改 qslazy 源码。只有用户明确要求“看代码”“修 bug”“做开发/审查”时，才进入代码层；普通订阅维护只使用 CLI 和 reference 文档，避免浪费 Token。\n- 资源命名混乱时，不用 `code` 硬选，改用 `llm` 或 `agent`，并读取 `references/顾问模式.md`。\n\nFile v0.1.18:README.md\n\n# 夸克网盘懒人追剧、追番 SKILL\n\n基于 QAS（夸克网盘自动转存项目）的懒人追剧、追番 SKILL，也内置了一个 CLI 工具。即使 QAS 的剧集订阅失效，它也可以重新搜索资源、探查多级资源目录，并在多个最新候选资源中按用户偏好（如更高清晰度）转存新剧集和缺失剧集，并修复订阅链接。\n\n可以交给本地 OpenClaw、Hermes Agent 或其他 Agent 使用，用来设置定时任务、定时汇报，并在订阅失败时辅助修复。\n有 Python 运行环境的进阶用户，也可以把它当作命令行工具使用。\n\n本项目不是对QAS Web UI的替代，而聚焦订阅剧集的”偷懒的更新“。\n\n## 核心需求：\n\n- QAS 的订阅时常会失效<br>\n  手工查询、维护订阅任务很麻烦。等忙完想起来再去找新资源时，资源可能已经失效了。\n\n- Infuse、Emby 的海报墙被重复剧集搞乱<br>\n  分享资源内容可能重复，例如：凡人修仙传.S05E01.4K.mkv、凡人修仙传.S05E01.dv.mkv。用正则模板转存时，可能会把两个文件都转存下来，造成剧集文件混乱，让 Infuse、Emby 等媒体库的海报墙乱掉，需要手动删除、改名和维护。\n\n- 喜欢最高视频编码的资源<br>\n  如果偏好最高视频编码的资源，或希望选择较小体积的视频，通常需要手动下探搜索结果目录、挑选和比对。\n\n- Agent 来了，自己更懒了<br>\n  让 Agent 忙起来，自己安心当懒人。\n\n## 项目甜点：\n\n- 再也不操心订阅失效<br>\n\n- 节省 Token。命名规范、发布清晰的分享资源，可以交给 `code` 顾问执行；复杂资源情况则交给 Agent 或 LLM 大模型判断和决策<br>\n\n- Agent 可以使用 SKILL 分析资源的发布规律，并配置合理的订阅更新时间<br>\n\n- 多资源匹配用户需求、精准指定目标文件名做转存，有效规避资源目录多个相同剧集都下载搞了视频目录、资源发布时间和剧集顺序不相符情况 会看过的剧集<br>\n\n## 四种更新运行模式\n\n`LAZY_CLI_ADVISOR` 是网盘资源搜索后的决策机制，用来决定候选资源怎么选，不是聊天模式。\n\n- `code`：用代码规则自动决策。适合后台任务、资源发布规范的剧集、资源目录有“更新至n集”；速度快，无需交互，不消耗 LLM Token。<br>\n- `llm`：后台任务中引入大模型做资源选择。适合多版本编号冲突等复杂资源；可配合 `--add-prompt` 改AI大模型定制判断规则。例如：让大模型帮你判断是动漫还是真人版的剧集、你订阅任务是剧集的中文名称，告诉大模型剧集的英文名称等。<br>\n- `agent`：由当前 Agent 在和用户交互过程中判断候选资源。适合复杂场景的临时更新，或者在Openclaw Heateat机制里，维护和修复复杂订阅更新的场景使用。记得让Agent更新时，要求看订阅剧集.md文档中，你对剧集转存的要求。<br>\n- `human`：用户人工选择。适合用户想亲自确认资源的场景。<br>\n\n详细用法读取：`references/顾问模式.md`。\n---\n\n## 使用概览\n\n### 1. 手动追剧更新\n\n```bash\n# 追新：只转存高于当前最高集的新资源\nqslazy update new 凡人修仙传\n\n# 全量：补漏 + 追新\nqslazy update all 凡人修仙传\n```\n\n### 2. 查看订阅状态\n\n```bash\nqslazy task list\nqslazy task status 凡人修仙传\n```\n\n`task status` 会展示本地网盘状态、缺集情况、搜索到的资源发布时间，适合用来判断订阅是否正常，也可以帮助 Agent 推算最佳订阅更新时间。\n\n### 3. Agent / OpenClaw / Hermes 用法\n\n本项目提供 [SKILL.md](./SKILL.md)，包含更详细的 Agent 操作说明：\n\n- 如何查看订阅任务和单个剧集状态\n- 如何根据资源发布时间制定最佳订阅更新时间\n- `LAZY_CLI_ADVISOR=agent` 的决策文件工作流\n- Hermes Agent / OpenClaw 的后台执行与轮询方式\n- `--add-prompt` 的复杂资源筛选用法\n\n详细 Agent 用法请阅读 [SKILL.md](./SKILL.md)。\n\n---\n\n## 2. 安装和环境配置\n\n安装分两步：**Skill 文档**（告诉 Agent 怎么用）和 **qslazy CLI**（真正干活的命令）。两个都要装。\n\n### 第一步：安装 Skill 文档\n\nskills.sh / 通用 Agent：\n\n```bash\nnpx skills add jesustoachild/quark-lazy-cli\n```\n\nOpenClaw / ClawHub：\n\n```bash\nopenclaw skills install quark-lazy-cli\n```\n\n> Skill 安装只安装 SKILL.md、示例配置和辅助资源，不安装 Python 包。\n\n### 第二步：安装 qslazy CLI（必须）\n\n**pipx 安装（推荐）**：适用 Linux 服务器 / 已具备 Python 3.10+ 和 pipx 的用户。\n\n```bash\npipx install git+https://github.com/jesustoachild/quark-lazy-cli.git\n```\n\n**源码安装**：\n\n```bash\ngit clone https://github.com/jesustoachild/quark-lazy-cli.git\ncd quark-lazy-cli\npip install -e .\n```\n\n## 快速开始\n- 让你的 OpenClaw Agent 完成配置<br>\n- 或者，有 Python 运行环境的进阶用户可以手动配置和使用\n\n### 1. 配置环境\n\n```bash\ncd /<skill>/quark-lazy-cli\ncp .env.local.example .env\n```\n\n如果安装后的目录没有 `.env.local.example`，请读取 `references/环境变量.md`，根据里面的完整模板手动创建并编辑 `.env`。\n\n详细使用方式请阅读 `SKILL.md`。\n\n\n### 2. 查看订阅\n\n```bash\nqslazy task list\n```\n\n### 3. 查看订阅任务状态\n\n```bash\nqslazy task status 凡人修仙传\n```\n---\n\n### 4. 追更新集\n\n```bash\nqslazy update new 凡人修仙传\n```\n\n### 5. 补全缺集 + 追新\n\n```bash\nqslazy update all 凡人修仙传\n```\n\n\n## 许可证\n\nMIT\n\nFile v0.1.18:_meta.json\n\n{\n  \"ownerId\": \"kn76hk2rqrfzkebgwshctshq51813c92\",\n  \"slug\": \"quark-lazy-cli\",\n  \"version\": \"0.1.18\",\n  \"publishedAt\": 1779637045562\n}\n\nFile v0.1.18:references/OpenClaw定时任务.md\n\n# OpenClaw 定时任务\n\n本参考仅在用户要求配置 OpenClaw 定时订阅任务时读取。配置前必须已经运行过 `qslazy task status 剧名`，并根据资源发布时间向用户确认过“时间优先”或“画质优先”策略。\n\n## 推荐流程\n\n1. 用 `qslazy task status 剧名 --env <skills-dir>/quark-lazy-cli/.env` 查看网盘状态和资源发布时间。\n2. 询问用户偏好：\n   - 时间优先：最早有效资源发布时间 + 4 小时。\n   - 画质优先：最后一批高质量资源发布时间 + 4 小时。\n3. 用户确认后，再创建 OpenClaw 定时任务。\n4. 简单、命名规范的资源默认用 `LAZY_CLI_ADVISOR=code`，避免每次唤醒大模型。\n\n## 定时任务模板\n\n```bash\nopenclaw cron add \\\n  --name \"凡人修仙传-定时更新\" \\\n  --cron \"30 2 * * 0\" \\\n  --tz \"Asia/Shanghai\" \\\n  --session isolated \\\n  --agent AgentName \\\n  --announce \\\n  --channel feishu \\\n  --account bot-AgentName \\\n  --to \"USER_OPEN_ID\" \\\n  --message \"bash -c 'LAZY_CLI_ADVISOR=code qslazy update all 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env'\\n\\n仅根据 stdout 汇报结果，除非排错，不要读取 log 或报告文件。\"\n```\n\n替换项：\n\n- `凡人修仙传-定时更新`：任务显示名。\n- `30 2 * * 0`：定时表达式（cron 格式）。\n- `AgentName`：执行任务的 OpenClaw Agent。\n- `bot-AgentName`：通知账号。\n- `USER_OPEN_ID`：通知目标。\n- `<skills-dir>/quark-lazy-cli/.env`：实际 Skill 安装目录中的 `.env`。\n\n## 常用时间\n\n```text\n每周一 22:00 -> 0 22 * * 1\n每周六 14:00 -> 0 14 * * 6\n每周日 02:30 -> 30 2 * * 0\n每天 09:00 兜底 -> 0 9 * * *\n```\n\n## 汇报格式\n\n定时任务执行后，只根据 stdout 汇报。建议包含：\n\n```text\n订阅：\n当前：\n目标：\n偏好：\n更新结果：\n新增集数：\n补全剧集：\n```\n\n## 维护命令\n\n```bash\nopenclaw cron list\nopenclaw cron run <job-id>\nopenclaw cron edit <job-id> --cron \"0 22 * * 1\"\nopenclaw cron edit <job-id> --disable\nopenclaw cron edit <job-id> --enable\nopenclaw cron rm <job-id>\n```\n\n执行 `edit`、`rm` 等变更操作前，先向用户确认。\n\nFile v0.1.18:references/每日汇报.md\n\n# 每日汇报\n\n本参考用于配置 OpenClaw Agent 每日运行 `scripts/daily_report.local.sh`，汇总当天需要关注的订阅状态，并在发现网络资源高于网盘最高集时询问用户是否更新。\n\n## 使用场景\n\n用户说：\n\n- “帮我每天汇报订阅情况”\n- “每天检查今天该更新的剧”\n- “发现有新资源时问我要不要更新”\n- “帮我配置每日懒人汇报”\n\nAgent 应读取本参考。\n\n## 脚本说明\n\n脚本位置：\n\n```bash\n<skills-dir>/quark-lazy-cli/scripts/daily_report.local.sh\n```\n\n首次使用先从样板复制：\n\n```bash\ncp <skills-dir>/quark-lazy-cli/scripts/daily_report.sample.sh \\\n   <skills-dir>/quark-lazy-cli/scripts/daily_report.local.sh\n```\n\n用法：\n\n```bash\nbash <skills-dir>/quark-lazy-cli/scripts/daily_report.local.sh [星期几] [env路径]\n```\n\n示例：\n\n```bash\nbash <skills-dir>/quark-lazy-cli/scripts/daily_report.local.sh 6 <skills-dir>/quark-lazy-cli/.env\n```\n\n参数：\n\n- `星期几`：可选。`1=周一`，`2=周二`，...，`7=周日`。不传则自动使用当天。\n- `env路径`：可选。推荐传入 `<skills-dir>/quark-lazy-cli/.env`。\n\n使用前，需要把 `daily_report.local.sh` 里的 `剧名1`、`剧名2`、`剧名3` 替换成用户真实的 QAS 任务名。\n\n不要直接修改 `daily_report.sample.sh`。`.sample.sh` 是仓库提供的升级样板，后续升级可以覆盖；`.local.sh` 是用户自己的定制脚本，应保留在本地。\n\n脚本里的剧集分组应根据 [订阅时间估算.md](订阅时间估算.md) 中维护的“动漫订阅更新时间建议表”设计：\n\n- 周一汇报周一需要关注的剧。\n- 周二汇报周二需要关注的剧。\n- 如果某部剧有兜底重试时间，也可以同时放入兜底日期。\n- `run_status \"剧名1\"` 里的剧名必须使用表格里的 `taskname`，不要使用随意昵称。\n\n示例：\n\n```md\n| taskname | 剧名/显示名 | 更新策略 | 建议订阅更新时间 | 定时表达式 | 状态 | 备注 |\n|----------|-------------|----------|------------------|-------------|------|------|\n| 剧名1 | 剧名1 | 画质优先 | 周一 22:00 | `0 22 * * 1` | 正常 | |\n| 剧名2 | 剧名2 | 画质优先 | 周一 23:00 | `0 23 * * 1` | 正常 | |\n| 剧名3 | 剧名3 | 时间优先 | 周二 20:30 | `30 20 * * 2` | 正常 | |\n```\n\n对应脚本：\n\n```bash\n1)\n  echo \"📅 周一\"\n  run_status \"剧名1\"\n  run_status \"剧名2\"\n  ;;\n2)\n  echo \"📅 周二\"\n  run_status \"剧名3\"\n  ;;\n```\n\n## OpenClaw 定时任务模板\n\n```bash\nopenclaw cron add \\\n  --name \"qslazy-每日订阅汇报\" \\\n  --cron \"30 23 * * *\" \\\n  --tz \"Asia/Shanghai\" \\\n  --session isolated \\\n  --agent AgentName \\\n  --announce \\\n  --channel feishu \\\n  --account bot-AgentName \\\n  --to \"USER_OPEN_ID\" \\\n  --message \"bash -c 'bash <skills-dir>/quark-lazy-cli/scripts/daily_report.local.sh \\\"\\\" <skills-dir>/quark-lazy-cli/.env'\\n\\n请根据 stdout 汇报订阅状态。如果发现网络资源的最高集数高于网盘最高集，先询问用户是否执行 qslazy update all，不要自动更新。\"\n```\n\n替换项：\n\n- `AgentName`：执行汇报的 OpenClaw Agent。\n- `bot-AgentName`：通知账号。\n- `USER_OPEN_ID`：通知目标。\n- `<skills-dir>/quark-lazy-cli`：实际 Skill 安装目录。\n\n## Agent 汇报规则\n\nAgent 只根据 stdout 汇报，除非排错，不读取 log 或报告文件。\n\n每个任务建议汇报：\n\n```text\n[ 凡人修仙传 ]\n\n💾 网盘：最高 82（更新于：昨天），最低 78，缺[79, 80]\n🎯 目标：第82集以上资源\n💎 偏好：最高画质优先\n\n🔍 最新资源：今天和昨天\n🔍 资源更新至：83集\n\n状态总结：网盘最高 82 vs 资源更新至 83，需要更新；同时网盘缺[79, 80]，建议补漏。\n```\n\n状态文案建议：\n\n```text\n状态总结：网盘最高 X vs 资源更新至 X，网盘已是最新。\n状态总结：网盘最高 X vs 资源更新至 Y，需要更新。\n状态总结：网盘最高 X vs 资源更新至 Y，需要更新；同时网盘缺[...]，建议补漏。\n状态总结：资源编号或版本较复杂，需要人工确认。\n```\n\n## 发现新资源时的处理\n\n如果 stdout 显示网络候选资源高于网盘最高集，例如：\n\n```text\n网盘：最高 22\n候选资源：更新至 23 集\n```\n\nAgent 不能自动更新，必须先按上面的格式汇报，再问用户：\n\n```text\n我看到《剧名1》网盘最高到第 22 集，但网络资源已更新到第 23 集。\n是否现在执行 `qslazy update all 剧名1 --env <skills-dir>/quark-lazy-cli/.env` 追新并补漏？\n```\n\n用户确认后再执行：\n\n```bash\nLAZY_CLI_ADVISOR=code qslazy update all 剧名1 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n如果资源命名复杂、编号冲突或画质选择困难，改用：\n\n```bash\nLAZY_CLI_ADVISOR=llm qslazy update all 剧名1 \\\n  --env <skills-dir>/quark-lazy-cli/.env \\\n  --add-prompt \"写入该剧的特殊筛选规则\"\n```\n\n## 关键限制\n\n- 每日汇报是只读检查，默认不更新订阅。\n- 用户未授权时，不执行 `update new` 或 `update all`。\n- 发现网络资源更高时，只能询问用户是否更新。\n- 不要把真实 QAS Token、Feishu open_id 或用户私有路径写入公开模板。\n\nFile v0.1.18:references/环境变量.md\n\n# 环境变量\n\n如果安装后的 Skill 目录没有 `.env.local.example`，Agent 应根据本文件创建：\n\n```text\n<skills-dir>/quark-lazy-cli/.env\n```\n\n创建后必须替换：\n\n- `QAS_HOST`\n- `QAS_API_TOKEN`\n- 所有 `<skills-dir>` 占位符\n\n完整模板：\n\n```env\n# quark-lazy-cli 环境变量配置文件。推荐放在 Skill 目录根部，并通过 --env <skills-dir>/quark-lazy-cli/.env 指定。\n\n# QAS 服务配置\n# QAS 后端地址，例如：http://192.168.1.10:15305\nQAS_HOST=http://your-qas-host:port\n# QAS API Token，可在 QAS Web 管理页面查看\nQAS_API_TOKEN=your-qas-api-token\n\n# 系统及搜索策略配置\n# LAZY_CLI_EP_SELECTION_POLICY: 选片策略 prefer_quality=最高画质 prefer_size=最大体积\nLAZY_CLI_EP_SELECTION_POLICY=prefer_quality\n# LAZY_CLI_SEARCH_BATCH_DISP: 搜索结果分页显示数量\nLAZY_CLI_SEARCH_BATCH_DISP=30\n# LAZY_CLI_SEARCH_EXPIRATION_DAYS: 资源新鲜度阈值（天），超过则视为旧资源，根据剧集更新频率而定，LLM 和 code 顾问，只看新鲜资源\nLAZY_CLI_SEARCH_EXPIRATION_DAYS=7\n# LAZY_CLI_DRILL_MAX_DEPTH: BFS探查子目录最大深度\nLAZY_CLI_DRILL_MAX_DEPTH=3\n# LAZY_CLI_MAX_SEARCH_BREADTH: 最大搜索有效资源个数\nLAZY_CLI_MAX_SEARCH_BREADTH=10\n\n# Advisor 模式：human（默认）/ code / llm / agent\nLAZY_CLI_ADVISOR=code\nLAZY_CLI_HUMAN_FILTER=true\n\n# Agent 顾问配置（LAZY_CLI_ADVISOR=agent 时生效）\n\nLAZY_CLI_AGENT_POLL_INTERVAL=15\n\n# LLM 顾问配置（可选，仅 LAZY_CLI_ADVISOR=llm 时生效）\n# 支持 OpenAI-compatible API 服务\nLAZY_CLI_LLM_OPENAI_API_BASE=https://api.example.com/v1\nLAZY_CLI_LLM_OPENAI_API_KEY=your-api-key\nLAZY_CLI_LLM_OPENAI_MODEL=your-model-name\nLAZY_CLI_LLM_TEMPERATURE=0.4\n\n\n# 日志配置\nLAZY_CLI_DEBUG=false\n\n# 建议使用 Skill 目录下的 runtime 目录，便于 Agent 清理和迁移\nLAZY_CLI_LOG_DIR=<skills-dir>/quark-lazy-cli/runtime/logs\nLAZY_CLI_REPORT_DIR=<skills-dir>/quark-lazy-cli/runtime/report\nLAZY_CLI_AGENT_MSG_DIR=<skills-dir>/quark-lazy-cli/runtime/message\n```\n\n环境变量优先顺序：\n\n```text\n命令行临时环境变量 > 系统环境变量 > --env 指定的 .env 文件 > 默认值\n```\n\nFile v0.1.18:references/订阅时间估算.md\n\n# 订阅时间估算\n\n本参考用于 Agent 根据 `qslazy task status` 或 `scripts/check_all_status.local.sh` 的批量输出，推算每部剧/番的最佳订阅更新时间，并写入订阅时间表。\n\n## 什么时候读取\n\n当用户说：\n\n- “帮我接管订阅维护”\n- “帮我看看所有剧什么时候更新合适”\n- “根据资源发布时间制定订阅时间”\n- “生成/更新动漫订阅时间表”\n\nAgent 应读取本参考。\n\n## 批量获取状态\n\n开发目录提供了批量巡检脚本样板。首次使用先复制为本地脚本，避免升级覆盖用户定制：\n\n```bash\ncp scripts/check_all_status.sample.sh scripts/check_all_status.local.sh\nbash scripts/check_all_status.local.sh\n```\n\n它会依次执行：\n\n```bash\nqslazy task list\nqslazy task status <taskname>\n```\n\n输出形态示例：\n\n```text\n================================================\n🔍 任务: '仙剑奇侠传.2025'\n\n  [ 仙剑奇侠传.2025 ] ⏳ Searching for 仙剑奇侠传...\n\n============================================================\n  📋 任务：仙剑奇侠传.2025\n  💾 网盘：最高 22（更新于：5天前），最低 1，无缺集\n  🎯 目标：第22集以上资源\n  💎 偏好：最高画质优先\n\n============================================================\n🔍 7 天内新鲜资源：搜索到 3 个，验证资源有效后：3 个\n============================================================\n\n  [1] [5天前 21:55 周二] 仙剑奇侠传三 4K臻彩MAX [更新至22集]\n  [2] [5天前 21:41 周二] 仙剑奇侠传叁(2025)4K 臻彩MAX S01E01 - E22 HIFI声 HiveWeb\n  [3] [6天前 15:13 周二] 仙剑奇侠传叁‎ (2025) 4K 更新至22集  仙剑奇侠传3动画版\n\n🔍 7-14 天旧资源：搜索到 1 个，验证资源有效后：0 个（其中 1 个失效）\n============================================================\n  [X] [9天前 18:30 周日] 仙剑奇侠传叁(2025)4K 旧资源（失效：分享地址已失效）\n```\n\n其中 `7` 来自 `LAZY_CLI_SEARCH_EXPIRATION_DAYS`。如果该环境变量改为 `5`，状态页会显示 `5 天内新鲜资源` 和 `5-10 天旧资源`。\n\n## 状态输出解读\n\n`qslazy task status` 会显示两个观察窗口：\n\n- `{LAZY_CLI_SEARCH_EXPIRATION_DAYS}` 天内新鲜资源。\n- `{LAZY_CLI_SEARCH_EXPIRATION_DAYS}` 到 `{LAZY_CLI_SEARCH_EXPIRATION_DAYS * 2}` 天旧资源。\n\n列表标记含义：\n\n- `[1]`、`[2]`、`[3]`：验证有效资源，可用于判断可下载资源和发布时间。\n- `[X]`：验证失效资源，仅用于观察发布规律，不可选择，不进入 advisor/BFS/下载流程。\n\n失效资源仍然有参考价值：\n\n- 如果同一资源站每天都发布但很快失效，说明它发布活跃但稳定性差。\n- 如果新鲜资源大多失效，而较晚发布的资源有效，订阅时间应更偏向画质优先或延后执行。\n- 如果旧资源持续失效，说明该源不适合作为长期订阅依据。\n\n注意：`update` 的 human 选择界面也会展示 `[X]` 失效资源，但 `[X]` 不占数字序号，不能被选择；LLM advisor 只接收有效资源列表，并只看到失效资源摘要。\n\n## 估算规则\n\nAgent 从每个任务的候选资源发布时间里提取：\n\n- 最早有效资源发布时间\n- 最后一批高质量资源发布时间\n- 失效资源发布时间和数量\n- 资源是否集中在同一天、同一时间段\n- 是否有旧资源或失效资源干扰\n- 网盘当前最高集和更新时间\n\n然后先问用户偏好：\n\n```text\n你希望订阅更新时间偏向哪种策略？\n1. 时间优先：按最早有效资源发布时间 + 4 小时安排，尽快看到更新。\n2. 画质优先：按最后一批高质量资源发布时间 + 4 小时安排，等待高码率、HDR/DV、字幕组或更完整资源。\n```\n\n默认建议：\n\n- 用户不明确选择时，使用画质优先。\n- 对经常延迟或资源波动大的剧，加一次次日上午兜底重试。\n- 对已下线或长期无新资源的剧，标为手动维护。\n- 如果新鲜资源中 `[X]` 很多，但有效资源集中在更晚时间，优先参考有效资源发布时间，不要按失效资源的最早时间提前订阅。\n- 如果 `[X]` 连续多周出现在同一发布源，可在备注中标记“该源易失效”，避免把它作为唯一订阅依据。\n\n## 示例推导\n\n### 仙剑奇侠传.2025\n\n候选资源：\n\n- 周二 21:55：4K 臻彩MAX，更新至 22 集\n- 周二 21:41：4K 臻彩MAX，S01E01 - E22\n- 周二 15:13：4K，更新至 22 集\n\n建议：\n\n- 时间优先：周二 19:13 以后。\n- 画质优先：周三 01:55 左右。\n- 如果用户偏好稳定高质量资源，建议周三 02:00。\n\n### 斗破苍穹\n\n候选资源：\n\n- 周六 18:48 到 20:23 集中发布。\n- 多个 4K / 10bit / 臻彩资源，更新至 199 集。\n\n建议：\n\n- 时间优先：周六 22:50 左右。\n- 画质优先：周日 00:30 左右。\n- 若用户不急，建议周日 00:30 或周日 01:00。\n\n## 订阅时间表模板\n\n| taskname | 剧名/显示名 | 更新策略 | 建议订阅更新时间 | 定时表达式 | 状态 | 备注 |\n|----------|-------------|----------|------------------|-------------|------|------|\n| 剧名1 | 剧名1 | 画质优先 | 周六 02:30 | `30 2 * * 6` | 正常 | 参看：剧名1 订阅特殊说明 |\n| 剧名2 | 剧名2 | 时间优先 | 周日 00:30 | `30 0 * * 0` | 正常 | |\n| 剧名3 | 剧名3 | 手动维护 | — | ❌ 已下线 | 暂停 | 资源下线或订阅暂停 |\n\n字段说明：\n\n- `taskname`：QAS 里的订阅任务名，也是 qslazy 命令参数。\n- `剧名/显示名`：给用户看的名称，可以比 `taskname` 更自然。\n- `更新策略`：`时间优先`、`画质优先`、`手动维护` 或用户指定策略。\n- `建议订阅更新时间`：自然语言时间，方便用户阅读。\n- `定时表达式`：OpenClaw 使用的 cron 格式时间表达式。\n- `状态`：`正常`、`暂停`、`手动维护`、`待确认` 等。\n- `备注`：特殊资源规则、用户偏好、下线原因或参考说明。\n\n## 订阅特殊说明示例\n\n### 剧名1  订阅特殊说明\n\n- 目前资源发布有 2 套剧集编号格式：\n  - A 编号格式：百炼成神第三季从 01 开始，剧集名特征是 2 位数字，例如“更新至 22 集”。\n  - B 编号格式：百炼成神从第一季到现在一直使用累计编号，例如 `EP127`。\n\n- 用户需求：\n  - 选择 A 编号格式的 URL。\n  - 使用 A 编号格式 URL 中的最新剧集编号。\n\n推荐执行方式：\n\n```bash\nLAZY_CLI_ADVISOR=llm qslazy update new 剧名1  \\\n  --env <skills-dir>/quark-lazy-cli/.env \\\n  --add-prompt \"目前资源发布有两套剧集编号格式：A 格式为第三季从 01 开始的两位数字编号，如更新至 22 集；B 格式为从第一季累计到现在的 EP1xx 编号，如 EP127。请选择 A 格式的 URL，并取 A 格式中的最新剧集编号。\"\n```\n\n## Agent 维护规则\n\n- 新增剧名前，先运行 `qslazy task status <taskname> --env <skills-dir>/quark-lazy-cli/.env`。\n- 根据 stdout 中的资源发布时间推算更新时间，不要凭空填写。\n- 配置定时任务前，必须向用户确认更新策略。\n- 已下线、资源不稳定或需要人工判断的剧，状态标记为 `手动维护` 或 `待确认`。\n- 特殊资源规则不要塞进主表，放到下方“订阅特殊说明”。\n\nFile v0.1.18:references/顾问模式.md\n\n# 顾问模式\n\n本参考用于复杂资源选择、LLM 顾问、Agent 顾问 JSON 决策，以及 OpenClaw/Hermes 后台轮询。\n\n## Advisor 模式\n\n`LAZY_CLI_ADVISOR` 决定资源选择方式。\n\n| 模式 | 适合场景 | Agent 行为 |\n|------|----------|------------|\n| `human` | 用户手动确认 | 让用户看候选资源并选择 |\n| `code` | 命名规范、集数清晰、资源简单 | 默认推荐，用规则自动选择 |\n| `llm` | 多版本、画质/字幕/编号偏好复杂 | 加 `--add-prompt` 说明偏好 |\n| `agent` | 外部 Agent 需要亲自判断候选资源 | 启动 CLI，读取 stdout，写 JSON 决策文件 |\n\nLLM 顾问配置仅在 `LAZY_CLI_ADVISOR=llm` 时需要：\n\n```env\nLAZY_CLI_LLM_OPENAI_API_BASE=https://api.example.com/v1\nLAZY_CLI_LLM_OPENAI_API_KEY=your-api-key\nLAZY_CLI_LLM_OPENAI_MODEL=your-model-name\n```\n\n## 复杂资源筛选：--add-prompt\n\n当资源存在多版本、多编号、多字幕组或排除条件时，使用 `--add-prompt` 明确选择规则。\n\n```bash\nLAZY_CLI_ADVISOR=llm qslazy update all 凡人修仙传 \\\n  --env <skills-dir>/quark-lazy-cli/.env \\\n  --add-prompt \"只选择 S03E01 重新编号格式，不选择 EP 累计格式；优先 4K 高码率，其次 WEB-DL。\"\n```\n\n常见提示：\n\n| 场景 | `--add-prompt` 示例 |\n|------|---------------------|\n| 特定画质 | `优先选择 4K DV 或 HDR，不选择 1080p` |\n| 特定字幕 | `优先选择内封中字资源` |\n| 编号冲突 | `只选 S03E01 重新编号格式，不选 EP 累计格式` |\n| 排除版本 | `排除国配版本，排除合集压缩包` |\n| 体积偏好 | `在集数完整的前提下，优先选择较小体积版本` |\n\n## Agent 顾问模式\n\n`LAZY_CLI_ADVISOR=agent` 用于让外部 Agent 自己判断候选资源。CLI 会在 stdout 输出候选资源列表和一个 `advisor__任务名__时间戳.json` 文件路径。\n\n启动时建议使用未缓冲输出：\n\n```bash\nPYTHONUNBUFFERED=1 LAZY_CLI_ADVISOR=agent qslazy update all 剧名 --env <skills-dir>/quark-lazy-cli/.env\n```\n\nAgent 看到决策文件路径后，写入 JSON：\n\n```json\n{\"selected\": [1, 2, 3, 4], \"max_ep\": 80}\n```\n\n字段含义：\n\n- `selected`：选择的候选资源序号，使用 stdout 中的 1-based 序号。\n- `max_ep`：Agent 根据候选标题判断出的最新集数。\n\n注意：\n\n- 不要向 stdin 输入选择。\n- 必须结合任务目标和候选资源标题判断。\n- 5 分钟内没有写入决策文件，CLI 会超时。\n\n## Hermes Agent / OpenClaw 轮询方式\n\n| 步骤 | Hermes Agent | OpenClaw |\n|------|--------------|----------|\n| 启动 CLI | `terminal(background=true, pty=true, command=\"PYTHONUNBUFFERED=1 ...\")` | `exec(command, pty=True, yieldMs=120000)` |\n| 等待/轮询 | `process(wait)` / `process(poll)` | `process(action=\"poll\", sessionId=session, timeout=...)` |\n| 写决策文件 | 手动写 `advisor__任务名__时间戳.json` | `open(...)` + `json.dump(...)` |\n| 超时 | 5 分钟 | 5 分钟（20 × 15s） |\n\nFile v0.1.18:assets/订阅时间表.md\n\n## 剧集订阅更新时间建议表\n\n以下是根据各剧集历史发布时间统计得出的**建议订阅更新时间**（已预留缓冲时间）：\n\n| 动漫名称 | 建议订阅更新时间 | cron 表达式 | 备注 |\n|---------|----------------|------------|------|\n| 剧集名-01 | 周一 22:00 | `0 22 * * 1` | 参看：剧集名-01 订阅特殊说明 |\n| 剧集名-02 | 周二 18:04 | `4 18 * * 2` | |\n| 剧集名-03 | — | ❌ 已下线 | 手动维护 |\n| 剧集名-04 | 周三 21:30 | `30 21 * * 3` | |\n| 剧集名-05 | 周四 21:20 | `20 21 * * 4` | |\n| 剧集名-06 | 周五 21:30 | `30 21 * * 5` | |\n| 剧集名-07 | 周四 19:01 | `1 19 * * 4` | |\n| 剧集名-08 | 周日 20:00 | `0 20 * * 0` | |\n| 剧集名-09 | 周五 19:02 | `2 19 * * 5` | |\n| 剧集名-10 | 周五 20:30 | `30 20 * * 5` | |\n| 剧集名-11 | 周五 23:00 | `0 23 * * 5` | |\n| 剧集名-12 | 周六 22:00 | `0 22 * * 6` | |\n| 剧集名-13 | 周六 19:00 | `0 19 * * 6` | |\n| 剧集名-14 | 周六 22:00 | `0 22 * * 6` | |\n| 剧集名-15 | 周六 22:10 | `10 22 * * 6` | |\n| 剧集名-16 | 周日 15:00 | `0 15 * * 0` | |\n| 剧集名-17 | 周日 22:00 | `0 22 * * 0` | |\n\n\n---\n## 剧集名-01 订阅特殊说明\n- 目前资源发布有2套剧集编号格式，\n  A编号格式，剧集名-01 第三季从01开始，剧集名特性是2为数字，如更新至22集\n  B编号格式，剧集名-01 第一季到现在一直未按新季从1开始，所以累计1xx集， 如EP127\n\n- 用户需求要选择：A编号格式的URL，和A编号格式的URL中的最新剧集编号\n\nFile v0.1.18:skills-lock.json\n\n{\n  \"version\": 1,\n  \"skills\": {\n    \"quark-lazy-cli\": {\n      \"source\": \"jesustoachild/quark-lazy-cli\",\n      \"sourceType\": \"github\",\n      \"skillPath\": \"SKILL.md\",\n      \"computedHash\": \"3702bd1b9267170319101c3eca4fa10e47e5fc17a212fb838618a70b2eb200dd\"\n    }\n  }\n}\n\nFile v0.1.18:pyproject.toml\n\n[project]\nname = \"quark-lazy-cli\"\nversion = \"1.9.18\"\ndescription = \"基于QAS的夸克云盘懒人追剧工具\"\nreadme = \"README.md\"\nrequires-python = \">=3.10\"\ndependencies = [\n    \"requests>=2.28.0\",\n    \"click>=8.0.0\",\n    \"python-dotenv>=1.0.0\",\n]\n\n[project.scripts]\nquark_lazy_cli = \"quark_lazy_cli.main:cli\"\nqslazy = \"quark_lazy_cli.main:cli\"\n\n[build-system]\nrequires = [\"setuptools>=61.0\"]\nbuild-backend = \"setuptools.build_meta\"\n\n[tool.setuptools.packages.find]\nwhere = [\"src\"]\ninclude = [\"quark_lazy_cli*\"]\nnamespaces = false\n\nArchive v0.1.17: 21 files, 65339 bytes\n\nFiles: assets/订阅时间表.md (1560b), pyproject.toml (533b), README.md (5333b), references/OpenClaw定时任务.md (2145b), references/每日汇报.md (5227b), references/环境变量.md (2172b), references/订阅时间估算.md (7348b), references/顾问模式.md (2973b), scripts/check_all_status.sample.sh (554b), scripts/daily_report.sample.sh (1564b), scripts/run_lazy_update.sample.sh (2398b), SKILL.md (7131b), skills-lock.json (266b), src/quark_lazy_cli/__init__.py (71b), src/quark_lazy_cli/advisor.py (32485b), src/quark_lazy_cli/api.py (19607b), src/quark_lazy_cli/app.py (92241b), src/quark_lazy_cli/config.py (6858b), src/quark_lazy_cli/main.py (5749b), src/quark_lazy_cli/models.py (1579b), _meta.json (134b)\n\nFile v0.1.17:SKILL.md\n\n---\nname: quark-lazy-cli\ndescription: >-\n  基于 QAS（夸克网盘自动转存项目）的懒人追剧、追番 SKILL，也内置了一个 CLI 工具。即使 QAS\n  的剧集订阅失效，它也可以重新搜索资源、探查多级资源目录，并在多个最新候选资源中按用户偏好（如更高清晰度）转存新剧集和缺失剧集。可以交给本地\n  OpenClaw、Hermes Agent 或其他Claude Code, Codex Agent 使用，用来设置定时任务、定时汇报，并在订阅失败时辅助修复。有 Python\n  运行环境的进阶用户，也可以把它当作命令行工具使用。\n  \n  感谢QAS项目提供的强大的功能和优质的用户体验，本项目不是对QAS Web UI的替代，而聚焦订阅剧集的”偷懒的更新“。\n---\n\n# quark-lazy-cli\n\n`quark-lazy-cli` 是给 Agent 使用的夸克网盘追剧、追番订阅维护 Skill；`qslazy` 是它内置的命令行工具。它依赖 QAS 后端，用来查看订阅、检查缺集、搜索候选资源，并在用户授权后转存新剧集或补全缺失剧集。\n\n`quark-lazy-cli` 不是 QAS Web 端的替代。它的核心功能聚焦在更新、修复更新失败、精准指定源资源文件转存，让 Agent 帮用户少操心地追新、补漏和维护订阅。\n\n## 四种运行模式\n\n`LAZY_CLI_ADVISOR` 是网盘资源搜索后的决策机制，用来决定候选资源怎么选，不是聊天模式。\n\n- `code`：用代码规则自动决策。适合后台任务、资源发布规范的剧集、资源目录有“更新至n集”；速度快，无需交互，不消耗 LLM Token。\n- `llm`：后台任务中引入大模型做资源选择。适合多版本编号冲突等复杂资源；可配合 `--add-prompt` 改AI大模型定制判断规则。\n- `agent`：由当前 Agent 在和用户交互过程中判断候选资源。适合复杂场景的临时更新，或者在Openclaw Heateat机制里，维护和修复复杂订阅更新的场景使用。\n- `human`：用户人工选择。适合用户想亲自确认资源的场景。\n\n详细用法读取：`references/顾问模式.md`。\n\n## 安装\n\n安装分两步：Skill 文档告诉 Agent 怎么用；`qslazy` CLI 是真正执行任务的命令。两个都要装。\n\n```bash\n# skills.sh / 通用 Agent\nnpx skills add jesustoachild/quark-lazy-cli\n\n# OpenClaw / ClawHub\nopenclaw skills install quark-lazy-cli\n\n# qslazy CLI\npipx install git+https://github.com/jesustoachild/quark-lazy-cli.git\n```\n\n## 配置环境变量\n\n### 1. 确认 `.env` 位置\n\n`.env` 固定放在 Skill 目录根部，不要放到全局目录：\n\n```text\n<skills-dir>/quark-lazy-cli/.env\n```\n\n### 2. 创建 `.env`\n\n如果安装后的 Skill 目录里带有 env 样板文件，直接复制成 `.env`：\n\n```bash\ncd <skills-dir>/quark-lazy-cli\n\ncp ./.env.local.example .env\n```\n\n如果安装后的目录没有 env 样板文件，就读取 `references/环境变量.md`，由 Agent 根据里面的完整模板创建并编辑 `.env`。\n\n### 3. 写入基础配置\n\n把下面内容写入 `<skills-dir>/quark-lazy-cli/.env`，并把占位值改成用户自己的 QAS 信息：\n\n```env\n# QAS 后端地址，例如：http://192.168.1.10:15305\nQAS_HOST=http://your-qas-host:port\n\n# QAS API Token，可在 QAS Web 管理页面查看\nQAS_API_TOKEN=your-qas-api-token\n\n# 网盘资源搜索选择的顾问模式：human / code / llm / agent\nLAZY_CLI_ADVISOR=code\n\n# 运行时目录，建议使用绝对路径，放在 Skill 目录下，便于 Agent 清理和迁移\nLAZY_CLI_LOG_DIR=<skills-dir>/quark-lazy-cli/runtime/logs\nLAZY_CLI_REPORT_DIR=<skills-dir>/quark-lazy-cli/runtime/report\nLAZY_CLI_AGENT_MSG_DIR=<skills-dir>/quark-lazy-cli/runtime/message\n```\n\n如果想在任意目录下运行，建议加入 `--env`：\n\n```bash\nqslazy update new 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n如果临时覆盖 `.env` 的配置，可以不更改.env，命令行示例：\n\n```bash\nLAZY_CLI_ADVISOR=llm qslazy update new 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n环境变量优先顺序从高到低：\n\n```text\n命令行临时环境变量 > 系统环境变量 > --env 指定的 .env 文件 > 默认值\n```\n\n因此 `LAZY_CLI_ADVISOR=llm qslazy ... --env ...` 只会临时覆盖本次命令，不会修改 `.env` 文件。\n\n## 常用命令\n\n### 1. 验证安装\n\n```bash\nqslazy --help\nqslazy task --help\nqslazy update --help\n```\n\n### 2. 查看订阅\n\n```bash\nqslazy task list --env <skills-dir>/quark-lazy-cli/.env\n```\n\n### 3. 查看订阅任务状态\n\n```bash\nqslazy task status 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n### 4. 追更新集（必须先获得用户授权，禁止自行测试）\n\n禁止把更新命令当作安装测试或功能测试。只有用户明确要求更新、追新或修复订阅时，才可以执行。\n\n```bash\nLAZY_CLI_ADVISOR=code qslazy update new 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n### 5. 补全缺集 + 追新（必须先获得用户授权，禁止自行测试）\n\n禁止在用户只要求“看看”“检查”“测试 skill”时执行。先用 `task status` 汇报状态，再询问用户是否更新。\n\n```bash\nLAZY_CLI_ADVISOR=code qslazy update all 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n## 进阶能力索引\n\n### 了解用户订阅情况和资源发布规律\n\n读取文件：`references/订阅时间估算.md`\n\n用于：\n- 批量分析 `task status` 输出\n- 推算订阅更新时间\n- 维护订阅时间表\n\n### 配置完整 OpenClaw 定时任务\n\n读取文件：`references/OpenClaw定时任务.md`\n\n用于：\n- 创建定时更新任务\n- 设置通知参数\n- 维护定时任务\n\n### 让 Agent 做每日订阅汇报\n\n读取文件：`references/每日汇报.md`\n\n用于：\n- 首次使用先把 `./scripts/daily_report.sample.sh` 复制为 `./scripts/daily_report.local.sh`\n- 定时运行 `./scripts/daily_report.local.sh`\n- 汇报每日订阅状态\n- 发现新资源时先询问用户是否更新\n\n### 处理复杂资源选择\n\n读取文件：`references/顾问模式.md`\n\n用于：\n- 理解 `code / llm / agent / human` 顾问模式\n- 使用 `--add-prompt`\n- 处理 Agent JSON 决策\n\n## 铁律\n\n- 永远先观察再行动；用户只说“看看/检查/分析/测试 skill”时，只运行 `task list/status`。\n- 未获用户授权，不执行 `update new/all`，不新增、修改或删除定时任务。\n- 默认只根据 stdout 汇报；除非排错或用户要求，不读 log/报告文件，避免浪费 Token。\n- 不暴露 QAS API Token，不把真实 token 写进示例、回复、日志或定时任务。\n- 不擅自删除、改名或移动用户网盘文件。\n- 不直接修改 `scripts/*.sample.sh`。这些是升级可覆盖的样板脚本；用户定制应复制为 `scripts/*.local.sh`，并运行 `.local.sh`。\n- 不擅自研究、审查或修改 qslazy 源码。只有用户明确要求“看代码”“修 bug”“做开发/审查”时，才进入代码层；普通订阅维护只使用 CLI 和 reference 文档，避免浪费 Token。\n- 资源命名混乱时，不用 `code` 硬选，改用 `llm` 或 `agent`，并读取 `references/顾问模式.md`。\n\nFile v0.1.17:README.md\n\n# 夸克网盘懒人追剧、追番 SKILL\n\n基于 QAS（夸克网盘自动转存项目）的懒人追剧、追番 SKILL，也内置了一个 CLI 工具。即使 QAS 的剧集订阅失效，它也可以重新搜索资源、探查多级资源目录，并在多个最新候选资源中按用户偏好（如更高清晰度）转存新剧集和缺失剧集。\n\n可以交给本地 OpenClaw、Hermes Agent 或其他 Agent 使用，用来设置定时任务、定时汇报，并在订阅失败时辅助修复。\n有 Python 运行环境的进阶用户，也可以把它当作命令行工具使用。\n\n感谢QAS项目提供的强大的功能和优质的用户体验，本项目不是对QAS Web UI的替代，而聚焦订阅剧集的”偷懒的更新“。\n\n## 核心需求：\n\n- QAS 的订阅时常会失效<br>\n  手工查询、维护订阅任务很麻烦。等忙完想起来再去找新资源时，资源可能已经失效了。\n\n- Infuse、Emby 的海报墙被重复剧集搞乱<br>\n  分享资源内容可能重复，例如：凡人修仙传.S05E01.4K.mkv、凡人修仙传.S05E01.dv.mkv。用正则模板转存时，可能会把两个文件都转存下来，造成剧集文件混乱，让 Infuse、Emby 等媒体库的海报墙乱掉，需要手动删除、改名和维护。\n\n- 喜欢最高视频编码的资源<br>\n  如果偏好最高视频编码的资源，或希望选择较小体积的视频，通常需要手动下探搜索结果目录、挑选和比对。\n\n- Agent 来了，自己更懒了<br>\n  让 Agent 忙起来，自己安心当懒人。\n\n## 项目甜点：\n\n- 再也不操心订阅失效<br>\n\n- 节省 Token。命名规范、发布清晰的分享资源，可以交给 `code` 顾问执行；复杂资源情况则交给 Agent 或 LLM 大模型判断和决策<br>\n\n- Agent 可以使用 SKILL 分析资源的发布规律，并配置合理的订阅更新时间<br>\n\n- 多资源匹配用户需求、精准指定目标文件名做转存，有效规避资源目录多个相同剧集都下载搞了视频目录、资源发布时间和剧集顺序不相符情况 会看过的剧集<br>\n\n## 四种更新运行模式\n\n环境变量 `LAZY_CLI_ADVISOR`参数 是网盘资源搜索后的决策机制，用来决定候选资源怎么选。\n\n- `code`：用代码规则自动决策。适合后台任务、资源发布规范的剧集、资源目录有“更新至n集“；速度快，无需交互，不消耗 LLM Token。\n- `llm`：后台任务中引入大模型做资源选择。适合多版本编号冲突等复杂资源；可配合 `--add-prompt` 改AI大模型定制判断规则。\n- `agent`：由当前 Agent 在和用户交互过程中判断候选资源。适合复杂场景的临时更新，或者在Openclaw Heateat机制里，维护和修复复杂订阅更新的场景使用。\n- `human`：用户人工选择。适合用户想亲自确认资源的场景。\n---\n\n## 使用概览\n\n### 1. 手动追剧更新\n\n```bash\n# 追新：只转存高于当前最高集的新资源\nqslazy update new 凡人修仙传\n\n# 全量：补漏 + 追新\nqslazy update all 凡人修仙传\n```\n\n### 2. 查看订阅状态\n\n```bash\nqslazy task list\nqslazy task status 凡人修仙传\n```\n\n`task status` 会展示本地网盘状态、缺集情况、搜索到的资源发布时间，适合用来判断订阅是否正常，也可以帮助 Agent 推算最佳订阅更新时间。\n\n### 3. Agent / OpenClaw / Hermes 用法\n\n本项目提供 [SKILL.md](./SKILL.md)，包含更详细的 Agent 操作说明：\n\n- 如何查看订阅任务和单个剧集状态\n- 如何根据资源发布时间制定最佳订阅更新时间\n- `LAZY_CLI_ADVISOR=agent` 的决策文件工作流\n- Hermes Agent / OpenClaw 的后台执行与轮询方式\n- `--add-prompt` 的复杂资源筛选用法\n\n详细 Agent 用法请阅读 [SKILL.md](./SKILL.md)。\n\n---\n\n## 2. 安装和环境配置\n\n安装分两步：**Skill 文档**（告诉 Agent 怎么用）和 **qslazy CLI**（真正干活的命令）。两个都要装。\n\n### 第一步：安装 Skill 文档\n\nskills.sh / 通用 Agent：\n\n```bash\nnpx skills add jesustoachild/quark-lazy-cli\n```\n\nOpenClaw / ClawHub：\n\n```bash\nopenclaw skills install quark-lazy-cli\n```\n\n> Skill 安装只安装 SKILL.md、示例配置和辅助资源，不安装 Python 包。\n\n### 第二步：安装 qslazy CLI（必须）\n\n**pipx 安装（推荐）**：适用 Linux 服务器 / 已具备 Python 3.10+ 和 pipx 的用户。\n\n```bash\npipx install git+https://github.com/jesustoachild/quark-lazy-cli.git\n```\n\n**源码安装**：\n\n```bash\ngit clone https://github.com/jesustoachild/quark-lazy-cli.git\ncd quark-lazy-cli\npip install -e .\n```\n\n## 快速开始\n- 让你的 OpenClaw Agent 完成配置<br>\n- 或者，有 Python 运行环境的进阶用户可以手动配置和使用\n\n### 1. 配置环境\n\n```bash\ncd /<skill>/quark-lazy-cli\ncp .env.local.example .env\n```\n\n如果安装后的目录没有 `.env.local.example`，请读取 `references/环境变量.md`，根据里面的完整模板手动创建并编辑 `.env`。\n\n详细使用方式请阅读 `SKILL.md`。\n\n\n### 2. 查看订阅\n\n```bash\nqslazy task list\n```\n\n### 3. 查看订阅任务状态\n\n```bash\nqslazy task status 凡人修仙传\n```\n---\n\n### 4. 追更新集\n\n```bash\nqslazy update new 凡人修仙传\n```\n\n### 5. 补全缺集 + 追新\n\n```bash\nqslazy update all 凡人修仙传\n```\n\n\n## 许可证\n\nMIT\n\nFile v0.1.17:_meta.json\n\n{\n  \"ownerId\": \"kn76hk2rqrfzkebgwshctshq51813c92\",\n  \"slug\": \"quark-lazy-cli\",\n  \"version\": \"0.1.17\",\n  \"publishedAt\": 1779622040379\n}\n\nFile v0.1.17:references/OpenClaw定时任务.md\n\n# OpenClaw 定时任务\n\n本参考仅在用户要求配置 OpenClaw 定时订阅任务时读取。配置前必须已经运行过 `qslazy task status 剧名`，并根据资源发布时间向用户确认过“时间优先”或“画质优先”策略。\n\n## 推荐流程\n\n1. 用 `qslazy task status 剧名 --env <skills-dir>/quark-lazy-cli/.env` 查看网盘状态和资源发布时间。\n2. 询问用户偏好：\n   - 时间优先：最早有效资源发布时间 + 4 小时。\n   - 画质优先：最后一批高质量资源发布时间 + 4 小时。\n3. 用户确认后，再创建 OpenClaw 定时任务。\n4. 简单、命名规范的资源默认用 `LAZY_CLI_ADVISOR=code`，避免每次唤醒大模型。\n\n## 定时任务模板\n\n```bash\nopenclaw cron add \\\n  --name \"凡人修仙传-定时更新\" \\\n  --cron \"30 2 * * 0\" \\\n  --tz \"Asia/Shanghai\" \\\n  --session isolated \\\n  --agent AgentName \\\n  --announce \\\n  --channel feishu \\\n  --account bot-AgentName \\\n  --to \"USER_OPEN_ID\" \\\n  --message \"bash -c 'LAZY_CLI_ADVISOR=code qslazy update all 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env'\\n\\n仅根据 stdout 汇报结果，除非排错，不要读取 log 或报告文件。\"\n```\n\n替换项：\n\n- `凡人修仙传-定时更新`：任务显示名。\n- `30 2 * * 0`：定时表达式（cron 格式）。\n- `AgentName`：执行任务的 OpenClaw Agent。\n- `bot-AgentName`：通知账号。\n- `USER_OPEN_ID`：通知目标。\n- `<skills-dir>/quark-lazy-cli/.env`：实际 Skill 安装目录中的 `.env`。\n\n## 常用时间\n\n```text\n每周一 22:00 -> 0 22 * * 1\n每周六 14:00 -> 0 14 * * 6\n每周日 02:30 -> 30 2 * * 0\n每天 09:00 兜底 -> 0 9 * * *\n```\n\n## 汇报格式\n\n定时任务执行后，只根据 stdout 汇报。建议包含：\n\n```text\n订阅：\n当前：\n目标：\n偏好：\n更新结果：\n新增集数：\n补全剧集：\n```\n\n## 维护命令\n\n```bash\nopenclaw cron list\nopenclaw cron run <job-id>\nopenclaw cron edit <job-id> --cron \"0 22 * * 1\"\nopenclaw cron edit <job-id> --disable\nopenclaw cron edit <job-id> --enable\nopenclaw cron rm <job-id>\n```\n\n执行 `edit`、`rm` 等变更操作前，先向用户确认。\n\nFile v0.1.17:references/每日汇报.md\n\n# 每日汇报\n\n本参考用于配置 OpenClaw Agent 每日运行 `scripts/daily_report.local.sh`，汇总当天需要关注的订阅状态，并在发现网络资源高于网盘最高集时询问用户是否更新。\n\n## 使用场景\n\n用户说：\n\n- “帮我每天汇报订阅情况”\n- “每天检查今天该更新的剧”\n- “发现有新资源时问我要不要更新”\n- “帮我配置每日懒人汇报”\n\nAgent 应读取本参考。\n\n## 脚本说明\n\n脚本位置：\n\n```bash\n<skills-dir>/quark-lazy-cli/scripts/daily_report.local.sh\n```\n\n首次使用先从样板复制：\n\n```bash\ncp <skills-dir>/quark-lazy-cli/scripts/daily_report.sample.sh \\\n   <skills-dir>/quark-lazy-cli/scripts/daily_report.local.sh\n```\n\n用法：\n\n```bash\nbash <skills-dir>/quark-lazy-cli/scripts/daily_report.local.sh [星期几] [env路径]\n```\n\n示例：\n\n```bash\nbash <skills-dir>/quark-lazy-cli/scripts/daily_report.local.sh 6 <skills-dir>/quark-lazy-cli/.env\n```\n\n参数：\n\n- `星期几`：可选。`1=周一`，`2=周二`，...，`7=周日`。不传则自动使用当天。\n- `env路径`：可选。推荐传入 `<skills-dir>/quark-lazy-cli/.env`。\n\n使用前，需要把 `daily_report.local.sh` 里的 `剧名1`、`剧名2`、`剧名3` 替换成用户真实的 QAS 任务名。\n\n不要直接修改 `daily_report.sample.sh`。`.sample.sh` 是仓库提供的升级样板，后续升级可以覆盖；`.local.sh` 是用户自己的定制脚本，应保留在本地。\n\n脚本里的剧集分组应根据 [订阅时间估算.md](订阅时间估算.md) 中维护的“动漫订阅更新时间建议表”设计：\n\n- 周一汇报周一需要关注的剧。\n- 周二汇报周二需要关注的剧。\n- 如果某部剧有兜底重试时间，也可以同时放入兜底日期。\n- `run_status \"剧名1\"` 里的剧名必须使用表格里的 `taskname`，不要使用随意昵称。\n\n示例：\n\n```md\n| taskname | 剧名/显示名 | 更新策略 | 建议订阅更新时间 | 定时表达式 | 状态 | 备注 |\n|----------|-------------|----------|------------------|-------------|------|------|\n| 剧名1 | 剧名1 | 画质优先 | 周一 22:00 | `0 22 * * 1` | 正常 | |\n| 剧名2 | 剧名2 | 画质优先 | 周一 23:00 | `0 23 * * 1` | 正常 | |\n| 剧名3 | 剧名3 | 时间优先 | 周二 20:30 | `30 20 * * 2` | 正常 | |\n```\n\n对应脚本：\n\n```bash\n1)\n  echo \"📅 周一\"\n  run_status \"剧名1\"\n  run_status \"剧名2\"\n  ;;\n2)\n  echo \"📅 周二\"\n  run_status \"剧名3\"\n  ;;\n```\n\n## OpenClaw 定时任务模板\n\n```bash\nopenclaw cron add \\\n  --name \"qslazy-每日订阅汇报\" \\\n  --cron \"30 23 * * *\" \\\n  --tz \"Asia/Shanghai\" \\\n  --session isolated \\\n  --agent AgentName \\\n  --announce \\\n  --channel feishu \\\n  --account bot-AgentName \\\n  --to \"USER_OPEN_ID\" \\\n  --message \"bash -c 'bash <skills-dir>/quark-lazy-cli/scripts/daily_report.local.sh \\\"\\\" <skills-dir>/quark-lazy-cli/.env'\\n\\n请根据 stdout 汇报订阅状态。如果发现网络资源的最高集数高于网盘最高集，先询问用户是否执行 qslazy update all，不要自动更新。\"\n```\n\n替换项：\n\n- `AgentName`：执行汇报的 OpenClaw Agent。\n- `bot-AgentName`：通知账号。\n- `USER_OPEN_ID`：通知目标。\n- `<skills-dir>/quark-lazy-cli`：实际 Skill 安装目录。\n\n## Agent 汇报规则\n\nAgent 只根据 stdout 汇报，除非排错，不读取 log 或报告文件。\n\n每个任务建议汇报：\n\n```text\n[ 凡人修仙传 ]\n\n💾 网盘：最高 82（更新于：昨天），最低 78，缺[79, 80]\n🎯 目标：第82集以上资源\n💎 偏好：最高画质优先\n\n🔍 最新资源：今天和昨天\n🔍 资源更新至：83集\n\n状态总结：网盘最高 82 vs 资源更新至 83，需要更新；同时网盘缺[79, 80]，建议补漏。\n```\n\n状态文案建议：\n\n```text\n状态总结：网盘最高 X vs 资源更新至 X，网盘已是最新。\n状态总结：网盘最高 X vs 资源更新至 Y，需要更新。\n状态总结：网盘最高 X vs 资源更新至 Y，需要更新；同时网盘缺[...]，建议补漏。\n状态总结：资源编号或版本较复杂，需要人工确认。\n```\n\n## 发现新资源时的处理\n\n如果 stdout 显示网络候选资源高于网盘最高集，例如：\n\n```text\n网盘：最高 22\n候选资源：更新至 23 集\n```\n\nAgent 不能自动更新，必须先按上面的格式汇报，再问用户：\n\n```text\n我看到《剧名1》网盘最高到第 22 集，但网络资源已更新到第 23 集。\n是否现在执行 `qslazy update all 剧名1 --env <skills-dir>/quark-lazy-cli/.env` 追新并补漏？\n```\n\n用户确认后再执行：\n\n```bash\nLAZY_CLI_ADVISOR=code qslazy update all 剧名1 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n如果资源命名复杂、编号冲突或画质选择困难，改用：\n\n```bash\nLAZY_CLI_ADVISOR=llm qslazy update all 剧名1 \\\n  --env <skills-dir>/quark-lazy-cli/.env \\\n  --add-prompt \"写入该剧的特殊筛选规则\"\n```\n\n## 关键限制\n\n- 每日汇报是只读检查，默认不更新订阅。\n- 用户未授权时，不执行 `update new` 或 `update all`。\n- 发现网络资源更高时，只能询问用户是否更新。\n- 不要把真实 QAS Token、Feishu open_id 或用户私有路径写入公开模板。\n\nFile v0.1.17:references/环境变量.md\n\n# 环境变量\n\n如果安装后的 Skill 目录没有 `.env.local.example`，Agent 应根据本文件创建：\n\n```text\n<skills-dir>/quark-lazy-cli/.env\n```\n\n创建后必须替换：\n\n- `QAS_HOST`\n- `QAS_API_TOKEN`\n- 所有 `<skills-dir>` 占位符\n\n完整模板：\n\n```env\n# quark-lazy-cli 环境变量配置文件。推荐放在 Skill 目录根部，并通过 --env <skills-dir>/quark-lazy-cli/.env 指定。\n\n# QAS 服务配置\n# QAS 后端地址，例如：http://192.168.1.10:15305\nQAS_HOST=http://your-qas-host:port\n# QAS API Token，可在 QAS Web 管理页面查看\nQAS_API_TOKEN=your-qas-api-token\n\n# 系统及搜索策略配置\n# LAZY_CLI_EP_SELECTION_POLICY: 选片策略 prefer_quality=最高画质 prefer_size=最大体积\nLAZY_CLI_EP_SELECTION_POLICY=prefer_quality\n# LAZY_CLI_SEARCH_BATCH_DISP: 搜索结果分页显示数量\nLAZY_CLI_SEARCH_BATCH_DISP=30\n# LAZY_CLI_SEARCH_EXPIRATION_DAYS: 资源新鲜度阈值（天），超过则视为旧资源，根据剧集更新频率而定，LLM 和 code 顾问，只看新鲜资源\nLAZY_CLI_SEARCH_EXPIRATION_DAYS=7\n# LAZY_CLI_DRILL_MAX_DEPTH: BFS探查子目录最大深度\nLAZY_CLI_DRILL_MAX_DEPTH=3\n# LAZY_CLI_MAX_SEARCH_BREADTH: 最大搜索有效资源个数\nLAZY_CLI_MAX_SEARCH_BREADTH=10\n\n# Advisor 模式：human（默认）/ code / llm / agent\nLAZY_CLI_ADVISOR=code\nLAZY_CLI_HUMAN_FILTER=true\n\n# Agent 顾问配置（LAZY_CLI_ADVISOR=agent 时生效）\n\nLAZY_CLI_AGENT_POLL_INTERVAL=15\n\n# LLM 顾问配置（可选，仅 LAZY_CLI_ADVISOR=llm 时生效）\n# 支持 OpenAI-compatible API 服务\nLAZY_CLI_LLM_OPENAI_API_BASE=https://api.example.com/v1\nLAZY_CLI_LLM_OPENAI_API_KEY=your-api-key\nLAZY_CLI_LLM_OPENAI_MODEL=your-model-name\nLAZY_CLI_LLM_TEMPERATURE=0.4\n\n\n# 日志配置\nLAZY_CLI_DEBUG=false\n\n# 建议使用 Skill 目录下的 runtime 目录，便于 Agent 清理和迁移\nLAZY_CLI_LOG_DIR=<skills-dir>/quark-lazy-cli/runtime/logs\nLAZY_CLI_REPORT_DIR=<skills-dir>/quark-lazy-cli/runtime/report\nLAZY_CLI_AGENT_MSG_DIR=<skills-dir>/quark-lazy-cli/runtime/message\n```\n\n环境变量优先顺序：\n\n```text\n命令行临时环境变量 > 系统环境变量 > --env 指定的 .env 文件 > 默认值\n```\n\nFile v0.1.17:references/订阅时间估算.md\n\n# 订阅时间估算\n\n本参考用于 Agent 根据 `qslazy task status` 或 `scripts/check_all_status.local.sh` 的批量输出，推算每部剧/番的最佳订阅更新时间，并写入订阅时间表。\n\n## 什么时候读取\n\n当用户说：\n\n- “帮我接管订阅维护”\n- “帮我看看所有剧什么时候更新合适”\n- “根据资源发布时间制定订阅时间”\n- “生成/更新动漫订阅时间表”\n\nAgent 应读取本参考。\n\n## 批量获取状态\n\n开发目录提供了批量巡检脚本样板。首次使用先复制为本地脚本，避免升级覆盖用户定制：\n\n```bash\ncp scripts/check_all_status.sample.sh scripts/check_all_status.local.sh\nbash scripts/check_all_status.local.sh\n```\n\n它会依次执行：\n\n```bash\nqslazy task list\nqslazy task status <taskname>\n```\n\n输出形态示例：\n\n```text\n================================================\n🔍 任务: '仙剑奇侠传.2025'\n\n  [ 仙剑奇侠传.2025 ] ⏳ Searching for 仙剑奇侠传...\n\n============================================================\n  📋 任务：仙剑奇侠传.2025\n  💾 网盘：最高 22（更新于：5天前），最低 1，无缺集\n  🎯 目标：第22集以上资源\n  💎 偏好：最高画质优先\n\n============================================================\n🔍 7 天内新鲜资源：搜索到 3 个，验证资源有效后：3 个\n============================================================\n\n  [1] [5天前 21:55 周二] 仙剑奇侠传三 4K臻彩MAX [更新至22集]\n  [2] [5天前 21:41 周二] 仙剑奇侠传叁(2025)4K 臻彩MAX S01E01 - E22 HIFI声 HiveWeb\n  [3] [6天前 15:13 周二] 仙剑奇侠传叁‎ (2025) 4K 更新至22集  仙剑奇侠传3动画版\n\n🔍 7-14 天旧资源：搜索到 1 个，验证资源有效后：0 个（其中 1 个失效）\n============================================================\n  [X] [9天前 18:30 周日] 仙剑奇侠传叁(2025)4K 旧资源（失效：分享地址已失效）\n```\n\n其中 `7` 来自 `LAZY_CLI_SEARCH_EXPIRATION_DAYS`。如果该环境变量改为 `5`，状态页会显示 `5 天内新鲜资源` 和 `5-10 天旧资源`。\n\n## 状态输出解读\n\n`qslazy task status` 会显示两个观察窗口：\n\n- `{LAZY_CLI_SEARCH_EXPIRATION_DAYS}` 天内新鲜资源。\n- `{LAZY_CLI_SEARCH_EXPIRATION_DAYS}` 到 `{LAZY_CLI_SEARCH_EXPIRATION_DAYS * 2}` 天旧资源。\n\n列表标记含义：\n\n- `[1]`、`[2]`、`[3]`：验证有效资源，可用于判断可下载资源和发布时间。\n- `[X]`：验证失效资源，仅用于观察发布规律，不可选择，不进入 advisor/BFS/下载流程。\n\n失效资源仍然有参考价值：\n\n- 如果同一资源站每天都发布但很快失效，说明它发布活跃但稳定性差。\n- 如果新鲜资源大多失效，而较晚发布的资源有效，订阅时间应更偏向画质优先或延后执行。\n- 如果旧资源持续失效，说明该源不适合作为长期订阅依据。\n\n注意：`update` 的 human 选择界面也会展示 `[X]` 失效资源，但 `[X]` 不占数字序号，不能被选择；LLM advisor 只接收有效资源列表，并只看到失效资源摘要。\n\n## 估算规则\n\nAgent 从每个任务的候选资源发布时间里提取：\n\n- 最早有效资源发布时间\n- 最后一批高质量资源发布时间\n- 失效资源发布时间和数量\n- 资源是否集中在同一天、同一时间段\n- 是否有旧资源或失效资源干扰\n- 网盘当前最高集和更新时间\n\n然后先问用户偏好：\n\n```text\n你希望订阅更新时间偏向哪种策略？\n1. 时间优先：按最早有效资源发布时间 + 4 小时安排，尽快看到更新。\n2. 画质优先：按最后一批高质量资源发布时间 + 4 小时安排，等待高码率、HDR/DV、字幕组或更完整资源。\n```\n\n默认建议：\n\n- 用户不明确选择时，使用画质优先。\n- 对经常延迟或资源波动大的剧，加一次次日上午兜底重试。\n- 对已下线或长期无新资源的剧，标为手动维护。\n- 如果新鲜资源中 `[X]` 很多，但有效资源集中在更晚时间，优先参考有效资源发布时间，不要按失效资源的最早时间提前订阅。\n- 如果 `[X]` 连续多周出现在同一发布源，可在备注中标记“该源易失效”，避免把它作为唯一订阅依据。\n\n## 示例推导\n\n### 仙剑奇侠传.2025\n\n候选资源：\n\n- 周二 21:55：4K 臻彩MAX，更新至 22 集\n- 周二 21:41：4K 臻彩MAX，S01E01 - E22\n- 周二 15:13：4K，更新至 22 集\n\n建议：\n\n- 时间优先：周二 19:13 以后。\n- 画质优先：周三 01:55 左右。\n- 如果用户偏好稳定高质量资源，建议周三 02:00。\n\n### 斗破苍穹\n\n候选资源：\n\n- 周六 18:48 到 20:23 集中发布。\n- 多个 4K / 10bit / 臻彩资源，更新至 199 集。\n\n建议：\n\n- 时间优先：周六 22:50 左右。\n- 画质优先：周日 00:30 左右。\n- 若用户不急，建议周日 00:30 或周日 01:00。\n\n## 订阅时间表模板\n\n| taskname | 剧名/显示名 | 更新策略 | 建议订阅更新时间 | 定时表达式 | 状态 | 备注 |\n|----------|-------------|----------|------------------|-------------|------|------|\n| 剧名1 | 剧名1 | 画质优先 | 周六 02:30 | `30 2 * * 6` | 正常 | 参看：剧名1 订阅特殊说明 |\n| 剧名2 | 剧名2 | 时间优先 | 周日 00:30 | `30 0 * * 0` | 正常 | |\n| 剧名3 | 剧名3 | 手动维护 | — | ❌ 已下线 | 暂停 | 资源下线或订阅暂停 |\n\n字段说明：\n\n- `taskname`：QAS 里的订阅任务名，也是 qslazy 命令参数。\n- `剧名/显示名`：给用户看的名称，可以比 `taskname` 更自然。\n- `更新策略`：`时间优先`、`画质优先`、`手动维护` 或用户指定策略。\n- `建议订阅更新时间`：自然语言时间，方便用户阅读。\n- `定时表达式`：OpenClaw 使用的 cron 格式时间表达式。\n- `状态`：`正常`、`暂停`、`手动维护`、`待确认` 等。\n- `备注`：特殊资源规则、用户偏好、下线原因或参考说明。\n\n## 订阅特殊说明示例\n\n### 剧名1  订阅特殊说明\n\n- 目前资源发布有 2 套剧集编号格式：\n  - A 编号格式：百炼成神第三季从 01 开始，剧集名特征是 2 位数字，例如“更新至 22 集”。\n  - B 编号格式：百炼成神从第一季到现在一直使用累计编号，例如 `EP127`。\n\n- 用户需求：\n  - 选择 A 编号格式的 URL。\n  - 使用 A 编号格式 URL 中的最新剧集编号。\n\n推荐执行方式：\n\n```bash\nLAZY_CLI_ADVISOR=llm qslazy update new 剧名1  \\\n  --env <skills-dir>/quark-lazy-cli/.env \\\n  --add-prompt \"目前资源发布有两套剧集编号格式：A 格式为第三季从 01 开始的两位数字编号，如更新至 22 集；B 格式为从第一季累计到现在的 EP1xx 编号，如 EP127。请选择 A 格式的 URL，并取 A 格式中的最新剧集编号。\"\n```\n\n## Agent 维护规则\n\n- 新增剧名前，先运行 `qslazy task status <taskname> --env <skills-dir>/quark-lazy-cli/.env`。\n- 根据 stdout 中的资源发布时间推算更新时间，不要凭空填写。\n- 配置定时任务前，必须向用户确认更新策略。\n- 已下线、资源不稳定或需要人工判断的剧，状态标记为 `手动维护` 或 `待确认`。\n- 特殊资源规则不要塞进主表，放到下方“订阅特殊说明”。\n\nFile v0.1.17:references/顾问模式.md\n\n# 顾问模式\n\n本参考用于复杂资源选择、LLM 顾问、Agent 顾问 JSON 决策，以及 OpenClaw/Hermes 后台轮询。\n\n## Advisor 模式\n\n`LAZY_CLI_ADVISOR` 决定资源选择方式。\n\n| 模式 | 适合场景 | Agent 行为 |\n|------|----------|------------|\n| `human` | 用户手动确认 | 让用户看候选资源并选择 |\n| `code` | 命名规范、集数清晰、资源简单 | 默认推荐，用规则自动选择 |\n| `llm` | 多版本、画质/字幕/编号偏好复杂 | 加 `--add-prompt` 说明偏好 |\n| `agent` | 外部 Agent 需要亲自判断候选资源 | 启动 CLI，读取 stdout，写 JSON 决策文件 |\n\nLLM 顾问配置仅在 `LAZY_CLI_ADVISOR=llm` 时需要：\n\n```env\nLAZY_CLI_LLM_OPENAI_API_BASE=https://api.example.com/v1\nLAZY_CLI_LLM_OPENAI_API_KEY=your-api-key\nLAZY_CLI_LLM_OPENAI_MODEL=your-model-name\n```\n\n## 复杂资源筛选：--add-prompt\n\n当资源存在多版本、多编号、多字幕组或排除条件时，使用 `--add-prompt` 明确选择规则。\n\n```bash\nLAZY_CLI_ADVISOR=llm qslazy update all 凡人修仙传 \\\n  --env <skills-dir>/quark-lazy-cli/.env \\\n  --add-prompt \"只选择 S03E01 重新编号格式，不选择 EP 累计格式；优先 4K 高码率，其次 WEB-DL。\"\n```\n\n常见提示：\n\n| 场景 | `--add-prompt` 示例 |\n|------|---------------------|\n| 特定画质 | `优先选择 4K DV 或 HDR，不选择 1080p` |\n| 特定字幕 | `优先选择内封中字资源` |\n| 编号冲突 | `只选 S03E01 重新编号格式，不选 EP 累计格式` |\n| 排除版本 | `排除国配版本，排除合集压缩包` |\n| 体积偏好 | `在集数完整的前提下，优先选择较小体积版本` |\n\n## Agent 顾问模式\n\n`LAZY_CLI_ADVISOR=agent` 用于让外部 Agent 自己判断候选资源。CLI 会在 stdout 输出候选资源列表和一个 `advisor__任务名__时间戳.json` 文件路径。\n\n启动时建议使用未缓冲输出：\n\n```bash\nPYTHONUNBUFFERED=1 LAZY_CLI_ADVISOR=agent qslazy update all 剧名 --env <skills-dir>/quark-lazy-cli/.env\n```\n\nAgent 看到决策文件路径后，写入 JSON：\n\n```json\n{\"selected\": [1, 2, 3, 4], \"max_ep\": 80}\n```\n\n字段含义：\n\n- `selected`：选择的候选资源序号，使用 stdout 中的 1-based 序号。\n- `max_ep`：Agent 根据候选标题判断出的最新集数。\n\n注意：\n\n- 不要向 stdin 输入选择。\n- 必须结合任务目标和候选资源标题判断。\n- 5 分钟内没有写入决策文件，CLI 会超时。\n\n## Hermes Agent / OpenClaw 轮询方式\n\n| 步骤 | Hermes Agent | OpenClaw |\n|------|--------------|----------|\n| 启动 CLI | `terminal(background=true, pty=true, command=\"PYTHONUNBUFFERED=1 ...\")` | `exec(command, pty=True, yieldMs=120000)` |\n| 等待/轮询 | `process(wait)` / `process(poll)` | `process(action=\"poll\", sessionId=session, timeout=...)` |\n| 写决策文件 | 手动写 `advisor__任务名__时间戳.json` | `open(...)` + `json.dump(...)` |\n| 超时 | 5 分钟 | 5 分钟（20 × 15s） |\n\nFile v0.1.17:assets/订阅时间表.md\n\n## 剧集订阅更新时间建议表\n\n以下是根据各剧集历史发布时间统计得出的**建议订阅更新时间**（已预留缓冲时间）：\n\n| 动漫名称 | 建议订阅更新时间 | cron 表达式 | 备注 |\n|---------|----------------|------------|------|\n| 剧集名-01 | 周一 22:00 | `0 22 * * 1` | 参看：剧集名-01 订阅特殊说明 |\n| 剧集名-02 | 周二 18:04 | `4 18 * * 2` | |\n| 剧集名-03 | — | ❌ 已下线 | 手动维护 |\n| 剧集名-04 | 周三 21:30 | `30 21 * * 3` | |\n| 剧集名-05 | 周四 21:20 | `20 21 * * 4` | |\n| 剧集名-06 | 周五 21:30 | `30 21 * * 5` | |\n| 剧集名-07 | 周四 19:01 | `1 19 * * 4` | |\n| 剧集名-08 | 周日 20:00 | `0 20 * * 0` | |\n| 剧集名-09 | 周五 19:02 | `2 19 * * 5` | |\n| 剧集名-10 | 周五 20:30 | `30 20 * * 5` | |\n| 剧集名-11 | 周五 23:00 | `0 23 * * 5` | |\n| 剧集名-12 | 周六 22:00 | `0 22 * * 6` | |\n| 剧集名-13 | 周六 19:00 | `0 19 * * 6` | |\n| 剧集名-14 | 周六 22:00 | `0 22 * * 6` | |\n| 剧集名-15 | 周六 22:10 | `10 22 * * 6` | |\n| 剧集名-16 | 周日 15:00 | `0 15 * * 0` | |\n| 剧集名-17 | 周日 22:00 | `0 22 * * 0` | |\n\n\n---\n## 剧集名-01 订阅特殊说明\n- 目前资源发布有2套剧集编号格式，\n  A编号格式，剧集名-01 第三季从01开始，剧集名特性是2为数字，如更新至22集\n  B编号格式，剧集名-01 第一季到现在一直未按新季从1开始，所以累计1xx集， 如EP127\n\n- 用户需求要选择：A编号格式的URL，和A编号格式的URL中的最新剧集编号\n\nFile v0.1.17:skills-lock.json\n\n{\n  \"version\": 1,\n  \"skills\": {\n    \"quark-lazy-cli\": {\n      \"source\": \"jesustoachild/quark-lazy-cli\",\n      \"sourceType\": \"github\",\n      \"skillPath\": \"SKILL.md\",\n      \"computedHash\": \"3702bd1b9267170319101c3eca4fa10e47e5fc17a212fb838618a70b2eb200dd\"\n    }\n  }\n}\n\nFile v0.1.17:pyproject.toml\n\n[project]\nname = \"quark-lazy-cli\"\nversion = \"0.1.17\"\ndescription = \"基于QAS的夸克云盘懒人追剧工具\"\nreadme = \"README.md\"\nrequires-python = \">=3.10\"\ndependencies = [\n    \"requests>=2.28.0\",\n    \"click>=8.0.0\",\n    \"python-dotenv>=1.0.0\",\n]\n\n[project.scripts]\nquark_lazy_cli = \"quark_lazy_cli.main:cli\"\nqslazy = \"quark_lazy_cli.main:cli\"\n\n[build-system]\nrequires = [\"setuptools>=61.0\"]\nbuild-backend = \"setuptools.build_meta\"\n\n[tool.setuptools.packages.find]\nwhere = [\"src\"]\ninclude = [\"quark_lazy_cli*\"]\nnamespaces = false\n\nArchive v0.1.16: 21 files, 64831 bytes\n\nFiles: assets/订阅时间表.md (1560b), pyproject.toml (533b), README.md (5267b), references/OpenClaw定时任务.md (2145b), references/每日汇报.md (4818b), references/环境变量.md (2172b), references/订阅时间估算.md (7186b), references/顾问模式.md (2973b), scripts/check_all_status.sh (554b), scripts/daily_report.sh (1564b), scripts/run_lazy_update.sh (2398b), SKILL.md (6868b), skills-lock.json (266b), src/quark_lazy_cli/__init__.py (71b), src/quark_lazy_cli/advisor.py (32116b), src/quark_lazy_cli/api.py (19607b), src/quark_lazy_cli/app.py (92307b), src/quark_lazy_cli/config.py (6858b), src/quark_lazy_cli/main.py (5749b), src/quark_lazy_cli/models.py (1579b), _meta.json (134b)\n\nFile v0.1.16:SKILL.md\n\n---\nname: quark-lazy-cli\ndescription: >-\n  基于 QAS（夸克网盘自动转存项目）的懒人追剧、追番 SKILL，也内置了一个 CLI 工具。即使 QAS\n  的剧集订阅失效，它也可以重新搜索资源、探查多级资源目录，并在多个最新候选资源中按用户偏好（如更高清晰度）转存新剧集和缺失剧集。可以交给本地\n  OpenClaw、Hermes Agent 或其他Claude Code, Codex Agent 使用，用来设置定时任务、定时汇报，并在订阅失败时辅助修复。有 Python\n  运行环境的进阶用户，也可以把它当作命令行工具使用。\n  \n  感谢QAS项目提供的强大的功能和优质的用户体验，本项目不是对QAS Web UI的替代，而聚焦订阅剧集的”偷懒的更新“。\n---\n\n# quark-lazy-cli\n\n`quark-lazy-cli` 是给 Agent 使用的夸克网盘追剧、追番订阅维护 Skill；`qslazy` 是它内置的命令行工具。它依赖 QAS 后端，用来查看订阅、检查缺集、搜索候选资源，并在用户授权后转存新剧集或补全缺失剧集。\n\n`quark-lazy-cli` 不是 QAS Web 端的替代。它的核心功能聚焦在更新、修复更新失败、精准指定源资源文件转存，让 Agent 帮用户少操心地追新、补漏和维护订阅。\n\n## 四种运行模式\n\n`LAZY_CLI_ADVISOR` 是网盘资源搜索后的决策机制，用来决定候选资源怎么选，不是聊天模式。\n\n- `code`：用代码规则自动决策。适合后台任务、资源发布规范的剧集、资源目录有“更新至n集”；速度快，无需交互，不消耗 LLM Token。\n- `llm`：后台任务中引入大模型做资源选择。适合多版本编号冲突等复杂资源；可配合 `--add-prompt` 改AI大模型定制判断规则。\n- `agent`：由当前 Agent 在和用户交互过程中判断候选资源。适合复杂场景的临时更新，或者在Openclaw Heateat机制里，维护和修复复杂订阅更新的场景使用。\n- `human`：用户人工选择。适合用户想亲自确认资源的场景。\n\n详细用法读取：`references/顾问模式.md`。\n\n## 安装\n\n安装分两步：Skill 文档告诉 Agent 怎么用；`qslazy` CLI 是真正执行任务的命令。两个都要装。\n\n```bash\n# skills.sh / 通用 Agent\nnpx skills add jesustoachild/quark-lazy-cli\n\n# OpenClaw / ClawHub\nopenclaw skills install quark-lazy-cli\n\n# qslazy CLI\npipx install git+https://github.com/jesustoachild/quark-lazy-cli.git\n```\n\n## 配置环境变量\n\n### 1. 确认 `.env` 位置\n\n`.env` 固定放在 Skill 目录根部，不要放到全局目录：\n\n```text\n<skills-dir>/quark-lazy-cli/.env\n```\n\n### 2. 创建 `.env`\n\n如果安装后的 Skill 目录里带有 env 样板文件，直接复制成 `.env`：\n\n```bash\ncd <skills-dir>/quark-lazy-cli\n\ncp ./.env.local.example .env\n```\n\n如果安装后的目录没有 env 样板文件，就读取 `references/环境变量.md`，由 Agent 根据里面的完整模板创建并编辑 `.env`。\n\n### 3. 写入基础配置\n\n把下面内容写入 `<skills-dir>/quark-lazy-cli/.env`，并把占位值改成用户自己的 QAS 信息：\n\n```env\n# QAS 后端地址，例如：http://192.168.1.10:15305\nQAS_HOST=http://your-qas-host:port\n\n# QAS API Token，可在 QAS Web 管理页面查看\nQAS_API_TOKEN=your-qas-api-token\n\n# 网盘资源搜索选择的顾问模式：human / code / llm / agent\nLAZY_CLI_ADVISOR=code\n\n# 运行时目录，建议使用绝对路径，放在 Skill 目录下，便于 Agent 清理和迁移\nLAZY_CLI_LOG_DIR=<skills-dir>/quark-lazy-cli/runtime/logs\nLAZY_CLI_REPORT_DIR=<skills-dir>/quark-lazy-cli/runtime/report\nLAZY_CLI_AGENT_MSG_DIR=<skills-dir>/quark-lazy-cli/runtime/message\n```\n\n如果想在任意目录下运行，建议加入 `--env`：\n\n```bash\nqslazy update new 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n如果临时覆盖 `.env` 的配置，可以不更改.env，命令行示例：\n\n```bash\nLAZY_CLI_ADVISOR=llm qslazy update new 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n环境变量优先顺序从高到低：\n\n```text\n命令行临时环境变量 > 系统环境变量 > --env 指定的 .env 文件 > 默认值\n```\n\n因此 `LAZY_CLI_ADVISOR=llm qslazy ... --env ...` 只会临时覆盖本次命令，不会修改 `.env` 文件。\n\n## 常用命令\n\n### 1. 验证安装\n\n```bash\nqslazy --help\nqslazy task --help\nqslazy update --help\n```\n\n### 2. 查看订阅\n\n```bash\nqslazy task list --env <skills-dir>/quark-lazy-cli/.env\n```\n\n### 3. 查看订阅任务状态\n\n```bash\nqslazy task status 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n### 4. 追更新集（必须先获得用户授权，禁止自行测试）\n\n禁止把更新命令当作安装测试或功能测试。只有用户明确要求更新、追新或修复订阅时，才可以执行。\n\n```bash\nLAZY_CLI_ADVISOR=code qslazy update new 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n### 5. 补全缺集 + 追新（必须先获得用户授权，禁止自行测试）\n\n禁止在用户只要求“看看”“检查”“测试 skill”时执行。先用 `task status` 汇报状态，再询问用户是否更新。\n\n```bash\nLAZY_CLI_ADVISOR=code qslazy update all 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n## 进阶能力索引\n\n### 了解用户订阅情况和资源发布规律\n\n读取文件：`references/订阅时间估算.md`\n\n用于：\n- 批量分析 `task status` 输出\n- 推算订阅更新时间\n- 维护订阅时间表\n\n### 配置完整 OpenClaw 定时任务\n\n读取文件：`references/OpenClaw定时任务.md`\n\n用于：\n- 创建定时更新任务\n- 设置通知参数\n- 维护定时任务\n\n### 让 Agent 做每日订阅汇报\n\n读取文件：`references/每日汇报.md`\n\n用于：\n- 定时运行 `./scripts/daily_report.sh`\n- 汇报每日订阅状态\n- 发现新资源时先询问用户是否更新\n\n### 处理复杂资源选择\n\n读取文件：`references/顾问模式.md`\n\n用于：\n- 理解 `code / llm / agent / human` 顾问模式\n- 使用 `--add-prompt`\n- 处理 Agent JSON 决策\n\n## 铁律\n\n- 永远先观察再行动；用户只说“看看/检查/分析/测试 skill”时，只运行 `task list/status`。\n- 未获用户授权，不执行 `update new/all`，不新增、修改或删除定时任务。\n- 默认只根据 stdout 汇报；除非排错或用户要求，不读 log/报告文件，避免浪费 Token。\n- 不暴露 QAS API Token，不把真实 token 写进示例、回复、日志或定时任务。\n- 不擅自删除、改名或移动用户网盘文件。\n- 不擅自研究、审查或修改 qslazy 源码。只有用户明确要求“看代码”“修 bug”“做开发/审查”时，才进入代码层；普通订阅维护只使用 CLI 和 reference 文档，避免浪费 Token。\n- 资源命名混乱时，不用 `code` 硬选，改用 `llm` 或 `agent`，并读取 `references/顾问模式.md`。\n\nFile v0.1.16:README.md\n\n# 夸克网盘懒人追剧、追番 SKILL\n\n基于 QAS（夸克网盘自动转存项目）的懒人追剧、追番 SKILL，也内置了一个 CLI 工具。即使 QAS 的剧集订阅失效，它也可以重新搜索资源、探查多级资源目录，并在多个最新候选资源中按用户偏好（如更高清晰度）转存新剧集和缺失剧集。\n\n可以交给本地 OpenClaw、Hermes Agent 或其他 Agent 使用，用来设置定时任务、定时汇报，并在订阅失败时辅助修复。\n有 Python 运行环境的进阶用户，也可以把它当作命令行工具使用。\n\n本项目不是对QAS Web UI的替代，而聚焦订阅剧集的”偷懒的更新“。\n\n## 核心需求：\n\n- QAS 的订阅时常会失效<br>\n  手工查询、维护订阅任务很麻烦。等忙完想起来再去找新资源时，资源可能已经失效了。\n\n- Infuse、Emby 的海报墙被重复剧集搞乱<br>\n  分享资源内容可能重复，例如：凡人修仙传.S05E01.4K.mkv、凡人修仙传.S05E01.dv.mkv。用正则模板转存时，可能会把两个文件都转存下来，造成剧集文件混乱，让 Infuse、Emby 等媒体库的海报墙乱掉，需要手动删除、改名和维护。\n\n- 喜欢最高视频编码的资源<br>\n  如果偏好最高视频编码的资源，或希望选择较小体积的视频，通常需要手动下探搜索结果目录、挑选和比对。\n\n- Agent 来了，自己更懒了<br>\n  让 Agent 忙起来，自己安心当懒人。\n\n## 项目甜点：\n\n- 再也不操心订阅失效<br>\n\n- 节省 Token。命名规范、发布清晰的分享资源，可以交给 `code` 顾问执行；复杂资源情况则交给 Agent 或 LLM 大模型判断和决策<br>\n\n- Agent 可以使用 SKILL 分析资源的发布规律，并配置合理的订阅更新时间<br>\n\n- 多资源匹配用户需求、精准指定目标文件名做转存，有效规避资源目录多个相同剧集都下载搞了视频目录、资源发布时间和剧集顺序不相符情况 会看过的剧集<br>\n\n## 四种更新运行模式\n\n环境变量 `LAZY_CLI_ADVISOR`参数 是网盘资源搜索后的决策机制，用来决定候选资源怎么选。\n\n- `code`：用代码规则自动决策。适合后台任务、资源发布规范的剧集、资源目录有“更新至n集“；速度快，无需交互，不消耗 LLM Token。\n- `llm`：后台任务中引入大模型做资源选择。适合多版本编号冲突等复杂资源；可配合 `--add-prompt` 改AI大模型定制判断规则。\n- `agent`：由当前 Agent 在和用户交互过程中判断候选资源。适合复杂场景的临时更新，或者在Openclaw Heateat机制里，维护和修复复杂订阅更新的场景使用。\n- `human`：用户人工选择。适合用户想亲自确认资源的场景。\n---\n\n## 使用概览\n\n### 1. 手动追剧更新\n\n```bash\n# 追新：只转存高于当前最高集的新资源\nqslazy update new 凡人修仙传\n\n# 全量：补漏 + 追新\nqslazy update all 凡人修仙传\n```\n\n### 2. 查看订阅状态\n\n```bash\nqslazy task list\nqslazy task status 凡人修仙传\n```\n\n`task status` 会展示本地网盘状态、缺集情况、搜索到的资源发布时间，适合用来判断订阅是否正常，也可以帮助 Agent 推算最佳订阅更新时间。\n\n### 3. Agent / OpenClaw / Hermes 用法\n\n本项目提供 [SKILL.md](./SKILL.md)，包含更详细的 Agent 操作说明：\n\n- 如何查看订阅任务和单个剧集状态\n- 如何根据资源发布时间制定最佳订阅更新时间\n- `LAZY_CLI_ADVISOR=agent` 的决策文件工作流\n- Hermes Agent / OpenClaw 的后台执行与轮询方式\n- `--add-prompt` 的复杂资源筛选用法\n\n详细 Agent 用法请阅读 [SKILL.md](./SKILL.md)。\n\n---\n\n## 2. 安装和环境配置\n\n安装分两步：**Skill 文档**（告诉 Agent 怎么用）和 **qslazy CLI**（真正干活的命令）。两个都要装。\n\n### 第一步：安装 Skill 文档\n\nskills.sh / 通用 Agent：\n\n```bash\nnpx skills add jesustoachild/quark-lazy-cli\n```\n\nOpenClaw / ClawHub：\n\n```bash\nopenclaw skills install quark-lazy-cli\n```\n\n> Skill 安装只安装 SKILL.md、示例配置和辅助资源，不安装 Python 包。\n\n### 第二步：安装 qslazy CLI（必须）\n\n**pipx 安装（推荐）**：适用 Linux 服务器 / 已具备 Python 3.10+ 和 pipx 的用户。\n\n```bash\npipx install git+https://github.com/jesustoachild/quark-lazy-cli.git\n```\n\n**源码安装**：\n\n```bash\ngit clone https://github.com/jesustoachild/quark-lazy-cli.git\ncd quark-lazy-cli\npip install -e .\n```\n\n## 快速开始\n- 让你的 OpenClaw Agent 完成配置<br>\n- 或者，有 Python 运行环境的进阶用户可以手动配置和使用\n\n### 1. 配置环境\n\n```bash\ncd /<skill>/quark-lazy-cli\ncp .env.local.example .env\n```\n\n如果安装后的目录没有 `.env.local.example`，请读取 `references/环境变量.md`，根据里面的完整模板手动创建并编辑 `.env`。\n\n详细使用方式请阅读 `SKILL.md`。\n\n\n### 2. 查看订阅\n\n```bash\nqslazy task list\n```\n\n### 3. 查看订阅任务状态\n\n```bash\nqslazy task status 凡人修仙传\n```\n---\n\n### 4. 追更新集\n\n```bash\nqslazy update new 凡人修仙传\n```\n\n### 5. 补全缺集 + 追新\n\n```bash\nqslazy update all 凡人修仙传\n```\n\n\n## 许可证\n\nMIT\n\nFile v0.1.16:_meta.json\n\n{\n  \"ownerId\": \"kn76hk2rqrfzkebgwshctshq51813c92\",\n  \"slug\": \"quark-lazy-cli\",\n  \"version\": \"0.1.16\",\n  \"publishedAt\": 1779546317510\n}\n\nFile v0.1.16:references/OpenClaw定时任务.md\n\n# OpenClaw 定时任务\n\n本参考仅在用户要求配置 OpenClaw 定时订阅任务时读取。配置前必须已经运行过 `qslazy task status 剧名`，并根据资源发布时间向用户确认过“时间优先”或“画质优先”策略。\n\n## 推荐流程\n\n1. 用 `qslazy task status 剧名 --env <skills-dir>/quark-lazy-cli/.env` 查看网盘状态和资源发布时间。\n2. 询问用户偏好：\n   - 时间优先：最早有效资源发布时间 + 4 小时。\n   - 画质优先：最后一批高质量资源发布时间 + 4 小时。\n3. 用户确认后，再创建 OpenClaw 定时任务。\n4. 简单、命名规范的资源默认用 `LAZY_CLI_ADVISOR=code`，避免每次唤醒大模型。\n\n## 定时任务模板\n\n```bash\nopenclaw cron add \\\n  --name \"凡人修仙传-定时更新\" \\\n  --cron \"30 2 * * 0\" \\\n  --tz \"Asia/Shanghai\" \\\n  --session isolated \\\n  --agent AgentName \\\n  --announce \\\n  --channel feishu \\\n  --account bot-AgentName \\\n  --to \"USER_OPEN_ID\" \\\n  --message \"bash -c 'LAZY_CLI_ADVISOR=code qslazy update all 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env'\\n\\n仅根据 stdout 汇报结果，除非排错，不要读取 log 或报告文件。\"\n```\n\n替换项：\n\n- `凡人修仙传-定时更新`：任务显示名。\n- `30 2 * * 0`：定时表达式（cron 格式）。\n- `AgentName`：执行任务的 OpenClaw Agent。\n- `bot-AgentName`：通知账号。\n- `USER_OPEN_ID`：通知目标。\n- `<skills-dir>/quark-lazy-cli/.env`：实际 Skill 安装目录中的 `.env`。\n\n## 常用时间\n\n```text\n每周一 22:00 -> 0 22 * * 1\n每周六 14:00 -> 0 14 * * 6\n每周日 02:30 -> 30 2 * * 0\n每天 09:00 兜底 -> 0 9 * * *\n```\n\n## 汇报格式\n\n定时任务执行后，只根据 stdout 汇报。建议包含：\n\n```text\n订阅：\n当前：\n目标：\n偏好：\n更新结果：\n新增集数：\n补全剧集：\n```\n\n## 维护命令\n\n```bash\nopenclaw cron list\nopenclaw cron run <job-id>\nopenclaw cron edit <job-id> --cron \"0 22 * * 1\"\nopenclaw cron edit <job-id> --disable\nopenclaw cron edit <job-id> --enable\nopenclaw cron rm <job-id>\n```\n\n执行 `edit`、`rm` 等变更操作前，先向用户确认。\n\nFile v0.1.16:references/每日汇报.md\n\n# 每日汇报\n\n本参考用于配置 OpenClaw Agent 每日运行 `scripts/daily_report.sh`，汇总当天需要关注的订阅状态，并在发现网络资源高于网盘最高集时询问用户是否更新。\n\n## 使用场景\n\n用户说：\n\n- “帮我每天汇报订阅情况”\n- “每天检查今天该更新的剧”\n- “发现有新资源时问我要不要更新”\n- “帮我配置每日懒人汇报”\n\nAgent 应读取本参考。\n\n## 脚本说明\n\n脚本位置：\n\n```bash\n<skills-dir>/quark-lazy-cli/scripts/daily_report.sh\n```\n\n用法：\n\n```bash\nbash <skills-dir>/quark-lazy-cli/scripts/daily_report.sh [星期几] [env路径]\n```\n\n示例：\n\n```bash\nbash <skills-dir>/quark-lazy-cli/scripts/daily_report.sh 6 <skills-dir>/quark-lazy-cli/.env\n```\n\n参数：\n\n- `星期几`：可选。`1=周一`，`2=周二`，...，`7=周日`。不传则自动使用当天。\n- `env路径`：可选。推荐传入 `<skills-dir>/quark-lazy-cli/.env`。\n\n使用前，需要把脚本里的 `剧名1`、`剧名2`、`剧名3` 替换成用户真实的 QAS 任务名。\n\n脚本里的剧集分组应根据 [订阅时间估算.md](订阅时间估算.md) 中维护的“动漫订阅更新时间建议表”设计：\n\n- 周一汇报周一需要关注的剧。\n- 周二汇报周二需要关注的剧。\n- 如果某部剧有兜底重试时间，也可以同时放入兜底日期。\n- `run_status \"剧名1\"` 里的剧名必须使用表格里的 `taskname`，不要使用随意昵称。\n\n示例：\n\n```md\n| taskname | 剧名/显示名 | 更新策略 | 建议订阅更新时间 | 定时表达式 | 状态 | 备注 |\n|----------|-------------|----------|------------------|-------------|------|------|\n| 剧名1 | 剧名1 | 画质优先 | 周一 22:00 | `0 22 * * 1` | 正常 | |\n| 剧名2 | 剧名2 | 画质优先 | 周一 23:00 | `0 23 * * 1` | 正常 | |\n| 剧名3 | 剧名3 | 时间优先 | 周二 20:30 | `30 20 * * 2` | 正常 | |\n```\n\n对应脚本：\n\n```bash\n1)\n  echo \"📅 周一\"\n  run_status \"剧名1\"\n  run_status \"剧名2\"\n  ;;\n2)\n  echo \"📅 周二\"\n  run_status \"剧名3\"\n  ;;\n```\n\n## OpenClaw 定时任务模板\n\n```bash\nopenclaw cron add \\\n  --name \"qslazy-每日订阅汇报\" \\\n  --cron \"30 23 * * *\" \\\n  --tz \"Asia/Shanghai\" \\\n  --session isolated \\\n  --agent AgentName \\\n  --announce \\\n  --channel feishu \\\n  --account bot-AgentName \\\n  --to \"USER_OPEN_ID\" \\\n  --message \"bash -c 'bash <skills-dir>/quark-lazy-cli/scripts/daily_report.sh \\\"\\\" <skills-dir>/quark-lazy-cli/.env'\\n\\n请根据 stdout 汇报订阅状态。如果发现网络资源的最高集数高于网盘最高集，先询问用户是否执行 qslazy update all，不要自动更新。\"\n```\n\n替换项：\n\n- `AgentName`：执行汇报的 OpenClaw Agent。\n- `bot-AgentName`：通知账号。\n- `USER_OPEN_ID`：通知目标。\n- `<skills-dir>/quark-lazy-cli`：实际 Skill 安装目录。\n\n## Agent 汇报规则\n\nAgent 只根据 stdout 汇报，除非排错，不读取 log 或报告文件。\n\n每个任务建议汇报：\n\n```text\n[ 凡人修仙传 ]\n\n💾 网盘：最高 82（更新于：昨天），最低 78，缺[79, 80]\n🎯 目标：第82集以上资源\n💎 偏好：最高画质优先\n\n🔍 最新资源：今天和昨天\n🔍 资源更新至：83集\n\n状态总结：网盘最高 82 vs 资源更新至 83，需要更新；同时网盘缺[79, 80]，建议补漏。\n```\n\n状态文案建议：\n\n```text\n状态总结：网盘最高 X vs 资源更新至 X，网盘已是最新。\n状态总结：网盘最高 X vs 资源更新至 Y，需要更新。\n状态总结：网盘最高 X vs 资源更新至 Y，需要更新；同时网盘缺[...]，建议补漏。\n状态总结：资源编号或版本较复杂，需要人工确认。\n```\n\n## 发现新资源时的处理\n\n如果 stdout 显示网络候选资源高于网盘最高集，例如：\n\n```text\n网盘：最高 22\n候选资源：更新至 23 集\n```\n\nAgent 不能自动更新，必须先按上面的格式汇报，再问用户：\n\n```text\n我看到《剧名1》网盘最高到第 22 集，但网络资源已更新到第 23 集。\n是否现在执行 `qslazy update all 剧名1 --env <skills-dir>/quark-lazy-cli/.env` 追新并补漏？\n```\n\n用户确认后再执行：\n\n```bash\nLAZY_CLI_ADVISOR=code qslazy update all 剧名1 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n如果资源命名复杂、编号冲突或画质选择困难，改用：\n\n```bash\nLAZY_CLI_ADVISOR=llm qslazy update all 剧名1 \\\n  --env <skills-dir>/quark-lazy-cli/.env \\\n  --add-prompt \"写入该剧的特殊筛选规则\"\n```\n\n## 关键限制\n\n- 每日汇报是只读检查，默认不更新订阅。\n- 用户未授权时，不执行 `update new` 或 `update all`。\n- 发现网络资源更高时，只能询问用户是否更新。\n- 不要把真实 QAS Token、Feishu open_id 或用户私有路径写入公开模板。\n\nFile v0.1.16:references/环境变量.md\n\n# 环境变量\n\n如果安装后的 Skill 目录没有 `.env.local.example`，Agent 应根据本文件创建：\n\n```text\n<skills-dir>/quark-lazy-cli/.env\n```\n\n创建后必须替换：\n\n- `QAS_HOST`\n- `QAS_API_TOKEN`\n- 所有 `<skills-dir>` 占位符\n\n完整模板：\n\n```env\n# quark-lazy-cli 环境变量配置文件。推荐放在 Skill 目录根部，并通过 --env <skills-dir>/quark-lazy-cli/.env 指定。\n\n# QAS 服务配置\n# QAS 后端地址，例如：http://192.168.1.10:15305\nQAS_HOST=http://your-qas-host:port\n# QAS API Token，可在 QAS Web 管理页面查看\nQAS_API_TOKEN=your-qas-api-token\n\n# 系统及搜索策略配置\n# LAZY_CLI_EP_SELECTION_POLICY: 选片策略 prefer_quality=最高画质 prefer_size=最大体积\nLAZY_CLI_EP_SELECTION_POLICY=prefer_quality\n# LAZY_CLI_SEARCH_BATCH_DISP: 搜索结果分页显示数量\nLAZY_CLI_SEARCH_BATCH_DISP=30\n# LAZY_CLI_SEARCH_EXPIRATION_DAYS: 资源新鲜度阈值（天），超过则视为旧资源，根据剧集更新频率而定，LLM 和 code 顾问，只看新鲜资源\nLAZY_CLI_SEARCH_EXPIRATION_DAYS=7\n# LAZY_CLI_DRILL_MAX_DEPTH: BFS探查子目录最大深度\nLAZY_CLI_DRILL_MAX_DEPTH=3\n# LAZY_CLI_MAX_SEARCH_BREADTH: 最大搜索有效资源个数\nLAZY_CLI_MAX_SEARCH_BREADTH=10\n\n# Advisor 模式：human（默认）/ code / llm / agent\nLAZY_CLI_ADVISOR=code\nLAZY_CLI_HUMAN_FILTER=true\n\n# Agent 顾问配置（LAZY_CLI_ADVISOR=agent 时生效）\n\nLAZY_CLI_AGENT_POLL_INTERVAL=15\n\n# LLM 顾问配置（可选，仅 LAZY_CLI_ADVISOR=llm 时生效）\n# 支持 OpenAI-compatible API 服务\nLAZY_CLI_LLM_OPENAI_API_BASE=https://api.example.com/v1\nLAZY_CLI_LLM_OPENAI_API_KEY=your-api-key\nLAZY_CLI_LLM_OPENAI_MODEL=your-model-name\nLAZY_CLI_LLM_TEMPERATURE=0.4\n\n\n# 日志配置\nLAZY_CLI_DEBUG=false\n\n# 建议使用 Skill 目录下的 runtime 目录，便于 Agent 清理和迁移\nLAZY_CLI_LOG_DIR=<skills-dir>/quark-lazy-cli/runtime/logs\nLAZY_CLI_REPORT_DIR=<skills-dir>/quark-lazy-cli/runtime/report\nLAZY_CLI_AGENT_MSG_DIR=<skills-dir>/quark-lazy-cli/runtime/message\n```\n\n环境变量优先顺序：\n\n```text\n命令行临时环境变量 > 系统环境变量 > --env 指定的 .env 文件 > 默认值\n```\n\nFile v0.1.16:references/订阅时间估算.md\n\n# 订阅时间估算\n\n本参考用于 Agent 根据 `qslazy task status` 或 `scripts/check_all_status.sh` 的批量输出，推算每部剧/番的最佳订阅更新时间，并写入订阅时间表。\n\n## 什么时候读取\n\n当用户说：\n\n- “帮我接管订阅维护”\n- “帮我看看所有剧什么时候更新合适”\n- “根据资源发布时间制定订阅时间”\n- “生成/更新动漫订阅时间表”\n\nAgent 应读取本参考。\n\n## 批量获取状态\n\n开发目录提供了批量巡检脚本：\n\n```bash\nbash scripts/check_all_status.sh\n```\n\n它会依次执行：\n\n```bash\nqslazy task list\nqslazy task status <taskname>\n```\n\n输出形态示例：\n\n```text\n================================================\n🔍 任务: '仙剑奇侠传.2025'\n\n  [ 仙剑奇侠传.2025 ] ⏳ Searching for 仙剑奇侠传...\n\n============================================================\n  📋 任务：仙剑奇侠传.2025\n  💾 网盘：最高 22（更新于：5天前），最低 1，无缺集\n  🎯 目标：第22集以上资源\n  💎 偏好：最高画质优先\n\n============================================================\n🔍 7 天内新鲜资源：搜索到 3 个，验证资源有效后：3 个\n============================================================\n\n  [1] [5天前 21:55 周二] 仙剑奇侠传三 4K臻彩MAX [更新至22集]\n  [2] [5天前 21:41 周二] 仙剑奇侠传叁(2025)4K 臻彩MAX S01E01 - E22 HIFI声 HiveWeb\n  [3] [6天前 15:13 周二] 仙剑奇侠传叁‎ (2025) 4K 更新至22集  仙剑奇侠传3动画版\n\n🔍 7-14 天旧资源：搜索到 1 个，验证资源有效后：0 个（其中 1 个失效）\n============================================================\n  [X] [9天前 18:30 周日] 仙剑奇侠传叁(2025)4K 旧资源（失效：分享地址已失效）\n```\n\n其中 `7` 来自 `LAZY_CLI_SEARCH_EXPIRATION_DAYS`。如果该环境变量改为 `5`，状态页会显示 `5 天内新鲜资源` 和 `5-10 天旧资源`。\n\n## 状态输出解读\n\n`qslazy task status` 会显示两个观察窗口：\n\n- `{LAZY_CLI_SEARCH_EXPIRATION_DAYS}` 天内新鲜资源。\n- `{LAZY_CLI_SEARCH_EXPIRATION_DAYS}` 到 `{LAZY_CLI_SEARCH_EXPIRATION_DAYS * 2}` 天旧资源。\n\n列表标记含义：\n\n- `[1]`、`[2]`、`[3]`：验证有效资源，可用于判断可下载资源和发布时间。\n- `[X]`：验证失效资源，仅用于观察发布规律，不可选择，不进入 advisor/BFS/下载流程。\n\n失效资源仍然有参考价值：\n\n- 如果同一资源站每天都发布但很快失效，说明它发布活跃但稳定性差。\n- 如果新鲜资源大多失效，而较晚发布的资源有效，订阅时间应更偏向画质优先或延后执行。\n- 如果旧资源持续失效，说明该源不适合作为长期订阅依据。\n\n注意：`update` 的 human 选择界面也会展示 `[X]` 失效资源，但 `[X]` 不占数字序号，不能被选择；LLM advisor 只接收有效资源列表，并只看到失效资源摘要。\n\n## 估算规则\n\nAgent 从每个任务的候选资源发布时间里提取：\n\n- 最早有效资源发布时间\n- 最后一批高质量资源发布时间\n- 失效资源发布时间和数量\n- 资源是否集中在同一天、同一时间段\n- 是否有旧资源或失效资源干扰\n- 网盘当前最高集和更新时间\n\n然后先问用户偏好：\n\n```text\n你希望订阅更新时间偏向哪种策略？\n1. 时间优先：按最早有效资源发布时间 + 4 小时安排，尽快看到更新。\n2. 画质优先：按最后一批高质量资源发布时间 + 4 小时安排，等待高码率、HDR/DV、字幕组或更完整资源。\n```\n\n默认建议：\n\n- 用户不明确选择时，使用画质优先。\n- 对经常延迟或资源波动大的剧，加一次次日上午兜底重试。\n- 对已下线或长期无新资源的剧，标为手动维护。\n- 如果新鲜资源中 `[X]` 很多，但有效资源集中在更晚时间，优先参考有效资源发布时间，不要按失效资源的最早时间提前订阅。\n- 如果 `[X]` 连续多周出现在同一发布源，可在备注中标记“该源易失效”，避免把它作为唯一订阅依据。\n\n## 示例推导\n\n### 仙剑奇侠传.2025\n\n候选资源：\n\n- 周二 21:55：4K 臻彩MAX，更新至 22 集\n- 周二 21:41：4K 臻彩MAX，S01E01 - E22\n- 周二 15:13：4K，更新至 22 集\n\n建议：\n\n- 时间优先：周二 19:13 以后。\n- 画质优先：周三 01:55 左右。\n- 如果用户偏好稳定高质量资源，建议周三 02:00。\n\n### 斗破苍穹\n\n候选资源：\n\n- 周六 18:48 到 20:23 集中发布。\n- 多个 4K / 10bit / 臻彩资源，更新至 199 集。\n\n建议：\n\n- 时间优先：周六 22:50 左右。\n- 画质优先：周日 00:30 左右。\n- 若用户不急，建议周日 00:30 或周日 01:00。\n\n## 订阅时间表模板\n\n| taskname | 剧名/显示名 | 更新策略 | 建议订阅更新时间 | 定时表达式 | 状态 | 备注 |\n|----------|-------------|----------|------------------|-------------|------|------|\n| 剧名1 | 剧名1 | 画质优先 | 周六 02:30 | `30 2 * * 6` | 正常 | 参看：剧名1 订阅特殊说明 |\n| 剧名2 | 剧名2 | 时间优先 | 周日 00:30 | `30 0 * * 0` | 正常 | |\n| 剧名3 | 剧名3 | 手动维护 | — | ❌ 已下线 | 暂停 | 资源下线或订阅暂停 |\n\n字段说明：\n\n- `taskname`：QAS 里的订阅任务名，也是 qslazy 命令参数。\n- `剧名/显示名`：给用户看的名称，可以比 `taskname` 更自然。\n- `更新策略`：`时间优先`、`画质优先`、`手动维护` 或用户指定策略。\n- `建议订阅更新时间`：自然语言时间，方便用户阅读。\n- `定时表达式`：OpenClaw 使用的 cron 格式时间表达式。\n- `状态`：`正常`、`暂停`、`手动维护`、`待确认` 等。\n- `备注`：特殊资源规则、用户偏好、下线原因或参考说明。\n\n## 订阅特殊说明示例\n\n### 剧名1  订阅特殊说明\n\n- 目前资源发布有 2 套剧集编号格式：\n  - A 编号格式：百炼成神第三季从 01 开始，剧集名特征是 2 位数字，例如“更新至 22 集”。\n  - B 编号格式：百炼成神从第一季到现在一直使用累计编号，例如 `EP127`。\n\n- 用户需求：\n  - 选择 A 编号格式的 URL。\n  - 使用 A 编号格式 URL 中的最新剧集编号。\n\n推荐执行方式：\n\n```bash\nLAZY_CLI_ADVISOR=llm qslazy update new 剧名1  \\\n  --env <skills-dir>/quark-lazy-cli/.env \\\n  --add-prompt \"目前资源发布有两套剧集编号格式：A 格式为第三季从 01 开始的两位数字编号，如更新至 22 集；B 格式为从第一季累计到现在的 EP1xx 编号，如 EP127。请选择 A 格式的 URL，并取 A 格式中的最新剧集编号。\"\n```\n\n## Agent 维护规则\n\n- 新增剧名前，先运行 `qslazy task status <taskname> --env <skills-dir>/quark-lazy-cli/.env`。\n- 根据 stdout 中的资源发布时间推算更新时间，不要凭空填写。\n- 配置定时任务前，必须向用户确认更新策略。\n- 已下线、资源不稳定或需要人工判断的剧，状态标记为 `手动维护` 或 `待确认`。\n- 特殊资源规则不要塞进主表，放到下方“订阅特殊说明”。\n\nFile v0.1.16:references/顾问模式.md\n\n# 顾问模式\n\n本参考用于复杂资源选择、LLM 顾问、Agent 顾问 JSON 决策，以及 OpenClaw/Hermes 后台轮询。\n\n## Advisor 模式\n\n`LAZY_CLI_ADVISOR` 决定资源选择方式。\n\n| 模式 | 适合场景 | Agent 行为 |\n|------|----------|------------|\n| `human` | 用户手动确认 | 让用户看候选资源并选择 |\n| `code` | 命名规范、集数清晰、资源简单 | 默认推荐，用规则自动选择 |\n| `llm` | 多版本、画质/字幕/编号偏好复杂 | 加 `--add-prompt` 说明偏好 |\n| `agent` | 外部 Agent 需要亲自判断候选资源 | 启动 CLI，读取 stdout，写 JSON 决策文件 |\n\nLLM 顾问配置仅在 `LAZY_CLI_ADVISOR=llm` 时需要：\n\n```env\nLAZY_CLI_LLM_OPENAI_API_BASE=https://api.example.com/v1\nLAZY_CLI_LLM_OPENAI_API_KEY=your-api-key\nLAZY_CLI_LLM_OPENAI_MODEL=your-model-name\n```\n\n## 复杂资源筛选：--add-prompt\n\n当资源存在多版本、多编号、多字幕组或排除条件时，使用 `--add-prompt` 明确选择规则。\n\n```bash\nLAZY_CLI_ADVISOR=llm qslazy update all 凡人修仙传 \\\n  --env <skills-dir>/quark-lazy-cli/.env \\\n  --add-prompt \"只选择 S03E01 重新编号格式，不选择 EP 累计格式；优先 4K 高码率，其次 WEB-DL。\"\n```\n\n常见提示：\n\n| 场景 | `--add-prompt` 示例 |\n|------|---------------------|\n| 特定画质 | `优先选择 4K DV 或 HDR，不选择 1080p` |\n| 特定字幕 | `优先选择内封中字资源` |\n| 编号冲突 | `只选 S03E01 重新编号格式，不选 EP 累计格式` |\n| 排除版本 | `排除国配版本，排除合集压缩包` |\n| 体积偏好 | `在集数完整的前提下，优先选择较小体积版本` |\n\n## Agent 顾问模式\n\n`LAZY_CLI_ADVISOR=agent` 用于让外部 Agent 自己判断候选资源。CLI 会在 stdout 输出候选资源列表和一个 `advisor__任务名__时间戳.json` 文件路径。\n\n启动时建议使用未缓冲输出：\n\n```bash\nPYTHONUNBUFFERED=1 LAZY_CLI_ADVISOR=agent qslazy update all 剧名 --env <skills-dir>/quark-lazy-cli/.env\n```\n\nAgent 看到决策文件路径后，写入 JSON：\n\n```json\n{\"selected\": [1, 2, 3, 4], \"max_ep\": 80}\n```\n\n字段含义：\n\n- `selected`：选择的候选资源序号，使用 stdout 中的 1-based 序号。\n- `max_ep`：Agent 根据候选标题判断出的最新集数。\n\n注意：\n\n- 不要向 stdin 输入选择。\n- 必须结合任务目标和候选资源标题判断。\n- 5 分钟内没有写入决策文件，CLI 会超时。\n\n## Hermes Agent / OpenClaw 轮询方式\n\n| 步骤 | Hermes Agent | OpenClaw |\n|------|--------------|----------|\n| 启动 CLI | `terminal(background=true, pty=true, command=\"PYTHONUNBUFFERED=1 ...\")` | `exec(command, pty=True, yieldMs=120000)` |\n| 等待/轮询 | `process(wait)` / `process(poll)` | `process(action=\"poll\", sessionId=session, timeout=...)` |\n| 写决策文件 | 手动写 `advisor__任务名__时间戳.json` | `open(...)` + `json.dump(...)` |\n| 超时 | 5 分钟 | 5 分钟（20 × 15s） |\n\nFile v0.1.16:assets/订阅时间表.md\n\n## 剧集订阅更新时间建议表\n\n以下是根据各剧集历史发布时间统计得出的**建议订阅更新时间**（已预留缓冲时间）：\n\n| 动漫名称 | 建议订阅更新时间 | cron 表达式 | 备注 |\n|---------|----------------|------------|------|\n| 剧集名-01 | 周一 22:00 | `0 22 * * 1` | 参看：剧集名-01 订阅特殊说明 |\n| 剧集名-02 | 周二 18:04 | `4 18 * * 2` | |\n| 剧集名-03 | — | ❌ 已下线 | 手动维护 |\n| 剧集名-04 | 周三 21:30 | `30 21 * * 3` | |\n| 剧集名-05 | 周四 21:20 | `20 21 * * 4` | |\n| 剧集名-06 | 周五 21:30 | `30 21 * * 5` | |\n| 剧集名-07 | 周四 19:01 | `1 19 * * 4` | |\n| 剧集名-08 | 周日 20:00 | `0 20 * * 0` | |\n| 剧集名-09 | 周五 19:02 | `2 19 * * 5` | |\n| 剧集名-10 | 周五 20:30 | `30 20 * * 5` | |\n| 剧集名-11 | 周五 23:00 | `0 23 * * 5` | |\n| 剧集名-12 | 周六 22:00 | `0 22 * * 6` | |\n| 剧集名-13 | 周六 19:00 | `0 19 * * 6` | |\n| 剧集名-14 | 周六 22:00 | `0 22 * * 6` | |\n| 剧集名-15 | 周六 22:10 | `10 22 * * 6` | |\n| 剧集名-16 | 周日 15:00 | `0 15 * * 0` | |\n| 剧集名-17 | 周日 22:00 | `0 22 * * 0` | |\n\n\n---\n## 剧集名-01 订阅特殊说明\n- 目前资源发布有2套剧集编号格式，\n  A编号格式，剧集名-01 第三季从01开始，剧集名特性是2为数字，如更新至22集\n  B编号格式，剧集名-01 第一季到现在一直未按新季从1开始，所以累计1xx集， 如EP127\n\n- 用户需求要选择：A编号格式的URL，和A编号格式的URL中的最新剧集编号\n\nFile v0.1.16:skills-lock.json\n\n{\n  \"version\": 1,\n  \"skills\": {\n    \"quark-lazy-cli\": {\n      \"source\": \"jesustoachild/quark-lazy-cli\",\n      \"sourceType\": \"github\",\n      \"skillPath\": \"SKILL.md\",\n      \"computedHash\": \"3702bd1b9267170319101c3eca4fa10e47e5fc17a212fb838618a70b2eb200dd\"\n    }\n  }\n}\n\nFile v0.1.16:pyproject.toml\n\n[project]\nname = \"quark-lazy-cli\"\nversion = \"0.1.16\"\ndescription = \"基于QAS的夸克云盘懒人追剧工具\"\nreadme = \"README.md\"\nrequires-python = \">=3.10\"\ndependencies = [\n    \"requests>=2.28.0\",\n    \"click>=8.0.0\",\n    \"python-dotenv>=1.0.0\",\n]\n\n[project.scripts]\nquark_lazy_cli = \"quark_lazy_cli.main:cli\"\nqslazy = \"quark_lazy_cli.main:cli\"\n\n[build-system]\nrequires = [\"setuptools>=61.0\"]\nbuild-backend = \"setuptools.build_meta\"\n\n[tool.setuptools.packages.find]\nwhere = [\"src\"]\ninclude = [\"quark_lazy_cli*\"]\nnamespaces = false\n\nArchive v0.1.15: 21 files, 64722 bytes\n\nFiles: assets/订阅时间表.md (1560b), pyproject.toml (533b), README.md (5267b), references/OpenClaw定时任务.md (2145b), references/每日汇报.md (4818b), references/环境变量.md (2172b), references/订阅时间估算.md (7186b), references/顾问模式.md (2973b), scripts/check_all_status.sh (554b), scripts/daily_report.sh (1564b), scripts/run_lazy_update.sh (2398b), SKILL.md (6868b), skills-lock.json (266b), src/quark_lazy_cli/__init__.py (71b), src/quark_lazy_cli/advisor.py (32116b), src/quark_lazy_cli/api.py (19607b), src/quark_lazy_cli/app.py (91791b), src/quark_lazy_cli/config.py (6858b), src/quark_lazy_cli/main.py (5749b), src/quark_lazy_cli/models.py (1579b), _meta.json (134b)\n\nFile v0.1.15:SKILL.md\n\n---\nname: quark-lazy-cli\ndescription: >-\n  基于 QAS（夸克网盘自动转存项目）的懒人追剧、追番 SKILL，也内置了一个 CLI 工具。即使 QAS\n  的剧集订阅失效，它也可以重新搜索资源、探查多级资源目录，并在多个最新候选资源中按用户偏好（如更高清晰度）转存新剧集和缺失剧集。可以交给本地\n  OpenClaw、Hermes Agent 或其他Claude Code, Codex Agent 使用，用来设置定时任务、定时汇报，并在订阅失败时辅助修复。有 Python\n  运行环境的进阶用户，也可以把它当作命令行工具使用。\n  \n  感谢QAS项目提供的强大的功能和优质的用户体验，本项目不是对QAS Web UI的替代，而聚焦订阅剧集的”偷懒的更新“。\n---\n\n# quark-lazy-cli\n\n`quark-lazy-cli` 是给 Agent 使用的夸克网盘追剧、追番订阅维护 Skill；`qslazy` 是它内置的命令行工具。它依赖 QAS 后端，用来查看订阅、检查缺集、搜索候选资源，并在用户授权后转存新剧集或补全缺失剧集。\n\n`quark-lazy-cli` 不是 QAS Web 端的替代。它的核心功能聚焦在更新、修复更新失败、精准指定源资源文件转存，让 Agent 帮用户少操心地追新、补漏和维护订阅。\n\n## 四种运行模式\n\n`LAZY_CLI_ADVISOR` 是网盘资源搜索后的决策机制，用来决定候选资源怎么选，不是聊天模式。\n\n- `code`：用代码规则自动决策。适合后台任务、资源发布规范的剧集、资源目录有“更新至n集”；速度快，无需交互，不消耗 LLM Token。\n- `llm`：后台任务中引入大模型做资源选择。适合多版本编号冲突等复杂资源；可配合 `--add-prompt` 改AI大模型定制判断规则。\n- `agent`：由当前 Agent 在和用户交互过程中判断候选资源。适合复杂场景的临时更新，或者在Openclaw Heateat机制里，维护和修复复杂订阅更新的场景使用。\n- `human`：用户人工选择。适合用户想亲自确认资源的场景。\n\n详细用法读取：`references/顾问模式.md`。\n\n## 安装\n\n安装分两步：Skill 文档告诉 Agent 怎么用；`qslazy` CLI 是真正执行任务的命令。两个都要装。\n\n```bash\n# skills.sh / 通用 Agent\nnpx skills add jesustoachild/quark-lazy-cli\n\n# OpenClaw / ClawHub\nopenclaw skills install quark-lazy-cli\n\n# qslazy CLI\npipx install git+https://github.com/jesustoachild/quark-lazy-cli.git\n```\n\n## 配置环境变量\n\n### 1. 确认 `.env` 位置\n\n`.env` 固定放在 Skill 目录根部，不要放到全局目录：\n\n```text\n<skills-dir>/quark-lazy-cli/.env\n```\n\n### 2. 创建 `.env`\n\n如果安装后的 Skill 目录里带有 env 样板文件，直接复制成 `.env`：\n\n```bash\ncd <skills-dir>/quark-lazy-cli\n\ncp ./.env.local.example .env\n```\n\n如果安装后的目录没有 env 样板文件，就读取 `references/环境变量.md`，由 Agent 根据里面的完整模板创建并编辑 `.env`。\n\n### 3. 写入基础配置\n\n把下面内容写入 `<skills-dir>/quark-lazy-cli/.env`，并把占位值改成用户自己的 QAS 信息：\n\n```env\n# QAS 后端地址，例如：http://192.168.1.10:15305\nQAS_HOST=http://your-qas-host:port\n\n# QAS API Token，可在 QAS Web 管理页面查看\nQAS_API_TOKEN=your-qas-api-token\n\n# 网盘资源搜索选择的顾问模式：human / code / llm / agent\nLAZY_CLI_ADVISOR=code\n\n# 运行时目录，建议使用绝对路径，放在 Skill 目录下，便于 Agent 清理和迁移\nLAZY_CLI_LOG_DIR=<skills-dir>/quark-lazy-cli/runtime/logs\nLAZY_CLI_REPORT_DIR=<skills-dir>/quark-lazy-cli/runtime/report\nLAZY_CLI_AGENT_MSG_DIR=<skills-dir>/quark-lazy-cli/runtime/message\n```\n\n如果想在任意目录下运行，建议加入 `--env`：\n\n```bash\nqslazy update new 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n如果临时覆盖 `.env` 的配置，可以不更改.env，命令行示例：\n\n```bash\nLAZY_CLI_ADVISOR=llm qslazy update new 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n环境变量优先顺序从高到低：\n\n```text\n命令行临时环境变量 > 系统环境变量 > --env 指定的 .env 文件 > 默认值\n```\n\n因此 `LAZY_CLI_ADVISOR=llm qslazy ... --env ...` 只会临时覆盖本次命令，不会修改 `.env` 文件。\n\n## 常用命令\n\n### 1. 验证安装\n\n```bash\nqslazy --help\nqslazy task --help\nqslazy update --help\n```\n\n### 2. 查看订阅\n\n```bash\nqslazy task list --env <skills-dir>/quark-lazy-cli/.env\n```\n\n### 3. 查看订阅任务状态\n\n```bash\nqslazy task status 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n### 4. 追更新集（必须先获得用户授权，禁止自行测试）\n\n禁止把更新命令当作安装测试或功能测试。只有用户明确要求更新、追新或修复订阅时，才可以执行。\n\n```bash\nLAZY_CLI_ADVISOR=code qslazy update new 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n### 5. 补全缺集 + 追新（必须先获得用户授权，禁止自行测试）\n\n禁止在用户只要求“看看”“检查”“测试 skill”时执行。先用 `task status` 汇报状态，再询问用户是否更新。\n\n```bash\nLAZY_CLI_ADVISOR=code qslazy update all 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n## 进阶能力索引\n\n### 了解用户订阅情况和资源发布规律\n\n读取文件：`references/订阅时间估算.md`\n\n用于：\n- 批量分析 `task status` 输出\n- 推算订阅更新时间\n- 维护订阅时间表\n\n### 配置完整 OpenClaw 定时任务\n\n读取文件：`references/OpenClaw定时任务.md`\n\n用于：\n- 创建定时更新任务\n- 设置通知参数\n- 维护定时任务\n\n### 让 Agent 做每日订阅汇报\n\n读取文件：`references/每日汇报.md`\n\n用于：\n- 定时运行 `./scripts/daily_report.sh`\n- 汇报每日订阅状态\n- 发现新资源时先询问用户是否更新\n\n### 处理复杂资源选择\n\n读取文件：`references/顾问模式.md`\n\n用于：\n- 理解 `code / llm / agent / human` 顾问模式\n- 使用 `--add-prompt`\n- 处理 Agent JSON 决策\n\n## 铁律\n\n- 永远先观察再行动；用户只说“看看/检查/分析/测试 skill”时，只运行 `task list/status`。\n- 未获用户授权，不执行 `update new/all`，不新增、修改或删除定时任务。\n- 默认只根据 stdout 汇报；除非排错或用户要求，不读 log/报告文件，避免浪费 Token。\n- 不暴露 QAS API Token，不把真实 token 写进示例、回复、日志或定时任务。\n- 不擅自删除、改名或移动用户网盘文件。\n- 不擅自研究、审查或修改 qslazy 源码。只有用户明确要求“看代码”“修 bug”“做开发/审查”时，才进入代码层；普通订阅维护只使用 CLI 和 reference 文档，避免浪费 Token。\n- 资源命名混乱时，不用 `code` 硬选，改用 `llm` 或 `agent`，并读取 `references/顾问模式.md`。\n\nFile v0.1.15:README.md\n\n# 夸克网盘懒人追剧、追番 SKILL\n\n基于 QAS（夸克网盘自动转存项目）的懒人追剧、追番 SKILL，也内置了一个 CLI 工具。即使 QAS 的剧集订阅失效，它也可以重新搜索资源、探查多级资源目录，并在多个最新候选资源中按用户偏好（如更高清晰度）转存新剧集和缺失剧集。\n\n可以交给本地 OpenClaw、Hermes Agent 或其他 Agent 使用，用来设置定时任务、定时汇报，并在订阅失败时辅助修复。\n有 Python 运行环境的进阶用户，也可以把它当作命令行工具使用。\n\n本项目不是对QAS Web UI的替代，而聚焦订阅剧集的”偷懒的更新“。\n\n## 核心需求：\n\n- QAS 的订阅时常会失效<br>\n  手工查询、维护订阅任务很麻烦。等忙完想起来再去找新资源时，资源可能已经失效了。\n\n- Infuse、Emby 的海报墙被重复剧集搞乱<br>\n  分享资源内容可能重复，例如：凡人修仙传.S05E01.4K.mkv、凡人修仙传.S05E01.dv.mkv。用正则模板转存时，可能会把两个文件都转存下来，造成剧集文件混乱，让 Infuse、Emby 等媒体库的海报墙乱掉，需要手动删除、改名和维护。\n\n- 喜欢最高视频编码的资源<br>\n  如果偏好最高视频编码的资源，或希望选择较小体积的视频，通常需要手动下探搜索结果目录、挑选和比对。\n\n- Agent 来了，自己更懒了<br>\n  让 Agent 忙起来，自己安心当懒人。\n\n## 项目甜点：\n\n- 再也不操心订阅失效<br>\n\n- 节省 Token。命名规范、发布清晰的分享资源，可以交给 `code` 顾问执行；复杂资源情况则交给 Agent 或 LLM 大模型判断和决策<br>\n\n- Agent 可以使用 SKILL 分析资源的发布规律，并配置合理的订阅更新时间<br>\n\n- 多资源匹配用户需求、精准指定目标文件名做转存，有效规避资源目录多个相同剧集都下载搞了视频目录、资源发布时间和剧集顺序不相符情况 会看过的剧集<br>\n\n## 四种更新运行模式\n\n环境变量 `LAZY_CLI_ADVISOR`参数 是网盘资源搜索后的决策机制，用来决定候选资源怎么选。\n\n- `code`：用代码规则自动决策。适合后台任务、资源发布规范的剧集、资源目录有“更新至n集“；速度快，无需交互，不消耗 LLM Token。\n- `llm`：后台任务中引入大模型做资源选择。适合多版本编号冲突等复杂资源；可配合 `--add-prompt` 改AI大模型定制判断规则。\n- `agent`：由当前 Agent 在和用户交互过程中判断候选资源。适合复杂场景的临时更新，或者在Openclaw Heateat机制里，维护和修复复杂订阅更新的场景使用。\n- `human`：用户人工选择。适合用户想亲自确认资源的场景。\n---\n\n## 使用概览\n\n### 1. 手动追剧更新\n\n```bash\n# 追新：只转存高于当前最高集的新资源\nqslazy update new 凡人修仙传\n\n# 全量：补漏 + 追新\nqslazy update all 凡人修仙传\n```\n\n### 2. 查看订阅状态\n\n```bash\nqslazy task list\nqslazy task status 凡人修仙传\n```\n\n`task status` 会展示本地网盘状态、缺集情况、搜索到的资源发布时间，适合用来判断订阅是否正常，也可以帮助 Agent 推算最佳订阅更新时间。\n\n### 3. Agent / OpenClaw / Hermes 用法\n\n本项目提供 [SKILL.md](./SKILL.md)，包含更详细的 Agent 操作说明：\n\n- 如何查看订阅任务和单个剧集状态\n- 如何根据资源发布时间制定最佳订阅更新时间\n- `LAZY_CLI_ADVISOR=agent` 的决策文件工作流\n- Hermes Agent / OpenClaw 的后台执行与轮询方式\n- `--add-prompt` 的复杂资源筛选用法\n\n详细 Agent 用法请阅读 [SKILL.md](./SKILL.md)。\n\n---\n\n## 2. 安装和环境配置\n\n安装分两步：**Skill 文档**（告诉 Agent 怎么用）和 **qslazy CLI**（真正干活的命令）。两个都要装。\n\n### 第一步：安装 Skill 文档\n\nskills.sh / 通用 Agent：\n\n```bash\nnpx skills add jesustoachild/quark-lazy-cli\n```\n\nOpenClaw / ClawHub：\n\n```bash\nopenclaw skills install quark-lazy-cli\n```\n\n> Skill 安装只安装 SKILL.md、示例配置和辅助资源，不安装 Python 包。\n\n### 第二步：安装 qslazy CLI（必须）\n\n**pipx 安装（推荐）**：适用 Linux 服务器 / 已具备 Python 3.10+ 和 pipx 的用户。\n\n```bash\npipx install git+https://github.com/jesustoachild/quark-lazy-cli.git\n```\n\n**源码安装**：\n\n```bash\ngit clone https://github.com/jesustoachild/quark-lazy-cli.git\ncd quark-lazy-cli\npip install -e .\n```\n\n## 快速开始\n- 让你的 OpenClaw Agent 完成配置<br>\n- 或者，有 Python 运行环境的进阶用户可以手动配置和使用\n\n### 1. 配置环境\n\n```bash\ncd /<skill>/quark-lazy-cli\ncp .env.local.example .env\n```\n\n如果安装后的目录没有 `.env.local.example`，请读取 `references/环境变量.md`，根据里面的完整模板手动创建并编辑 `.env`。\n\n详细使用方式请阅读 `SKILL.md`。\n\n\n### 2. 查看订阅\n\n```bash\nqslazy task list\n```\n\n### 3. 查看订阅任务状态\n\n```bash\nqslazy task status 凡人修仙传\n```\n---\n\n### 4. 追更新集\n\n```bash\nqslazy update new 凡人修仙传\n```\n\n### 5. 补全缺集 + 追新\n\n```bash\nqslazy update all 凡人修仙传\n```\n\n\n## 许可证\n\nMIT\n\nFile v0.1.15:_meta.json\n\n{\n  \"ownerId\": \"kn76hk2rqrfzkebgwshctshq51813c92\",\n  \"slug\": \"quark-lazy-cli\",\n  \"version\": \"0.1.15\",\n  \"publishedAt\": 1779543636222\n}\n\nFile v0.1.15:references/OpenClaw定时任务.md\n\n# OpenClaw 定时任务\n\n本参考仅在用户要求配置 OpenClaw 定时订阅任务时读取。配置前必须已经运行过 `qslazy task status 剧名`，并根据资源发布时间向用户确认过“时间优先”或“画质优先”策略。\n\n## 推荐流程\n\n1. 用 `qslazy task status 剧名 --env <skills-dir>/quark-lazy-cli/.env` 查看网盘状态和资源发布时间。\n2. 询问用户偏好：\n   - 时间优先：最早有效资源发布时间 + 4 小时。\n   - 画质优先：最后一批高质量资源发布时间 + 4 小时。\n3. 用户确认后，再创建 OpenClaw 定时任务。\n4. 简单、命名规范的资源默认用 `LAZY_CLI_ADVISOR=code`，避免每次唤醒大模型。\n\n## 定时任务模板\n\n```bash\nopenclaw cron add \\\n  --name \"凡人修仙传-定时更新\" \\\n  --cron \"30 2 * * 0\" \\\n  --tz \"Asia/Shanghai\" \\\n  --session isolated \\\n  --agent AgentName \\\n  --announce \\\n  --channel feishu \\\n  --account bot-AgentName \\\n  --to \"USER_OPEN_ID\" \\\n  --message \"bash -c 'LAZY_CLI_ADVISOR=code qslazy update all 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env'\\n\\n仅根据 stdout 汇报结果，除非排错，不要读取 log 或报告文件。\"\n```\n\n替换项：\n\n- `凡人修仙传-定时更新`：任务显示名。\n- `30 2 * * 0`：定时表达式（cron 格式）。\n- `AgentName`：执行任务的 OpenClaw Agent。\n- `bot-AgentName`：通知账号。\n- `USER_OPEN_ID`：通知目标。\n- `<skills-dir>/quark-lazy-cli/.env`：实际 Skill 安装目录中的 `.env`。\n\n## 常用时间\n\n```text\n每周一 22:00 -> 0 22 * * 1\n每周六 14:00 -> 0 14 * * 6\n每周日 02:30 -> 30 2 * * 0\n每天 09:00 兜底 -> 0 9 * * *\n```\n\n## 汇报格式\n\n定时任务执行后，只根据 stdout 汇报。建议包含：\n\n```text\n订阅：\n当前：\n目标：\n偏好：\n更新结果：\n新增集数：\n补全剧集：\n```\n\n## 维护命令\n\n```bash\nopenclaw cron list\nopenclaw cron run <job-id>\nopenclaw cron edit <job-id> --cron \"0 22 * * 1\"\nopenclaw cron edit <job-id> --disable\nopenclaw cron edit <job-id> --enable\nopenclaw cron rm <job-id>\n```\n\n执行 `edit`、`rm` 等变更操作前，先向用户确认。\n\nFile v0.1.15:references/每日汇报.md\n\n# 每日汇报\n\n本参考用于配置 OpenClaw Agent 每日运行 `scripts/daily_report.sh`，汇总当天需要关注的订阅状态，并在发现网络资源高于网盘最高集时询问用户是否更新。\n\n## 使用场景\n\n用户说：\n\n- “帮我每天汇报订阅情况”\n- “每天检查今天该更新的剧”\n- “发现有新资源时问我要不要更新”\n- “帮我配置每日懒人汇报”\n\nAgent 应读取本参考。\n\n## 脚本说明\n\n脚本位置：\n\n```bash\n<skills-dir>/quark-lazy-cli/scripts/daily_report.sh\n```\n\n用法：\n\n```bash\nbash <skills-dir>/quark-lazy-cli/scripts/daily_report.sh [星期几] [env路径]\n```\n\n示例：\n\n```bash\nbash <skills-dir>/quark-lazy-cli/scripts/daily_report.sh 6 <skills-dir>/quark-lazy-cli/.env\n```\n\n参数：\n\n- `星期几`：可选。`1=周一`，`2=周二`，...，`7=周日`。不传则自动使用当天。\n- `env路径`：可选。推荐传入 `<skills-dir>/quark-lazy-cli/.env`。\n\n使用前，需要把脚本里的 `剧名1`、`剧名2`、`剧名3` 替换成用户真实的 QAS 任务名。\n\n脚本里的剧集分组应根据 [订阅时间估算.md](订阅时间估算.md) 中维护的“动漫订阅更新时间建议表”设计：\n\n- 周一汇报周一需要关注的剧。\n- 周二汇报周二需要关注的剧。\n- 如果某部剧有兜底重试时间，也可以同时放入兜底日期。\n- `run_status \"剧名1\"` 里的剧名必须使用表格里的 `taskname`，不要使用随意昵称。\n\n示例：\n\n```md\n| taskname | 剧名/显示名 | 更新策略 | 建议订阅更新时间 | 定时表达式 | 状态 | 备注 |\n|----------|-------------|----------|------------------|-------------|------|------|\n| 剧名1 | 剧名1 | 画质优先 | 周一 22:00 | `0 22 * * 1` | 正常 | |\n| 剧名2 | 剧名2 | 画质优先 | 周一 23:00 | `0 23 * * 1` | 正常 | |\n| 剧名3 | 剧名3 | 时间优先 | 周二 20:30 | `30 20 * * 2` | 正常 | |\n```\n\n对应脚本：\n\n```bash\n1)\n  echo \"📅 周一\"\n  run_status \"剧名1\"\n  run_status \"剧名2\"\n  ;;\n2)\n  echo \"📅 周二\"\n  run_status \"剧名3\"\n  ;;\n```\n\n## Ope\n\nArchive v0.1.14: 21 files, 64722 bytes\n\nFiles: assets/订阅时间表.md (1560b), pyproject.toml (533b), README.md (5267b), references/OpenClaw定时任务.md (2145b), references/每日汇报.md (4818b), references/环境变量.md (2172b), references/订阅时间估算.md (7186b), references/顾问模式.md (2973b), scripts/check_all_status.sh (554b), scripts/daily_report.sh (1564b), scripts/run_lazy_update.sh (2398b), SKILL.md (6868b), skills-lock.json (266b), src/quark_lazy_cli/__init__.py (71b), src/quark_lazy_cli/advisor.py (32116b), src/quark_lazy_cli/api.py (19607b), src/quark_lazy_cli/app.py (91791b), src/quark_lazy_cli/config.py (6858b), src/quark_lazy_cli/main.py (5749b), src/quark_lazy_cli/models.py (1579b), _meta.json (134b)\n\nArchive v0.1.13: 23 files, 62939 bytes\n\nFiles: .codex/hooks.json (273b), AGENTS.md (1129b), assets/订阅时间表.md (1560b), pyproject.toml (533b), README.md (5333b), references/OpenClaw定时任务.md (2145b), references/每日汇报.md (4818b), references/环境变量.md (2172b), references/订阅时间估算.md (5322b), references/顾问模式.md (2973b), scripts/check_all_status.sh (554b), scripts/daily_report.sh (1564b), scripts/run_lazy_update.sh (2398b), SKILL.md (6868b), skills-lock.json (266b), src/quark_lazy_cli/__init__.py (71b), src/quark_lazy_cli/advisor.py (29100b), src/quark_lazy_cli/api.py (18591b), src/quark_lazy_cli/app.py (84627b), src/quark_lazy_cli/config.py (6858b), src/quark_lazy_cli/main.py (5749b), src/quark_lazy_cli/models.py (1479b), _meta.json (134b)\n\nArchive v0.1.12: 21 files, 61935 bytes\n\nFiles: assets/订阅时间表.md (1560b), pyproject.toml (533b), README.md (5333b), references/OpenClaw定时任务.md (2145b), references/每日汇报.md (4818b), references/环境变量.md (2172b), references/订阅时间估算.md (5322b), references/顾问模式.md (2973b), scripts/check_all_status.sh (554b), scripts/daily_report.sh (1564b), scripts/run_lazy_update.sh (2398b), SKILL.md (6868b), skills-lock.json (266b), src/quark_lazy_cli/__init__.py (71b), src/quark_lazy_cli/advisor.py (29100b), src/quark_lazy_cli/api.py (18591b), src/quark_lazy_cli/app.py (84627b), src/quark_lazy_cli/config.py (6858b), src/quark_lazy_cli/main.py (5749b), src/quark_lazy_cli/models.py (1479b), _meta.json (134b)","readmeExcerpt":"Skill: Quark Lazy Cli Owner: jesustoachild Summary: 基于 QAS（夸克网盘自动转存项目）的懒人追剧、追番 SKILL，也内置了一个 CLI 工具。即使 QAS 的剧集订阅失效，它也可以重新搜索资源、探查多级资源目录，并在多个最新候选资源中按用户偏好（如更高清晰度）转存新剧集和缺失剧集。可以交给本地 OpenClaw、Hermes Agent 或其他Claude C... Tags: latest:0.1.22 Version history: v0.1.22 | 2026-06-01T15:52:04.564Z | user quark-lazy-cli v0.1.22 - 新增多份环境变量示例文件（.env.example, .env.local.example, references/.env.example）便于配置 - 增加 .gitignore、LICENSE、CLA","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"# skills.sh / 通用 Agent\nnpx skills add jesustoachild/quark-lazy-cli\n\n# OpenClaw / ClawHub\nopenclaw skills install quark-lazy-cli\n\n# qslazy CLI\npipx install git+https://github.com/jesustoachild/quark-lazy-cli.git"},{"language":"text","snippet":"<skills-dir>/quark-lazy-cli/.env"},{"language":"bash","snippet":"cd <skills-dir>/quark-lazy-cli\n\ncp ./.env.local.example .env"},{"language":"env","snippet":"# QAS 后端地址，例如：http://192.168.1.10:15305\nQAS_HOST=http://your-qas-host:port\n\n# QAS API Token，可在 QAS Web 管理页面查看\nQAS_API_TOKEN=your-qas-api-token\n\n# 网盘资源搜索选择的顾问模式：human / code / llm / agent\nLAZY_CLI_ADVISOR=code\n\n# 运行时目录，建议使用绝对路径，放在 Skill 目录下，便于 Agent 清理和迁移\nLAZY_CLI_LOG_DIR=<skills-dir>/quark-lazy-cli/runtime/logs\nLAZY_CLI_REPORT_DIR=<skills-dir>/quark-lazy-cli/runtime/report\nLAZY_CLI_AGENT_MSG_DIR=<skills-dir>/quark-lazy-cli/runtime/message"},{"language":"bash","snippet":"qslazy update new 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env"},{"language":"bash","snippet":"LAZY_CLI_ADVISOR=llm qslazy update new 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: quark-lazy-cli\ndescription: >-\n  基于 QAS（夸克网盘自动转存项目）的懒人追剧、追番 SKILL，也内置了一个 CLI 工具。即使 QAS\n  的剧集订阅失效，它也可以重新搜索资源、探查多级资源目录，并在多个最新候选资源中按用户偏好（如更高清晰度）转存新剧集和缺失剧集。可以交给本地\n  OpenClaw、Hermes Agent 或其他Claude Code, Codex Agent 使用，用来设置定时任务、定时汇报，并在订阅失败时辅助修复。有 Python\n  运行环境的进阶用户，也可以把它当作命令行工具使用。\n---\n\n# quark-lazy-cli\n\n`quark-lazy-cli` 是给 Agent 使用的夸克网盘追剧、追番订阅维护 Skill；`qslazy` 是它内置的命令行工具。它依赖 QAS 后端，用来查看订阅、检查缺集、搜索候选资源，并在用户授权后转存新剧集或补全缺失剧集。\n\n`quark-lazy-cli` 不是 QAS Web 端的替代。它的核心功能聚焦在更新、修复更新失败、精准指定源资源文件转存，让 Agent 帮用户少操心地追新、补漏和维护订阅。\n\n## 四种运行模式\n\n`LAZY_CLI_ADVISOR` 是网盘资源搜索后的决策机制，用来决定候选资源怎么选，不是聊天模式。\n\n- `code`：用代码规则自动决策。适合后台任务、资源发布规范的剧集、资源目录有“更新至n集”；速度快，无需交互，不消耗 LLM Token。\n- `llm`：后台任务中引入大模型做资源选择。适合多版本编号冲突等复杂资源；可配合 `--add-prompt` 改AI大模型定制判断规则。例如：让大模型帮你判断是动漫还是真人版的剧集、你订阅任务是剧集的中文名称，告诉大模型剧集的英文名称等。\n- `agent`：由当前 Agent 在和用户交互过程中判断候选资源。适合复杂场景的临时更新，或者在Openclaw Heateat机制里，维护和修复复杂订阅更新的场景使用。记得让Agent更新时，要求看订阅剧集.md文档中，你对剧集转存的要求。\n- `human`：用户人工选择。适合用户想亲自确认资源的场景。\n\n详细用法读取：`references/顾问模式.md`。\n\n## 安装\n\n安装分两步：Skill 文档告诉 Agent 怎么用；`qslazy` CLI 是真正执行任务的命令。两个都要装。\n\n```bash\n# skills.sh / 通用 Agent\nnpx skills add jesustoachild/quark-lazy-cli\n\n# OpenClaw / ClawHub\nopenclaw skills install quark-lazy-cli\n\n# qslazy CLI\npipx install git+https://github.com/jesustoachild/quark-lazy-cli.git\n```\n\n## 配置环境变量\n\n### 1. 确认 `.env` 位置\n\n`.env` 固定放在 Skill 目录根部，不要放到全局目录：\n\n```text\n<skills-dir>/quark-lazy-cli/.env\n```\n\n### 2. 创建 `.env`\n\n如果安装后的 Skill 目录里带有 env 样板文件，直接复制成 `.env`：\n\n```bash\ncd <skills-dir>/quark-lazy-cli\n\ncp ./.env.local.example .env\n```\n\n如果安装后的目录没有 env 样板文件，就读取 `references/环境变量.md`，由 Agent 根据里面的完整模板创建并编辑 `.env`。\n\n### 3. 写入基础配置\n\n把下面内容写入 `<skills-dir>/quark-lazy-cli/.env`，并把占位值改成用户自己的 QAS 信息：\n\n```env\n# QAS 后端地址，例如：http://192.168.1.10:15305\nQAS_HOST=http://your-qas-host:port\n\n# QAS API Token，可在 QAS Web 管理页面查看\nQAS_API_TOKEN=your-qas-api-token\n\n# 网盘资源搜索选择的顾问模式：human / code / llm / agent\nLAZY_CLI_ADVISOR=code\n\n# 运行时目录，建议使用绝对路径，放在 Skill 目录下，便于 Agent 清理和迁移\nLAZY_CLI_LOG_DIR=<skills-dir>/quark-lazy-cli/runtime/logs\nLAZY_CLI_REPORT_DIR=<skills-dir>/quark-lazy-cli/runtime/report\nLAZY_CLI_AGENT_MSG_DIR=<skills-dir>/quark-lazy-cli/runtime/message\n```\n\n如果想在任意目录下运行，建议加入 `--env`：\n\n```bash\nqslazy update new 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n如果临时覆盖 `.env` 的配置，可以不更改.env，命令行示例：\n\n```bash\nLAZY_CLI_ADVISOR=llm qslazy update new 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n环境变量优先顺序从高到低：\n\n```text\n命令行临时环境变量 > 系统环境变量 > --env 指定的 .env 文件 > 默认值\n```\n\n因此 `LAZY_CLI_ADVISOR=llm qslazy ... --env ...` 只会临时覆盖本次命令，不会修改 `.env` 文件。\n\n## 常用命令\n\n### 1. 验证安装\n\n```bash\nqslazy --help\nqslazy task --help\nqslazy update --help\n```\n\n### 2. 查看订阅\n\n```bash\nqslazy task list --env <skills-dir>/quark-lazy-cli/.env\n```\n\n### 3. 查看订阅任务状态\n\n```bash\nqslazy task status 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n### 4. 追更新集（必须先获得用户授权，禁止自行测试）\n\n禁止把更新命令当作安装测试或功能测试。只有用户明确要求更新、追新或修复订阅时，才可以执行。\n\n```bash\nLAZY_CLI_ADVISOR=code qslazy update new 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n### 5. 补全缺集 + 追新（必须先获得用户授权，禁止自行测试）\n\n禁止在用户只要求“看看”“检查”“"},{"path":"README.md","content":"# 夸克网盘懒人追剧、追番 SKILL\n\n基于 QAS（夸克网盘自动转存项目）的懒人追剧、追番 SKILL，也内置了一个 CLI 工具。即使 QAS 的剧集订阅失效，它也可以重新搜索资源、探查多级资源目录，并在多个最新候选资源中按用户偏好（如更高清晰度）转存新剧集和缺失剧集，并修复订阅链接。\n\n可以交给本地 OpenClaw、Hermes Agent 或其他 Agent 使用，用来设置定时任务、定时汇报，并在订阅失败时辅助修复。\n有 Python 运行环境的进阶用户，也可以把它当作命令行工具使用。\n\n本项目不是对QAS Web UI的替代，而聚焦订阅剧集的”偷懒的更新“。\n\n## 核心需求：\n\n- QAS 的订阅时常会失效<br>\n  手工查询、维护订阅任务很麻烦。等忙完想起来再去找新资源时，资源可能已经失效了。\n\n- Infuse、Emby 的海报墙被重复剧集搞乱<br>\n  分享资源内容可能重复，例如：凡人修仙传.S05E01.4K.mkv、凡人修仙传.S05E01.dv.mkv。用正则模板转存时，可能会把两个文件都转存下来，造成剧集文件混乱，让 Infuse、Emby 等媒体库的海报墙乱掉，需要手动删除、改名和维护。\n\n- 喜欢最高视频编码的资源<br>\n  如果偏好最高视频编码的资源，或希望选择较小体积的视频，通常需要手动下探搜索结果目录、挑选和比对。\n\n- Agent 来了，自己更懒了<br>\n  让 Agent 忙起来，自己安心当懒人。\n\n## 项目甜点：\n\n- 再也不操心订阅失效<br>\n\n- 节省 Token。命名规范、发布清晰的分享资源，可以交给 `code` 顾问执行；复杂资源情况则交给 Agent 或 LLM 大模型判断和决策<br>\n\n- Agent 可以使用 SKILL 分析资源的发布规律，并配置合理的订阅更新时间<br>\n\n- 多资源匹配用户需求、精准指定目标文件名做转存，有效规避资源目录多个相同剧集都下载搞了视频目录、资源发布时间和剧集顺序不相符情况 会看过的剧集<br>\n\n## 四种更新运行模式\n\n`LAZY_CLI_ADVISOR` 是网盘资源搜索后的决策机制，用来决定候选资源怎么选，不是聊天模式。\n\n- `code`：用代码规则自动决策。适合后台任务、资源发布规范的剧集、资源目录有“更新至n集”；速度快，无需交互，不消耗 LLM Token。<br>\n- `llm`：后台任务中引入大模型做资源选择。适合多版本编号冲突等复杂资源；可配合 `--add-prompt` 改AI大模型定制判断规则。例如：让大模型帮你判断是动漫还是真人版的剧集、你订阅任务是剧集的中文名称，告诉大模型剧集的英文名称等。<br>\n- `agent`：由当前 Agent 在和用户交互过程中判断候选资源。适合复杂场景的临时更新，或者在Openclaw Heateat机制里，维护和修复复杂订阅更新的场景使用。记得让Agent更新时，要求看订阅剧集.md文档中，你对剧集转存的要求。<br>\n- `human`：用户人工选择。适合用户想亲自确认资源的场景。<br>\n\n详细用法读取：`references/顾问模式.md`。\n---\n\n## 使用概览\n\n### 1. 手动追剧更新\n\n```bash\n# 追新：只转存高于当前最高集的新资源\nqslazy update new 凡人修仙传\n\n# 全量：补漏 + 追新\nqslazy update all 凡人修仙传\n```\n\n### 2. 查看订阅状态\n\n```bash\nqslazy task list\nqslazy task status 凡人修仙传\n```\n\n`task status` 会展示本地网盘状态、缺集情况、搜索到的资源发布时间，适合用来判断订阅是否正常，也可以帮助 Agent 推算最佳订阅更新时间。\n\n### 3. Agent / OpenClaw / Hermes 用法\n\n本项目提供 [SKILL.md](./SKILL.md)，包含更详细的 Agent 操作说明：\n\n- 如何查看订阅任务和单个剧集状态\n- 如何根据资源发布时间制定最佳订阅更新时间\n- `LAZY_CLI_ADVISOR=agent` 的决策文件工作流\n- Hermes Agent / OpenClaw 的后台执行与轮询方式\n- `--add-prompt` 的复杂资源筛选用法\n\n详细 Agent 用法请阅读 [SKILL.md](./SKILL.md)。\n\n---\n\n## 2. 安装和环境配置\n\n安装分两步：**Skill 文档**（告诉 Agent 怎么用）和 **qslazy CLI**（真正干活的命令）。两个都要装。\n\n### 第一步：安装 Skill 文档\n\nskills.sh / 通用 Agent：\n\n```bash\nnpx skills add jesustoachild/quark-lazy-cli\n```\n\nOpenClaw / ClawHub：\n\n```bash\nopenclaw skills install quark-lazy-cli\n```\n\n> Skill 安装只安装 SKILL.md、示例配置和辅助资源，不安装 Python 包。\n\n### 第二步：安装 qslazy CLI（必须）\n\n**pipx 安装（推荐）**：适用 Linux 服务器 / 已具备 Python 3.10+ 和 pipx 的用户。\n\n```bash\npipx install git+https://github.com/jesustoachild/quark-lazy-cli.git\n```\n\n**源码安装**：\n\n```bash\ngit clone https://github.com/jesustoachild/quark-lazy-cli.git\ncd quark-lazy-cli\npip install -e .\n```\n\n## 快速开始\n- 让你的 OpenClaw Agent 完成配置<br>\n- 或者，有 Python 运行环境的进阶用户可以手动配置和使用\n\n### 1. 配置环境\n\n```bash\ncd /<skill>/quark-lazy-cli\ncp .env.local.example .env\n```\n\n如果安装后的目录没有 `.env.local.example`，请读取 `references/环境变量.md`，根据里面的完整模板手动创建并编辑 `.env`。\n\n详细使用方式请阅读 `SKILL.md`。\n\n\n### 2. 查看订阅\n\n```bash\nqslazy task list\n```\n\n### 3. 查看订阅任务状态\n\n```bash\nqslazy task status 凡人修仙传\n```\n---\n\n### 4. 追更新集\n\n```bash\nqslazy update new 凡人修仙传\n```\n\n### 5. 补全缺集 + 追新\n\n```bash\nqslazy update all 凡人修仙传\n```\n\n\n## 许可证\n\nMIT"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn76hk2rqrfzkebgwshctshq51813c92\",\n  \"slug\": \"quark-lazy-cli\",\n  \"version\": \"0.1.22\",\n  \"publishedAt\": 1780329124564\n}"},{"path":"references/OpenClaw定时任务.md","content":"# OpenClaw 定时任务\n\n本参考仅在用户要求配置 OpenClaw 定时订阅任务时读取。配置前必须已经运行过 `qslazy task status 剧名`，并根据资源发布时间向用户确认过“时间优先”或“画质优先”策略。\n\n## 推荐流程\n\n1. 用 `qslazy task status 剧名 --env <skills-dir>/quark-lazy-cli/.env` 查看网盘状态和资源发布时间。\n2. 询问用户偏好：\n   - 时间优先：最早有效资源发布时间 + 4 小时。\n   - 画质优先：最后一批高质量资源发布时间 + 4 小时。\n3. 用户确认后，再创建 OpenClaw 定时任务。\n4. 简单、命名规范的资源默认用 `LAZY_CLI_ADVISOR=code`，避免每次唤醒大模型。\n\n## 定时任务模板\n\n```bash\nopenclaw cron add \\\n  --name \"凡人修仙传-定时更新\" \\\n  --cron \"30 2 * * 0\" \\\n  --tz \"Asia/Shanghai\" \\\n  --session isolated \\\n  --agent AgentName \\\n  --announce \\\n  --channel feishu \\\n  --account bot-AgentName \\\n  --to \"USER_OPEN_ID\" \\\n  --message \"bash -c 'LAZY_CLI_ADVISOR=code qslazy update all 凡人修仙传 --env <skills-dir>/quark-lazy-cli/.env'\\n\\n仅根据 stdout 汇报结果，除非排错，不要读取 log 或报告文件。\"\n```\n\n替换项：\n\n- `凡人修仙传-定时更新`：任务显示名。\n- `30 2 * * 0`：定时表达式（cron 格式）。\n- `AgentName`：执行任务的 OpenClaw Agent。\n- `bot-AgentName`：通知账号。\n- `USER_OPEN_ID`：通知目标。\n- `<skills-dir>/quark-lazy-cli/.env`：实际 Skill 安装目录中的 `.env`。\n\n## 常用时间\n\n```text\n每周一 22:00 -> 0 22 * * 1\n每周六 14:00 -> 0 14 * * 6\n每周日 02:30 -> 30 2 * * 0\n每天 09:00 兜底 -> 0 9 * * *\n```\n\n## 汇报格式\n\n定时任务执行后，只根据 stdout 汇报。建议包含：\n\n```text\n订阅：\n当前：\n目标：\n偏好：\n更新结果：\n新增集数：\n补全剧集：\n```\n\n## 维护命令\n\n```bash\nopenclaw cron list\nopenclaw cron run <job-id>\nopenclaw cron edit <job-id> --cron \"0 22 * * 1\"\nopenclaw cron edit <job-id> --disable\nopenclaw cron edit <job-id> --enable\nopenclaw cron rm <job-id>\n```\n\n执行 `edit`、`rm` 等变更操作前，先向用户确认。"},{"path":"references/每日汇报.md","content":"# 每日汇报\n\n本参考用于配置 OpenClaw Agent 每日运行 `scripts/daily_report.local.sh`，汇总当天需要关注的订阅状态，并在发现网络资源高于网盘最高集时询问用户是否更新。\n\n## 使用场景\n\n用户说：\n\n- “帮我每天汇报订阅情况”\n- “每天检查今天该更新的剧”\n- “发现有新资源时问我要不要更新”\n- “帮我配置每日懒人汇报”\n\nAgent 应读取本参考。\n\n## 脚本说明\n\n脚本位置：\n\n```bash\n<skills-dir>/quark-lazy-cli/scripts/daily_report.local.sh\n```\n\n首次使用先从样板复制：\n\n```bash\ncp <skills-dir>/quark-lazy-cli/scripts/daily_report.sample.sh \\\n   <skills-dir>/quark-lazy-cli/scripts/daily_report.local.sh\n```\n\n用法：\n\n```bash\nbash <skills-dir>/quark-lazy-cli/scripts/daily_report.local.sh [星期几] [env路径]\n```\n\n示例：\n\n```bash\nbash <skills-dir>/quark-lazy-cli/scripts/daily_report.local.sh 6 <skills-dir>/quark-lazy-cli/.env\n```\n\n参数：\n\n- `星期几`：可选。`1=周一`，`2=周二`，...，`7=周日`。不传则自动使用当天。\n- `env路径`：可选。推荐传入 `<skills-dir>/quark-lazy-cli/.env`。\n\n使用前，需要把 `daily_report.local.sh` 里的 `剧名1`、`剧名2`、`剧名3` 替换成用户真实的 QAS 任务名。\n\n不要直接修改 `daily_report.sample.sh`。`.sample.sh` 是仓库提供的升级样板，后续升级可以覆盖；`.local.sh` 是用户自己的定制脚本，应保留在本地。\n\n脚本里的剧集分组应根据 [订阅时间估算.md](订阅时间估算.md) 中维护的“动漫订阅更新时间建议表”设计：\n\n- 周一汇报周一需要关注的剧。\n- 周二汇报周二需要关注的剧。\n- 如果某部剧有兜底重试时间，也可以同时放入兜底日期。\n- `run_status \"剧名1\"` 里的剧名必须使用表格里的 `taskname`，不要使用随意昵称。\n\n示例：\n\n```md\n| taskname | 剧名/显示名 | 更新策略 | 建议订阅更新时间 | 定时表达式 | 状态 | 备注 |\n|----------|-------------|----------|------------------|-------------|------|------|\n| 剧名1 | 剧名1 | 画质优先 | 周一 22:00 | `0 22 * * 1` | 正常 | |\n| 剧名2 | 剧名2 | 画质优先 | 周一 23:00 | `0 23 * * 1` | 正常 | |\n| 剧名3 | 剧名3 | 时间优先 | 周二 20:30 | `30 20 * * 2` | 正常 | |\n```\n\n对应脚本：\n\n```bash\n1)\n  echo \"📅 周一\"\n  run_status \"剧名1\"\n  run_status \"剧名2\"\n  ;;\n2)\n  echo \"📅 周二\"\n  run_status \"剧名3\"\n  ;;\n```\n\n## OpenClaw 定时任务模板\n\n```bash\nopenclaw cron add \\\n  --name \"qslazy-每日订阅汇报\" \\\n  --cron \"30 23 * * *\" \\\n  --tz \"Asia/Shanghai\" \\\n  --session isolated \\\n  --agent AgentName \\\n  --announce \\\n  --channel feishu \\\n  --account bot-AgentName \\\n  --to \"USER_OPEN_ID\" \\\n  --message \"bash -c 'bash <skills-dir>/quark-lazy-cli/scripts/daily_report.local.sh \\\"\\\" <skills-dir>/quark-lazy-cli/.env'\\n\\n请根据 stdout 汇报订阅状态。如果发现网络资源的最高集数高于网盘最高集，先询问用户是否执行 qslazy update all，不要自动更新。\"\n```\n\n替换项：\n\n- `AgentName`：执行汇报的 OpenClaw Agent。\n- `bot-AgentName`：通知账号。\n- `USER_OPEN_ID`：通知目标。\n- `<skills-dir>/quark-lazy-cli`：实际 Skill 安装目录。\n\n## Agent 汇报规则\n\nAgent 只根据 stdout 汇报，除非排错，不读取 log 或报告文件。\n\n每个任务建议汇报：\n\n```text\n[ 凡人修仙传 ]\n\n💾 网盘：最高 82（更新于：昨天），最低 78，缺[79, 80]\n🎯 目标：第82集以上资源\n💎 偏好：最高画质优先\n\n🔍 最新资源：今天和昨天\n🔍 资源更新至：83集\n\n状态总结：网盘最高 82 vs 资源更新至 83，需要更新；同时网盘缺[79, 80]，建议补漏。\n```\n\n状态文案建议：\n\n```text\n状态总结：网盘最高 X vs 资源更新至 X，网盘已是最新。\n状态总结：网盘最高 X vs 资源更新至 Y，需要更新。\n状态总结：网盘最高 X vs 资源更新至 Y，需要更新；同时网盘缺[...]，建议补漏。\n状态总结：资源编号或版本较复杂，需要人工确认。\n```\n\n## 发现新资源时的处理\n\n如果 stdout 显示网络候选资源高于网盘最高集，例如：\n\n```text\n网盘：最高 22\n候选资源：更新至 23 集\n```\n\nAgent 不能自动更新，必须先按上面的格式汇报，再问用户：\n\n```text\n我看到《剧名1》网盘最高到第 22 集，但网络资源已更新到第 23 集。\n是否现在执行 `qslazy update all 剧名1 --env <skills-dir>/quark-lazy-cli/.env` 追新并补漏？\n```\n\n用户确认后再执行：\n\n```bash\nLAZY_CLI_ADVISOR=code qslazy update all 剧名1 --env <skills-dir>/quark-lazy-cli/.env\n```\n\n如果资源命名复杂、编号冲突或画质选择困难，改用：\n\n```bash\nLAZY_CLI_ADVISOR=llm qslazy update all 剧名1 \\\n  --env <skills-dir>/quark-lazy-cli/.e"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":890,"uniquenessScore":43,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T23:30:51.647Z","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-09T23:30:51.647Z","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-10T03:53:13.142Z","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"}]}}}