本文へ移動
cccskills
無料GitHub で公開

quark-mswnlz-publisher

Automate the full QuarkPanTool → mswnlz GitHub content publishing pipeline. Supports Quark / Baidu / Aliyun drives with multi-account rotation. Use when the user provides share URLs and wants: (1) auto-detect drive type and route to correct handler, (2) save resources with automatic account rotation, (3) clean junk files from shared folders, (4) copy promotional files into each folder, (5) generate permanent encrypted share links, (6) auto-classify items into local content dirs (book/movies/AIknowledge/tools/etc.), (7) append/update YYYYMM.md and README index, (8) local git commit, (9) send unified Telegram notifications to multiple groups, (10) rebuild site and deploy to Cloudflare Pages.

インストール方法を見る

含まれるファイル(30)

  • SKILL.md28.2 KB
  • promo_files/0_双击获取解压密码_Mac系统双击这里.webloc275 B
  • promo_files/0_双击获取解压密码_windows系统双击这里.url78 B
  • promo_files/1_解压密码869hr_uk_移动端双击这里.html22.2 KB
  • promo_files/必看免责声明_及加入资源分享群_及_副业_0_成本赚钱教程_资源网站doc_869hr_uk.txt4.8 KB
  • README.md23.0 KB
  • references/mswnlz-repos-cache.json186 B
  • scripts/batch_share_results_quark_codex.json583 B
  • scripts/batch_share_results.json6.1 KB
  • scripts/cleanup_junk_files.py13.2 KB
  • scripts/combined_group_message.txt1.6 KB
  • scripts/config/junk_files.json746 B
  • scripts/config/repo_descriptions.json1.5 KB
  • scripts/copy_promo_to_folders.py11.7 KB
  • scripts/deep_scan_junk.py1.8 KB
  • scripts/deploy_cloudflare_pages.sh4.8 KB
  • scripts/export_excel.py10.2 KB
  • scripts/extract_items.py8.5 KB
  • scripts/items_quark_codex.json145 B
  • scripts/items.json1.5 KB
  • scripts/items.json.bak.20260724-1242171.1 KB
  • scripts/mswnlz_publish.py23.9 KB
  • scripts/pipeline_orchestrator.py20.4 KB
  • scripts/quark_account_rotator.py8.3 KB
  • scripts/quark_batch_run.py8.8 KB
  • scripts/quark_copy.py5.3 KB
  • scripts/quark_group_message.txt1.1 KB
  • scripts/remove_old_links.py1.2 KB
  • scripts/trigger_site_rebuild.sh268 B
  • scripts/url_router.py3.5 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

quark-mswnlz-publisher

版本: v2.7.0

夸克网盘 / 百度网盘 / 阿里云盘 → 本地内容目录 → Cloudflare Pages 站点更新,一条龙发布。

2026-10-07 起,站点部署到 Cloudflare Pages(项目 doc869hr,域名 doc.869hr.uk),已校验源码同步到 Gitee 私有仓库;旧 GitHub 历史不复制,避免带入已删除凭据与缓存。

支持三网盘混合输入、多账号轮换、多群组通知。

v2.7.0 (2026-10-07)

  • 资源站构建校验后先备份到 Gitee 私有仓库,再部署 Cloudflare Pages。
  • 发布入口要求资源站源码工作区预先干净;仅提交本次生成的 docs/ 变化,防止混入人工修改。
  • Gitee 使用当前清理树开始的独立快照历史,旧 GitHub 凭据和缓存历史不得镜像。

更新日志

v2.6.0 (2026-10-03)

  • 🚨 GitHub → Cloudflare Pages 大迁移:GitHub 账号接连被封(mswnlz → kingcolixhs-max),托管链路彻底切换
    • 内容仓库不再推 GitHub,仅本地 git commit 保留版本历史(远端已废弃)
    • 仓库描述改读本地 scripts/config/repo_descriptions.json(原 GitHub API 不可用)
    • 新增 deploy_cloudflare_pages.sh:本地全量构建(copy_content → sync-tabs → build:guides → build → validate)+ wrangler pages deploy + 频道 TG 通知
    • trigger_site_rebuild.sh 改为兼容入口,直接转发到部署脚本
    • 频道通知从 GitHub Actions Secrets 移回本地(token 从环境变量/既有默认值读取,不硬编码)

