CHANGELOG · wechat-draft-push
技能更新跟踪记录。每次修改脚本 / 说明后在此追加一条,便于回溯与双人复核。
约定格式:## [版本] YYYY-MM-DD — 概要(版本号自定,如 v1.0 / v1.1)。
[v1.1] 2026-07-29 — 安全与健壮性全面优化(🔴🟡🟢 全做)
相对 v1.0(「全做」任务之前那版)的逐项变更:
🔴 必修(安全 / 可用性)
- 技能开关:SKILL.md
disable: true→disable: false,技能正式生效、可被自动加载。 - SSL 安全:删除全局
ssl.CERT_NONE;默认ssl.create_default_context()启用证书校验,仅--insecure作为本地沙箱兜底。 - 正文图接口:所有图原走
material/add_material(永久素材,反复推稿占额度)→ 正文图改走media/uploadimg(临时素材,不占永久额度),仅封面走永久素材。
🟡 健壮性 / 体验
- Token 缓存:原每次重新取 token → 缓存
~/.cache/wechat_token.json(带过期,7200s 内复用),--force-token强刷。 - 图片缓存:原改 N 次传 N 次 →
~/.cache/wechat_img_cache.json按路径缓存 url/media_id,重推跳过已传图。 - 摘要提取:原取首个
<p>(可能抓到图注/空段)→extract_digest()抽纯文本、跳过<img>/<style>,取首段有意义文字。 - 友好报错:新增
ERRCODES字典,覆盖40001/40164/45009/48001/47001/45064/42001等常见码,给中文提示+处置建议。 - 留言开关:原
need_open_comment写死 1 → 新增--no-comment由用户决定。 - 封面指定:新增
--thumb显式指定封面(SKILL 提醒用方图)。 - CSS 清洗:
sanitize_css()增强,新增剔除backdrop-filter/filter/z-index/@media,linear/radial-gradient转末位色。
🟢 进阶(新增能力)
--list:列出草稿箱(draft/batchget,显示标题/时间/media_id)。--publish <media_id>:一键群发(freepublish/submit异步);SKILL 补订阅号日 1 条 / 服务号月 4 条频率限制。- 文档修正:SKILL 中"用 pandoc 提取"改为"本环境 pandoc 不可用,用解包脚本/Python 提取"。
保持不变
draft/update兜底(更新失败→新建+删旧,保证后台只一份)。- 微信 CSS 铁律(
sanitize_css核心思路)。 - 前置条件:认证号 +
WECHAT_APPID/SECRET环境变量 + IP 白名单。
验证
py_compile语法通过;默认 SSL 探测微信回invalid appid(证书校验通过、链路通)。- 真实
--list调用被40164拦截:沙箱出口 IP 漂移为117.136.38.121(7/27 为223.104.38.82),需把新 IP 加进白名单。
[v1.0] 2026-07-27 — 初始沉淀(通用版,含 WAIC 文章实战)
- 从写死的
push_to_wechat.py重写为通用wechat_push.py:吃任意 HTML + 图片目录,自动上传图、清洗 CSS、推草稿。 - 支持
新建 / --update 覆盖更新(失败自动新建+删旧兜底)/ --delete 删草稿。 - 修复渐变徽章白字隐形隐患(纯色块替代)。
- 微信安全版文章
waic_wechat.html推入草稿箱成功(正文图走永久素材,占额度 —— v1.1 修正)。 - IP 白名单初配
223.104.38.82。