v2.5.0 (2026-10-02)

  • 🚀 站点 SEO/GEO 大版本改造同步:站点从「可索引单元=月份归档页」升级为「每条资源一个独立详情页 /r/{id}」,同步发布端合同
    • 站点新增 build-resource-pages.js:每条资源生成站内详情页,建立「分类页 → 详情页 → 网盘入口」内链
    • 站点新增 docs/public/llms.txt(GEO 入口,供 AI 搜索引擎抓取站点结构)
    • 站点网盘外链统一 nofollow(修复 VitePress externalLinks 覆盖 rel 的问题)
    • 站点 thin 月份页(资源 < 3)noindex 且不进 sitemap(修复 MONTH_PATH_RE 与 sitemap transformItems 的路径匹配 bug)
    • 站点新增 scripts/test-seo-contract.js(npm test):源码契约快速门禁,把历史 SEO 事故固化为断言
  • 🧹 --migrate-legacy 全量迁移:mswnlz_publish.py 新增迁移模式,一次性把全部内容仓库所有历史月份文件里的旧水印/管道格式规范化为标准 [标题](URL)(此前只在当前批次月份生效,历史文件永不迁移)
  • 🧪 站点重建前加 npm test:trigger_site_rebuild.sh 在 build 前先跑契约测试,并清理 docs/r/ 生成物

v2.4.0 (2026-07-27)

  • 🎨 彻底修复站点渲染换行问题:mswnlz_publish.py 的 append_items() 和新增 normalize_legacy_lines() 三重保障:
    • ① 自动把旧格式行(标题-超过100T资料总站网站-doc.869hr.uk | URL)转换为标准 [标题](URL)
    • ② 自动检测相邻链接行缺空行的情况并插入空行(VitePress 会把相邻文本行合并为一个段落)
    • ③ 新增条目追加时自动确保前文有空行隔开
  • 📐 Markdown 规范固化:每个资源条目独立一行 [标题](URL),条目之间空行隔开
  • 🧪 新增单元测试:验证旧格式转换、缺空行修复、已规范不动等场景

v2.3.0 (2026-07-27)

  • 🔑 cleanup 多账号自动遍历:cleanup_junk_files.py v2.0 自动扫描 config/cookies*.txt 全部 cookie 文件,每个账号独立登录清理,不再遗漏非当前账号的垃圾文件
  • 🔁 cleanup 递归扫描:从只扫一级子文件夹升级为递归 6 层深度(--max-depth 可调),彻底清理嵌套在深层子文件夹中的垃圾
  • 📁 junk_files.json 新增:更多资源收藏不迷路(转存来源常见的推广文件夹)
  • 📝 经验沉淀:新增「踩坑记录」章节,记录多账号场景下的典型问题

v2.2.1 (2026-07-26)

  • 🐛 修复 mswnlz_publish.py 路径错误:v2.2.0-rc1 误将默认路径改为 /Users/m/document/QNSZ/project/mswnlz-github(少 . 且目录不存在),修正回 /Users/m./Documents/QNSZ/project/mswnlz
  • MSWNLZ_ROOT 优先级调整:mswnlz > mswnlz-github(与实际目录结构一致)
  • 🧹 垃圾清理支持删除文件夹:cleanup_junk_files.py 升级,匹配到垃圾名单的子文件夹也会整个删除(此前只删文件)
    • 夸克端:子文件夹匹配名单 → 整个文件夹删除
    • 百度端:批次根目录下的垃圾子文件夹直接 rm,子文件夹内正常扫描
  • 🗑️ junk_files.json 新增条目:
    • 🍎关注公众号,免费进资源群🍎.JPG
    • 关注公众号,免费进资源群.JPG
    • 00❤️必看~网盘用户福利❤️(文件夹)
  • 🔁 转存失败自动跳过:quark_batch_run.py 捕获 EOFError 后跳过当前条目继续下一条,不再整个批次中断

v2.2.0 (2026-07-24)

  • 同步 doc.869hr.uk SEO 重构后的站点合同:发布端只追加资源源文件,不再生成或修改分类页结构
  • 新增资源写入标准 Markdown 链接格式 [标题](URL),兼容站点构建期 catalog 和服务端可索引目录
  • 站点重建前执行 npm run build + npm run validate,验证 catalog、sitemap 和 /public/ 重复页规则
  • ⚠️ 当时误改默认路径为 /Users/m/document/QNSZ/project/mswnlz-github(少 . 且目录不存在)→ v2.2.0 已修复

v2.1.1 (2026-07-19)

  • 🔧 copy_promo 动态发现推广文件夹:不再硬编码账号1的 fid,改为先试硬编码 → 失败则在 temp/ 下按名称查找,自动适配多账号场景

v2.1.0 (2026-07-19)

  • 🆕 多账号轮换:支持多个夸克账号按批次自动轮换,分摊转存压力
    • 新增 scripts/quark_account_rotator.py 独立轮换器
    • quark_batch_run.py 集成轮换逻辑,支持 --force-account 和 --no-rotate 参数
    • 采用方案B(按批次轮换)+ 做法甲(cookie 文件复制),对现有代码零侵入
    • 状态记录在 config/account_state.json,支持任意数量的账号
    • 输出 JSON 新增 quark_account 字段,标记本批次使用的账号

v2.0.0 (2026-07-15)

  • 🆕 垃圾文件清理模块:转存后自动删除原分享者植入的推广/广告文件
    • 新增 scripts/cleanup_junk_files.py 独立清理脚本,支持夸克/百度/阿里云三端
    • 新增 config/junk_files.json 垃圾文件名配置文件(子串匹配,可随时追加)
    • pipeline_orchestrator.py 在 A 段与 B 段之间插入 cleanup 步骤
    • QuarkPanTool quark.py 新增 delete_files(fid_list) API
    • QuarkPanTool aliyun_client.py 新增 delete_file_by_name() 方法

v1.9.0 (2026-07-11)

  • 🆕 新增 @tgmkno 群组:配置文件 quark-publisher.env 新增 TG_GROUP_3_ID=@tgmkno,通知同步推送到 tgmkno 群组
  • 🔧 默认支持 4 个 TG 群组推送(v1.8.0),完全通过环境变量控制

v1.8.0 (2026-07-04)

  • 🆕 第4个 TG 群组推送:mswnlz_publish.py 新增 TG_GROUP_4_ID / TG_GROUP_4_THREAD 环境变量支持
  • 🔧 默认支持 4 个群组推送,完全通过环境变量控制,无需改代码

v1.7.0 (2026-07-03)

  • 🆕 quark_batch_run.py v2.0.0: Save-Share 锁步模式,不再依赖目录列表顺序
    • 每个 item 保存后立即生成分享链接,捕获 title→URL 的显式映射
    • 规则: 有 title+url → 用提供的 title;只有 url → 从 Quark 实际文件夹名取名字
    • 一个 title 下有多个 url 时,所有分享链接自动归到同一 title 下
  • 🔧 pipeline_orchestrator.py: _load_urls 适配新版 title 字段,不再按 index 对位
  • 🔧 内容校验: 名称与 URL 一一对应,防止跨资源串位
  • 🧹 清理了过时的中间文件

v1.6.0 (2026-07-03)

  • 🆕 阿里云盘完整支持:新增 aliyun_client.py / aliyun_batch_run.py,基于 aligo SDK 实现阿里云盘转存+加密永久分享+推广文件复制
  • 🆕 三链发布:pipeline_orchestrator.py 支持夸克+百度+阿里云盘三网盘混合分流、合并、统一发布
  • 🆕 三链 TG 通知:群组通知和频道通知同时显示三个网盘的链接
  • 🔀 url_router.py 新增 aliyundrive.com 识别路由
  • 🆕 自动上传推广文件:阿里云盘首次自动扫码登录后,自动上传本地推广文件到网盘
  • 🧩 依赖:项目 .venv 需安装 aligo>=6.2.8(pip install aligo)

v1.5.0 (2026-07-01)

  • 🆕 百度网盘完整支持:新增 baidu_client.py / baidu_batch_run.py,支持百度网盘转存+加密永久分享+推广文件复制
  • 🆕 统一编排器 pipeline_orchestrator.py:自动识别 Quark / Baidu 链接,分流处理、按名称合并结果后统一发布
  • 🆕 多链接支持:items.json 支持 urls 数组,一个资源名可以同时有夸克和百度链接
  • 🔗 双链接发布:TG 通知和群组消息同时显示夸克+百度两个链接
  • 🛡️ 容错设计:一个网盘异常不影响另一个,至少有一个链接成功即可发布
  • 🔀 统一路由 url_router.py:自动检测链接来源(quark.cn / pan.baidu.com)
  • ♻️ 百度A段已支持文件重复时自动分享已有文件夹
  • 🧪 dry-run 模式:编排器和发布脚本均支持 --dry-run,测试时可跳过 TG 通知、本地提交与站点部署
  • 📝 原始标题辅助判断:同时检查用户输入的原始标题(如"北宋帝陵 (2023) 4K 全7集"),弥补 Quark 文件夹名简写问题
  • 🔧 修复"合集"误归:取消"合集"自动归 book 规则,防止影视合集错归书籍仓库
  • ➕ 新增第三个群组到通知列表,非论坛群无 topic
  • 🐛 修复:thread_id 为 None 时不传 message_thread_id 参数,避免非论坛群发送报错
  • 🐛 修复:thread_id 为 None 时不传 message_thread_id 参数,避免非论坛群发送报错
  • 📄 readme 文档更新: 分类策略新增三层文档

v1.4.3 (2026-05-29)

  • 🎨 统一群组通知格式:与频道通知风格对齐,包含资源名称、夸克链接、更新仓库、查看详情链接、资料总站、资料频道
  • 🔗 群组通知新增夸克转存链接行(🔗 夸克链接:xxx)
  • 📦 频道通知(notify.yml)新增资料频道链接,10个仓库统一更新

v1.4.2 (2026-03-15)

  • 🐛 修复:脚本启动时自动加载 secrets.env 环境变量,无需手动 export
  • 📝 影响脚本:quark_batch_run.py、mswnlz_publish.py

v1.4.1

  • 初始稳定版本

📺 视频教程

【资源运营神器Skills】完全开源,夸克网盘+GitHub一条龙全自动发布工具!转存、归类、TG通知、站点更新一键搞定!

📝 文字教程

Twitter/X 教程帖子

触发条件

当用户提供夸克分享链接并需要执行以下任一操作时:

  • 批量转存夸克资源
  • 生成永久加密分享链接
  • 发布到本地内容目录(mswnlz-github/ 下 11 个内容仓库)
  • 更新站点内容

工作区约定

路径用途
/Users/m/document/QNSZ/project项目根目录
/Users/m/document/QNSZ/project/QuarkPanTool夸克自动化工具
/Users/m/document/QNSZ/project/mswnlz-githubmswnlz 组织内容仓库 + 站点仓库
/Users/m/document/QNSZ/project/skillsSkills 仓库

安全要求

  • 不要在聊天中粘贴或回显 Token
  • Cloudflare 凭据用 wrangler login 保存在本机,不要把 API token 写入脚本或仓库
  • 部署需要时代理:脚本会自动检测 127.0.0.1:7798 并使用
  • Telegram Token 必须通过环境变量配置(见下方)

环境变量配置

在运行脚本前,需要设置以下环境变量:

# Telegram Bot Token(必须)
export TELEGRAM_BOT_TOKEN="你的Bot Token"

# Telegram 群组配置(可选,用于发送通知)
export TG_GROUP_1_ID="-100XXXXXXXXXX"      # 群组 1 ID
export TG_GROUP_1_THREAD="5"               # 群组 1 话题 ID
export TG_GROUP_2_ID="-100YYYYYYYYYY"      # 群组 2 ID
export TG_GROUP_2_THREAD="2"               # 群组 2 话题 ID
export TG_GROUP_4_ID=""                     # 群组 4 ID
export TG_GROUP_4_THREAD=""                # 群组 4 话题 ID

# Telegram 频道 ID(可选)
export TELEGRAM_CHANNEL_ID="@your_channel"

# Cloudflare(部署用,wrangler login 一次即可,无需环境变量)
# 可选覆盖 Pages 项目名(默认 doc869hr)
export CF_PAGES_PROJECT="doc869hr"

⚠️ 安全提示:

  • 永远不要将 Token 硬编码在脚本中
  • 永远不要将 Token 提交到 Git 仓库

完整工作流

0) 输入收集

需要用户提供:

  • 夸克分享 URL 列表(每条可包含标题)

原始文本 → items.json(v2.6.0 新增):群消息/手工整理的文本可用 scripts/extract_items.py 直接转成 pipeline 输入,无需手工整理:

python3 scripts/extract_items.py --input raw.txt --out-json items.json
# 可选:查夸克分享 API 取真实资源名,防止标注与实际内容不符
python3 scripts/extract_items.py --input raw.txt --out-json items.json --quark-titles

支持 5 种写法(标题行+链接行 / 标题行+裸链接 / 管道行 / Markdown 链接 / 带 🔗 前缀), 自动识别夸克/百度/阿里云盘,过滤无关站点,同一标题的多条链接自动合并为 urls[]。

  • 目标月份 YYYYMM(默认:当前月份)
  • 批次标签(默认:短裤哥批次)

1) 确保各网盘登录状态

夸克网盘:

  • 检查 QuarkPanTool/config/cookies.txt
  • 如果不存在或为空:运行 python quark_login.py
  • 登录流程:自动打开 Chrome → 用户扫码 → Cookie 自动保存

阿里云盘(首次使用需扫码):

  • 首次运行 aliyun_batch_run.py 时,终端会打印二维码图片链接
  • 用阿里云盘 App 扫码登录后,refresh_token 自动保存到 ~/.aligo/quark-mswnlz.json
  • 后续运行自动复用 token,无需再扫码
  • 首次运行还会自动上传本地推广文件到阿里云盘的 /推广文件 目录

2) 批量转存 + 生成分享链接(支持夸克/百度/阿里云盘)

          ┌─ 夸克 ─→ quark_batch_run.py
items.json ── 百度 ─→ baidu_batch_run.py  ──→ batch_share_results.json ──→ 合并 ──→ B段
          └─ 阿里云盘 → aliyun_batch_run.py

使用 scripts/quark_batch_run.py:

  1. 在夸克根目录创建批次文件夹(格式:YYYY-MM-DD_HHMM_<label>)
  2. 批量转存所有分享 URL 到该文件夹
  3. 列出文件夹内所有项目
  4. 为每个顶层项目生成分享链接:
    • url_type=2(加密)
    • expired_type=1(永久)
    • 随机提取码
  5. 输出 JSON:batch_share_results.json

3) 复制推广文件到每个资源文件夹内部 🆕

使用 scripts/copy_promo_to_folders.py:

  • 从夸克网盘的 temp/要共享的文件 文件夹读取推广文件
  • 复制到每个转存的资源文件夹内部(不是批次文件夹)

重要:推广文件会被复制到每个资源文件夹里面,这样分享出去的每个文件夹都包含推广文件。

前提条件:

  • 需要提前在夸克网盘创建 temp/要共享的文件 文件夹
  • 上传推广文件到该文件夹

推广文件清单:

  • 必看免责声明_及加入资源分享群_及_副业_0_成本赚钱教程_资源网站doc_869hr_uk.txt
  • 1_解压密码869hr_uk_移动端双击这里.html
  • 0_双击获取解压密码_Mac系统双击这里.webloc
  • 0_双击获取解压密码_windows系统双击这里.url

4) 自动归类到 mswnlz 仓库

使用 scripts/mswnlz_publish.py:

  1. 读取本地 scripts/config/repo_descriptions.json 获取各内容目录描述
  2. 根据标题关键词分层归类(v1.4.4):
    • 第一关 视频/影视类:命中分辨率(4K/超清/蓝光/1080P)、影视短语(电影/纪录片/电视剧)、集数标识(全X集/第X集)、视频后缀 → movies
    • 第二关 书籍类:书/书单/新书/电子书/杂志、X册/X本 → book(不再用"合集"归书)
    • 第三关 回退匹配:前两关未命中时,根据仓库 description 关键词模糊评分
  3. 使用本地内容目录(MSWNLZ_ROOT 下,GitHub 克隆已废弃)
  4. 追加到 <YYYYMM>.md,只写资源源数据,不生成网站页面结构:
    [{标题}]({分享链接})
    
  5. 更新 README.md 月份索引(保持倒序)
  6. 本地 Git commit,并将已校验源码树备份到 Gitee 私有仓库(不镜像旧 GitHub 历史)
  7. 发送统一的 Telegram 群组通知(多仓库更新只发一条汇总消息)

4.5) 站点设计与 SEO 合同

资源站点已按 taste-skill:design-taste-frontend 重构为“信任优先、检索优先、归档保留”的中文资源目录:

  • 分类首页由 VitePress 构建期 catalog 生成目录,支持搜索、月份、平台和排序筛选
  • 每条资源有独立站内详情页 /r/{id}:由站点 scripts/build-resource-pages.js 在构建期生成,标题为真实资源名(不是 URL / 水印),含资源信息、适用人群、同类推荐与网盘入口
  • 月份页仍是 /category/YYYYMM 归档 URL,不删除旧路径;资源 < 3 条的薄月份页 noindex 且不进 sitemap
  • 站点提供 docs/public/llms.txt 作为 GEO 入口;网盘外链统一 nofollow
  • 发布脚本不得写入 docs/public/{category}/*.md
  • 发布脚本不得生成 <ResourceTabs :months>、分类首页、广告容器或页面布局代码
  • 新资源只提交到对应内容目录的 YYYYMM.md,部署脚本会复制内容目录并重新生成 catalog 与详情页
  • 站点校验链:npm test(源码契约)→ npm run build(含 prebuild 生成 catalog + 详情页)→ npm run validate(catalog/sitemap/nofollow/JSON-LD 产物校验)

5) 构建并部署站点(Cloudflare Pages)

使用 scripts/deploy_cloudflare_pages.sh(trigger_site_rebuild.sh 为兼容入口):

  1. 定位站点仓库(可用 MSWNLZ_SITE_REPO 覆盖)
  2. 幂等建立 content-source/ 软链(本地 11 个内容目录 + duanku-guides)
  3. 执行 copy_content → sync-tabs → build:guides → npm run build → npm run validate
  4. wrangler pages deploy docs/.vitepress/dist --project-name=doc869hr --branch=main(首次需 wrangler login)
  5. 部署成功后向频道 @dabaziyuan 发送上线通知(SKIP_NOTIFY=1 跳过)

6) 返回结果

返回给用户:

7) 生成夸克群组消息 🆕

在 mswnlz_publish.py 执行后:

  1. 自动生成格式化的消息
  2. 保存到 quark_group_message.txt
  3. 控制台输出,方便复制

消息格式:

📦 资源更新通知

📚 书籍资料
------------------------------
• 2026.3.3小说合集推荐
  🔗 https://pan.quark.cn/s/xxx?pwd=xxx

========================================
🌐 资料总站:https://doc.869hr.uk
📂 批次文件夹:2026-03-14_1700_短裤哥批次
📊 共 1 项资源

使用方式:

  1. 脚本运行完成后,复制消息内容
  2. 打开夸克 APP → 群组(2122364648、2026346189)
  3. 粘贴发送

Telegram 通知机制

频道通知(@dabaziyuan)

  • 部署脚本在 Cloudflare Pages 上线成功后发送站点更新通知
  • token 优先从 TELEGRAM_BOT_TOKEN 环境变量读取;未设置时由 notify_telegram.py 从 ~/.config/wlzh/telegram.env 读取本机共享 Secret,不在 Git 跟踪文件中保存 Token

群组通知(tgmShare 话题5、tgmShareAI 话题2、群组4)

  • 批量更新只发一条汇总消息
  • 格式与频道风格对齐:📦 新增资源推送 + 资源名称 + 夸克链接 + 更新仓库 + 查看详情 + 资料总站 + 资料频道
  • 由 Skills 脚本统一发送,避免刷屏

夸克群组消息 🆕

  • 手动复制发送(夸克无公开 API)
  • 群号:2122364648、2026346189
  • 格式:资源名称 + 链接 + 资料总站
  • 自动生成并保存到 quark_group_message.txt

脚本说明

scripts/quark_batch_run.py

夸克批量转存 + 生成分享链接。

python scripts/quark_batch_run.py \
  --label "短裤哥批次" \
  --month 202603 \
  --items-json items.json \
  --out-json batch_share_results.json

依赖:

  • QuarkPanTool 环境(.venv)
  • 夸克 Cookie(config/cookies.txt)

scripts/copy_promo_to_folders.py 🆕

复制推广文件到每个资源文件夹内部。

python scripts/copy_promo_to_folders.py \
  --batch-json batch_share_results.json

工作原理:

  1. 读取 batch_share_results.json 中的 share_results
  2. 对于每个分享结果,检查其 fid 是否是文件夹
  3. 如果是文件夹,复制推广文件到文件夹内部

注意:推广文件会被复制到每个资源文件夹里面,这样每个分享的文件夹都包含推广文件。

scripts/quark_copy.py (已废弃)

此脚本已被 copy_promo_to_folders.py 替代。

scripts/cleanup_junk_files.py 🆕 v2.0.0

垃圾文件清理脚本:扫描批次文件夹下所有子文件夹,删除原分享者植入的推广/广告文件。

python scripts/cleanup_junk_files.py \
  --batch-json batch_share_results.json \
  --junk-config config/junk_files.json \
  --baidu-batch-path /短裤哥批次/2026-07-15_0816_短裤哥批次

参数:

  • --batch-json: batch_share_results.json 路径
  • --junk-config: junk_files.json 配置路径
  • --quark-parent-fid: 夸克批次文件夹的父目录 FID(默认 0=根目录)
  • --baidu-batch-path: 百度批次文件夹路径

工作原理:

  1. 加载垃圾文件名列表(支持子串匹配)
  2. 连接夸克/百度/阿里云客户端
  3. 遍历批次文件夹下所有子文件夹
  4. 删除匹配名单的垃圾文件
  5. 不重新生成分享链接(夸克分享链接动态反映文件夹内容)

配置文件 config/junk_files.json:

{
  "files": [
    "🌹更多资源共享群🌹.jpg",
    "影视ju风小程序剪辑课截图.jpg",
    ...
  ]
}

随时可追加新的垃圾文件名,pipeline 运行时自动读取最新配置。

scripts/mswnlz_publish.py

发布到本地内容目录 + 构建/部署 Cloudflare Pages + 发送 Telegram 群组通知。

python scripts/mswnlz_publish.py \
  --month 202603 \
  --batch-json batch_share_results.json

支持 --dry-run 参数(测试时跳过推送):

python scripts/mswnlz_publish.py \
  --month 202603 \
  --batch-json batch_share_results.json \
  --dry-run

依赖:

  • 本地内容目录(MSWNLZ_ROOT,默认 mswnlz-github/)
  • 站点部署依赖 wrangler 已登录(npx wrangler login)

scripts/pipeline_orchestrator.py 🆕

统一编排器:自动识别 Quark/Baidu 链接,分流处理、合并结果后统一发布。

# 完整发布
python scripts/pipeline_orchestrator.py \
  --items-json items.json \
  --label "短裤哥批次"

# 测试(只跑转存+分享+合并,不发布)
python scripts/pipeline_orchestrator.py \
  --items-json items.json \
  --label "短裤哥批次" \
  --dry-run

items.json 新增格式(支持多链接):

{
  "title": "樊登讲书2026年合集【全网最新】",
  "urls": [
    "https://pan.quark.cn/s/7f6be305d850",
    "https://pan.baidu.com/s/1YHBDynfOKAkxpEjQzDq0Gg?pwd=L6kA"
  ]
}

旧格式 url 仍兼容:

{
  "title": "泰坦尼克号",
  "url": "https://pan.quark.cn/s/c2bf2c29b114"
}

依赖:

  • 所有 Quark A段 依赖
  • 所有 Baidu A段 依赖
  • url_router.py(本仓库)
  • QuarkPanTool 需放在与 skills/ 同级的目录下

scripts/url_router.py 🆕

自动检测链接来源(quark.cn / pan.baidu.com)。

scripts/baidu_batch_run.py 🆕(位于 QuarkPanTool 仓库)

百度网盘 A段:批量转存 + 加密永久分享 + 推广文件复制。详见 QuarkPanTool 下的 Baidu 模块。

新机器安装指南

1. 克隆仓库

# skills 仓库(发布脚本)
git clone git@github.com:wlzh/skills.git

# QuarkPanTool(转存脚本,用 gxjda 的 fork,含百度支持)
git clone git@github.com:gxjda/QuarkPanTool.git
cd QuarkPanTool
git checkout feat/baidu-support

两个仓库需放在同一父目录下:

/你的工作目录/
├── QuarkPanTool/         # 转存脚本(含百度支持)
└── skills/               # 发布脚本
    └── quark-mswnlz-publisher/
        └── scripts/

2. 安装依赖

百度网盘(BaiduPCS-Go):

# 下载 BaiduPCS-Go v4.0.1+
# https://github.com/qjfoidnh/BaiduPCS-Go/releases
# macOS ARM64 版本:
wget https://github.com/qjfoidnh/BaiduPCS-Go/releases/download/v4.0.1/BaiduPCS-Go-v4.0.1-darwin-arm64.zip
unzip BaiduPCS-Go-v4.0.1-darwin-arm64.zip
# 放到 PATH 下
chmod +x /path/to/BaiduPCS-Go
# 登录
BaiduPCS-Go login -bduss=你的BDUSS -stoken=你的STOKEN

夸克网盘(QuarkPanTool 虚拟环境):

cd QuarkPanTool
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

3. 配置凭证

文件用途位置
config/baidu_auth.jsonBDUSS/STOKEN(百度盘)QuarkPanTool/config/
config/cookies.txtQuark Cookie(夸克盘)QuarkPanTool/config/
~/.mp-publisher/config.jsonTG Bot Token / 群组配置(来自 mp-article-publisher)

4. 上传推广文件

夸克盘:上传到 temp/要共享的文件 目录(QuarkPanTool 默认创建)。 百度盘:上传到 /推广文件/ 目录,文件清单同夸克。

脚本说明

⚠️ 多账号踩坑记录

多账号轮换机制下,每个夸克账号是完全独立的网盘空间。以下是实际踩过的坑:

坑1:cleanup 只清理当前账号(v2.3.0 已修复)

现象:转存时轮换到账号2,但 cleanup 只用 QuarkPanFileManager() 默认构造(读 cookies.txt),账号2里的垃圾文件永远不会被清理。

根因:cleanup_junk_files.py 没有遍历多个 cookie 文件。

修复:v2.3.0 开始自动扫描 config/cookies*.txt 全部 cookie 文件,每个账号独立登录+递归清理。

坑2:cleanup 不递归(v2.3.0 已修复)

现象:转存的资源文件夹里嵌套了子文件夹(如 资源文件夹/更多资源收藏不迷路/),cleanup 只扫了第一级,深层垃圾没删到。

修复:v2.3.0 默认递归 6 层(--max-depth 可调)。

坑3:同一批资源被转存两遍

现象:因为两个 cookie 各自创建了批次文件夹(时间戳不同),同一批 items.json 被两个账号各转存了一份。

说明:这本身是多账号轮换的设计预期(分摊转存压力),但如果同一批 items 被完整跑了两遍,说明 pipeline_orchestrator 被重复调用了。务必确保同一批 items.json 只跑一次 pipeline。如果确实重复了,已发出的链接不删除(避免链接失效),后续注意不要重复执行。

多账号最佳实践

  1. 同一批 items.json 只跑一次 pipeline_orchestrator.py
  2. 运行完检查 batch_share_results.json 中的 quark_account 字段,确认使用的是哪个账号
  3. cleanup 会自动遍历所有账号,无需手动指定
  4. 如需手动清理某个账号:直接修改 config/cookies.txt 为目标账号的 cookie,然后运行 cleanup
  5. 新增 cookie 文件时(如 cookies_3.txt),cleanup 会自动发现并遍历

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

音频关键字过滤工具 - 根据关键字配置自动识别并删除音频中的指定内容

日本語の概要は準備中です。原文の説明を表示しています。

wlzh/skills6832026年10月11日 更新

🔥 用 Gordon Ramsay 风格毒舌吐槽代码质量,生成搞笑且实用的代码审查报告

日本語の概要は準備中です。原文の説明を表示しています。

wlzh/skills6832026年10月11日 更新

通用图片生成 Skill,支持多种 AI 模型(ModelScope、Gemini、RunningHub 等),可被其他 Skills 调用

日本語の概要は準備中です。原文の説明を表示しています。

wlzh/skills6832026年10月11日 更新

文本转语音工具 - 默认 MiniMax TTS,支持切换 Edge TTS 和 Kokoro TTS (v1.1-zh)

日本語の概要は準備中です。原文の説明を表示しています。

wlzh/skills6832026年10月11日 更新

视频变声处理工具 - 从视频提取音频,调用 voice-changer skill 变声后合并回视频。用户要求视频变声、给视频换声音、视频音色转换或处理视频音频时使用。

日本語の概要は準備中です。原文の説明を表示しています。

wlzh/skills6832026年10月11日 更新

音频变声处理工具 - 使用 RVC AI 模型进行真实的声音转换,支持视频直接输入

日本語の概要は準備中です。原文の説明を表示しています。

wlzh/skills6832026年10月11日 更新

wlzh のスキルをすべて見る

このスキルの問題を報告する