Not in the top 1,000 by GitHub stars

jiji262/wechat-publisher

微信公众号文章自动创作与发布工具 - WeChat Official Account article auto-creation and publishing tool

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

SKILL.md

Week of Nov 2, 2026 · +299 / −251 lines

Before Not checked yet → After Network or broad shell

84754be2e2df → 24358951c467

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

This preview is limited. See the complete change on GitHub.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 84754be2e2df

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 24358951c467410df34a822fdab19a80005841ce

291GitHub stars
4stars in 7 days
1skill in this repository
2commits in 30 days

Heat

5.6
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Nov 6, 2026291

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

wechat-publisher

When your agent uses it

微信公众号文章自动创作与发布工具。给定参考文章、文字或文档,自动搜索整理全网相关信息,使用项目内置 generate_image 生图入口生成手绘风格配图,生成图文并茂的公众号文章,并发布到微信公众号草稿箱。特别强调去 AI 味(反 AI 味写作),读起来像本人写的。 触发场景(只要沾边就该使用本skill): - 用户提到"公众号"、"微信文章"、"推文"、"公号"、"发文"、"mp"等关键词 - 用户要求写文章并发布到微信 - 用户提供参考素材并希望生成公众号内容 - 用户希望把文档/笔记转为微信公众号文章 - 用户要求搜索某个话题并写成公众号文章 - 用户提到"草稿箱"、"群发"等微信公众号相关操作 - 用户要求写一篇适合在微信上传播的文章

What it loads into context

Frontmatter

236 tokens

Always available to the agent

SKILL.md

13,288 tokens

When the skill is activated

Reference documents

36,275 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. 账号与人格
  2. 前置条件检查
  3. 完整工作流程(7 个阶段,第 7 阶段为可选)
  4. 贴图模式(newspic / 图片消息,与文章模式并列)
  5. 文件组织约定
  6. 脚本说明
  7. 错误处理
  8. 注意事项

Scripts executed separately

  • scripts/ai_score.py
  • scripts/api.py
  • scripts/article_meta.py
  • scripts/baoyu_danger_gemini_web/gemini-webapi/client.ts
  • scripts/baoyu_danger_gemini_web/gemini-webapi/components/gem-mixin.ts
  • scripts/baoyu_danger_gemini_web/gemini-webapi/components/index.ts
  • scripts/baoyu_danger_gemini_web/gemini-webapi/constants.ts
  • scripts/baoyu_danger_gemini_web/gemini-webapi/exceptions.ts
  • scripts/baoyu_danger_gemini_web/gemini-webapi/index.ts
  • scripts/baoyu_danger_gemini_web/gemini-webapi/types/candidate.ts
  • scripts/baoyu_danger_gemini_web/gemini-webapi/types/gem.ts
  • scripts/baoyu_danger_gemini_web/gemini-webapi/types/grpc.ts
  • scripts/baoyu_danger_gemini_web/gemini-webapi/types/image.ts
  • scripts/baoyu_danger_gemini_web/gemini-webapi/types/index.ts
  • scripts/baoyu_danger_gemini_web/gemini-webapi/types/modeloutput.ts
  • scripts/baoyu_danger_gemini_web/gemini-webapi/utils/cookie-file.ts
  • scripts/baoyu_danger_gemini_web/gemini-webapi/utils/decorators.ts
  • scripts/baoyu_danger_gemini_web/gemini-webapi/utils/get-access-token.ts
  • scripts/baoyu_danger_gemini_web/gemini-webapi/utils/http.ts
  • scripts/baoyu_danger_gemini_web/gemini-webapi/utils/index.ts
  • scripts/baoyu_danger_gemini_web/gemini-webapi/utils/load-browser-cookies.ts
  • scripts/baoyu_danger_gemini_web/gemini-webapi/utils/logger.ts
  • scripts/baoyu_danger_gemini_web/gemini-webapi/utils/parsing.ts
  • scripts/baoyu_danger_gemini_web/gemini-webapi/utils/paths.ts
  • scripts/baoyu_danger_gemini_web/gemini-webapi/utils/rotate-1psidts.ts
  • scripts/baoyu_danger_gemini_web/gemini-webapi/utils/upload-file.ts
  • scripts/baoyu_danger_gemini_web/main.ts
  • scripts/baoyu_image_gen.ts
  • scripts/baoyu_image_gen_core.ts
  • scripts/config.py
  • scripts/fidelity_check.py
  • scripts/fingerprint.py
  • scripts/fingerprint_render.py
  • scripts/generate_image.py
  • scripts/html_converter.py
  • scripts/humanize_log.py
  • scripts/image_handler.py
  • scripts/multi_publish.py
  • scripts/newspic_build.py
  • scripts/publish.py
  • scripts/source_check.py
  • scripts/sync_pages.sh
  • scripts/toutiao_cdp.ts
  • scripts/toutiao_cdp_client.ts
  • scripts/toutiao_inline.py
  • scripts/toutiao_publish.py
  • scripts/toutiao_render.py
  • scripts/wechat_api.py
  • scripts/wechat_token.py
  • scripts/zh_chars.py
  • scripts/zh_finders.py
  • scripts/zh_markers.py
  • scripts/zh_rules.py
  • scripts/zh_sources.py
  • scripts/zh_tells.py
  • scripts/zh_text.py
  • tests/__init__.py
  • tests/conftest.py
  • tests/test_ai_score.py
  • tests/test_config.py
  • tests/test_config_integration.py
  • tests/test_fidelity_check.py
  • tests/test_fingerprint.py
  • tests/test_fix2_gates.py
  • tests/test_fix2_rules.py
  • tests/test_html_converter.py
  • tests/test_humanize_log.py
  • tests/test_instruction_guard.py
  • tests/test_publish_gate.py
  • tests/test_publish_gate_paths.py
  • tests/test_publish_platform_dispatch.py
  • tests/test_review_fixes.py
  • tests/test_toutiao_config.py
  • tests/test_toutiao_publish.py
  • tests/test_toutiao_render.py
  • tests/test_zh_tells.py

Files

  • .gitignoreasset570 bytes
  • README.mddoc7,043 bytes
  • SKILL.mdcore44,334 bytes
  • SKILL.mdcore44,334 bytes
  • SKILL.mdcore44,334 bytes
  • SKILL.mdcore44,334 bytes
  • SKILL.mdcore44,334 bytes
  • SKILL.mdcore44,334 bytes
  • SKILL.mdcore44,334 bytes
  • SKILL.mdcore44,334 bytes
  • SKILL.mdcore44,334 bytes
  • SKILL.mdcore44,334 bytes
  • SKILL.mdcore44,334 bytes
  • SKILL.mdcore44,334 bytes
  • SKILL.mdcore44,334 bytes
  • SKILL.mdcore44,334 bytes
  • SKILL.mdcore44,334 bytes
  • SKILL.mdcore44,334 bytes
  • SKILL.mdcore44,334 bytes
  • SKILL.mdcore44,334 bytes
  • assets/image-styles/README.mddoc30,207 bytes
  • assets/image-styles/blue.jsonasset3,090 bytes
  • assets/image-styles/data-chart.jsonasset2,435 bytes
  • assets/image-styles/flat-editorial.jsonasset5,061 bytes
  • assets/image-styles/hand-drawn-blue.jsonasset2,332 bytes
  • assets/image-styles/illustrated-warm.jsonasset3,364 bytes
  • assets/image-styles/infographic-blue.jsonasset5,373 bytes
  • assets/image-styles/infographic-dark.jsonasset5,502 bytes
  • assets/image-styles/infographic-mint.jsonasset5,375 bytes
  • assets/image-styles/infographic-warm.jsonasset5,567 bytes
  • assets/image-styles/knowledge-card.jsonasset2,318 bytes
  • assets/image-styles/magazine-editorial.jsonasset2,349 bytes
  • assets/image-styles/marker-coral.jsonasset6,686 bytes
  • assets/image-styles/marker-lime.jsonasset6,875 bytes
  • assets/image-styles/marker-pink.jsonasset6,707 bytes
  • assets/image-styles/marker-sky.jsonasset6,679 bytes
  • assets/image-styles/marker-violet.jsonasset6,684 bytes
  • assets/image-styles/meme-illustration.jsonasset2,307 bytes
  • assets/image-styles/mint.jsonasset3,201 bytes
  • assets/image-styles/morandi.jsonasset3,489 bytes
  • assets/image-styles/previews/blue.webpasset106,520 bytes
  • assets/image-styles/previews/data-chart.webpasset16,820 bytes
  • assets/image-styles/previews/flat-editorial.webpasset112,320 bytes
  • assets/image-styles/previews/hand-drawn-blue.webpasset18,366 bytes
  • assets/image-styles/previews/illustrated-warm.webpasset31,938 bytes
  • assets/image-styles/previews/infographic-blue.webpasset164,252 bytes
  • assets/image-styles/previews/infographic-dark.webpasset145,492 bytes
  • assets/image-styles/previews/infographic-mint.webpasset153,826 bytes
  • assets/image-styles/previews/infographic-warm.webpasset166,430 bytes
  • assets/image-styles/previews/knowledge-card.webpasset22,916 bytes
  • assets/image-styles/previews/magazine-editorial.webpasset14,334 bytes
  • assets/image-styles/previews/marker-coral.webpasset42,156 bytes
  • assets/image-styles/previews/marker-lime-template.webpasset35,072 bytes
  • assets/image-styles/previews/marker-lime.webpasset40,284 bytes
  • assets/image-styles/previews/marker-pink.webpasset38,406 bytes
  • assets/image-styles/previews/marker-sky.webpasset49,026 bytes
  • assets/image-styles/previews/marker-violet.webpasset43,848 bytes
  • assets/image-styles/previews/meme-illustration.webpasset36,394 bytes
  • assets/image-styles/previews/mint.webpasset98,016 bytes
  • assets/image-styles/previews/morandi.webpasset83,980 bytes
  • assets/image-styles/previews/slice-of-life.webpasset47,400 bytes
  • assets/image-styles/previews/warm-handdrawn.webpasset80,890 bytes
  • assets/image-styles/previews/xiaohongshu-colorful.webpasset24,862 bytes
  • assets/image-styles/slice-of-life.jsonasset5,059 bytes
  • assets/image-styles/warm-handdrawn.jsonasset4,505 bytes
  • assets/image-styles/xiaohongshu-colorful.jsonasset2,335 bytes
  • assets/theme-previews/README.mddoc1,697 bytes
  • assets/theme-previews/academic-paper.htmlasset13,779 bytes
  • assets/theme-previews/business-navy.htmlasset13,959 bytes
  • assets/theme-previews/elegant-ink.htmlasset13,312 bytes
  • assets/theme-previews/girly-pink.htmlasset13,471 bytes
  • assets/theme-previews/index.htmlasset27,241 bytes
  • assets/theme-previews/ink-wash.htmlasset13,846 bytes
  • assets/theme-previews/magazine-grid.htmlasset13,331 bytes
  • assets/theme-previews/minimal-bw.htmlasset13,921 bytes
  • assets/theme-previews/minimal-mono.htmlasset13,030 bytes
  • assets/theme-previews/mint-fresh.htmlasset14,379 bytes
  • assets/theme-previews/news-bold.htmlasset13,611 bytes
  • assets/theme-previews/refined-blue.htmlasset15,470 bytes
  • assets/theme-previews/sage-premium.htmlasset13,907 bytes
  • assets/theme-previews/sample.mddoc2,696 bytes
  • assets/theme-previews/screenshots/ink-wash.webpasset28,476 bytes
  • assets/theme-previews/screenshots/minimal-mono.webpasset35,600 bytes
  • assets/theme-previews/screenshots/news-bold.webpasset33,232 bytes
  • assets/theme-previews/screenshots/refined-blue.webpasset35,088 bytes
  • assets/theme-previews/screenshots/theme-overview.webpasset235,348 bytes
  • assets/theme-previews/sunset-coral.htmlasset15,143 bytes
  • assets/theme-previews/warm-editorial.htmlasset13,110 bytes
  • assets/theme-previews/warm-orange.htmlasset12,571 bytes
  • assets/themes/academic-paper.jsonasset5,330 bytes
  • assets/themes/business-navy.jsonasset5,358 bytes
  • assets/themes/elegant-ink.jsonasset5,222 bytes
  • assets/themes/girly-pink.jsonasset5,387 bytes
  • assets/themes/ink-wash.jsonasset5,268 bytes
  • assets/themes/magazine-grid.jsonasset5,203 bytes
  • assets/themes/minimal-bw.jsonasset5,294 bytes
  • assets/themes/minimal-mono.jsonasset5,089 bytes
  • assets/themes/mint-fresh.jsonasset5,432 bytes
  • assets/themes/news-bold.jsonasset5,254 bytes
  • assets/themes/refined-blue.jsonasset5,753 bytes
  • assets/themes/sage-premium.jsonasset5,466 bytes
  • assets/themes/sunset-coral.jsonasset5,634 bytes
  • assets/themes/warm-editorial.jsonasset5,065 bytes
  • assets/themes/warm-orange.jsonasset5,127 bytes
  • assets/typeset-card/template.htmlasset3,937 bytes
  • brief.md.exampleasset2,673 bytes
  • docs/.nojekyllasset0 bytes
  • docs/academic-paper.htmlasset13,779 bytes
  • docs/business-navy.htmlasset13,959 bytes
  • docs/elegant-ink.htmlasset13,312 bytes
  • docs/girly-pink.htmlasset13,471 bytes
  • docs/index.htmlasset27,241 bytes
  • docs/ink-wash.htmlasset13,846 bytes
  • docs/magazine-grid.htmlasset13,331 bytes
  • docs/minimal-bw.htmlasset13,921 bytes
  • docs/minimal-mono.htmlasset13,030 bytes
  • docs/mint-fresh.htmlasset14,379 bytes
  • docs/news-bold.htmlasset13,611 bytes
  • docs/refined-blue.htmlasset15,470 bytes
  • docs/sage-premium.htmlasset13,907 bytes
  • docs/screenshots/ink-wash.webpasset28,476 bytes
  • docs/screenshots/minimal-mono.webpasset35,600 bytes
  • docs/screenshots/news-bold.webpasset33,232 bytes
  • docs/screenshots/refined-blue.webpasset35,088 bytes
  • docs/screenshots/theme-overview.webpasset235,348 bytes
  • docs/sunset-coral.htmlasset15,143 bytes
  • docs/warm-editorial.htmlasset13,110 bytes
  • docs/warm-orange.htmlasset12,571 bytes
  • generated/README.mddoc850 bytes
  • references/anti-ai-checklist.mddoc17,914 bytes
  • references/api_reference.mddoc3,238 bytes
  • references/article-structures.mddoc4,179 bytes
  • references/image-styles-guide.mddoc3,759 bytes
  • references/multi-platform-sync.mddoc2,518 bytes
  • references/newspic-mode.mddoc7,238 bytes
  • references/themes.mddoc1,842 bytes
  • references/toutiao-publish-research.mddoc21,410 bytes
  • references/typeset-card.mddoc5,358 bytes
  • scripts/_humanizer_lexicon.jsonasset6,667 bytes
  • scripts/ai_score.pyruns27,802 bytes
  • scripts/api.pyruns12,895 bytes
  • scripts/article_meta.pyruns3,018 bytes
  • scripts/baoyu_danger_gemini_web/gemini-webapi/client.tsruns22,343 bytes
  • scripts/baoyu_danger_gemini_web/gemini-webapi/components/gem-mixin.tsruns5,704 bytes
  • scripts/baoyu_danger_gemini_web/gemini-webapi/components/index.tsruns44 bytes
  • scripts/baoyu_danger_gemini_web/gemini-webapi/constants.tsruns3,703 bytes
  • scripts/baoyu_danger_gemini_web/gemini-webapi/exceptions.tsruns1,207 bytes
  • scripts/baoyu_danger_gemini_web/gemini-webapi/index.tsruns273 bytes
  • scripts/baoyu_danger_gemini_web/gemini-webapi/types/candidate.tsruns1,293 bytes
  • scripts/baoyu_danger_gemini_web/gemini-webapi/types/gem.tsruns1,847 bytes
  • scripts/baoyu_danger_gemini_web/gemini-webapi/types/grpc.tsruns369 bytes
  • scripts/baoyu_danger_gemini_web/gemini-webapi/types/image.tsruns3,466 bytes
  • scripts/baoyu_danger_gemini_web/gemini-webapi/types/index.tsruns232 bytes
  • scripts/baoyu_danger_gemini_web/gemini-webapi/types/modeloutput.tsruns816 bytes
  • scripts/baoyu_danger_gemini_web/gemini-webapi/utils/cookie-file.tsruns2,402 bytes
  • scripts/baoyu_danger_gemini_web/gemini-webapi/utils/decorators.tsruns1,100 bytes
  • scripts/baoyu_danger_gemini_web/gemini-webapi/utils/get-access-token.tsruns7,540 bytes
  • scripts/baoyu_danger_gemini_web/gemini-webapi/utils/http.tsruns1,621 bytes
  • scripts/baoyu_danger_gemini_web/gemini-webapi/utils/index.tsruns1,021 bytes
  • scripts/baoyu_danger_gemini_web/gemini-webapi/utils/load-browser-cookies.tsruns9,818 bytes
  • scripts/baoyu_danger_gemini_web/gemini-webapi/utils/logger.tsruns1,193 bytes
  • scripts/baoyu_danger_gemini_web/gemini-webapi/utils/parsing.tsruns1,353 bytes
  • scripts/baoyu_danger_gemini_web/gemini-webapi/utils/paths.tsruns1,656 bytes
  • scripts/baoyu_danger_gemini_web/gemini-webapi/utils/rotate-1psidts.tsruns1,528 bytes
  • scripts/baoyu_danger_gemini_web/gemini-webapi/utils/upload-file.tsruns1,097 bytes
  • scripts/baoyu_danger_gemini_web/main.tsruns15,498 bytes
  • scripts/baoyu_image_gen.tsruns5,656 bytes
  • scripts/baoyu_image_gen_core.tsruns11,765 bytes
  • scripts/config.pyruns12,725 bytes
  • scripts/fidelity_check.pyruns15,508 bytes
  • scripts/fingerprint.pyruns18,649 bytes
  • scripts/fingerprint_render.pyruns1,253 bytes
  • scripts/generate_image.pyruns4,452 bytes
  • scripts/html_converter.pyruns25,373 bytes
  • scripts/humanize_log.pyruns8,670 bytes
  • scripts/image_handler.pyruns19,038 bytes
  • scripts/multi_publish.pyruns13,829 bytes
  • scripts/newspic_build.pyruns15,801 bytes
  • scripts/publish.pyruns44,758 bytes
  • scripts/source_check.pyruns3,812 bytes
  • scripts/sync_pages.shruns994 bytes
  • scripts/toutiao_cdp.tsruns6,815 bytes
  • scripts/toutiao_cdp_client.tsruns9,743 bytes
  • scripts/toutiao_inline.pyruns4,589 bytes
  • scripts/toutiao_publish.pyruns12,405 bytes
  • scripts/toutiao_render.pyruns9,250 bytes
  • scripts/wechat_api.pyruns6,150 bytes
  • scripts/wechat_token.pyruns5,201 bytes
  • scripts/zh_chars.pyruns5,450 bytes
  • scripts/zh_finders.pyruns11,465 bytes
  • scripts/zh_markers.pyruns1,399 bytes
  • scripts/zh_rules.pyruns29,125 bytes
  • scripts/zh_sources.pyruns9,755 bytes
  • scripts/zh_tells.pyruns12,059 bytes
  • scripts/zh_text.pyruns15,299 bytes
  • tech/2026-05-04-ouroboros/images/01.pngasset1,038,371 bytes
  • tech/2026-05-04-ouroboros/images/02.pngasset954,211 bytes
  • tech/2026-05-04-ouroboros/images/03.pngasset910,654 bytes
  • tech/2026-05-04-ouroboros/images/04.pngasset967,160 bytes
  • tech/2026-05-04-ouroboros/images/05.pngasset1,050,459 bytes
  • tech/2026-05-04-ouroboros/images/06.pngasset967,530 bytes
  • tech/2026-05-04-ouroboros/images/07.pngasset1,106,435 bytes
  • tests/__init__.pyruns0 bytes
  • tests/conftest.pyruns4,151 bytes
  • tests/fixtures/claude_tells.mddoc3,342 bytes
  • tests/fixtures/human_public_domain.mddoc2,234 bytes
  • tests/fixtures/rule_cases.jsonasset13,227 bytes
  • tests/test_ai_score.pyruns22,445 bytes
  • tests/test_config.pyruns7,565 bytes
  • tests/test_config_integration.pyruns9,692 bytes
  • tests/test_fidelity_check.pyruns10,173 bytes
  • tests/test_fingerprint.pyruns14,589 bytes
  • tests/test_fix2_gates.pyruns8,766 bytes
  • tests/test_fix2_rules.pyruns8,050 bytes
  • tests/test_html_converter.pyruns12,908 bytes
  • tests/test_humanize_log.pyruns10,374 bytes
  • tests/test_instruction_guard.pyruns4,691 bytes
  • tests/test_publish_gate.pyruns12,485 bytes
  • tests/test_publish_gate_paths.pyruns12,848 bytes
  • tests/test_publish_platform_dispatch.pyruns1,985 bytes
  • tests/test_review_fixes.pyruns8,987 bytes
  • tests/test_toutiao_config.pyruns3,059 bytes
  • tests/test_toutiao_publish.pyruns9,224 bytes
  • tests/test_toutiao_render.pyruns10,306 bytes
  • tests/test_zh_tells.pyruns13,886 bytes
  • wechat-publisher.yaml.exampleasset2,996 bytes

No excerpt is shown for this license. Read the source on GitHub.

View the complete source on GitHub

Skills included

  • wechat-publisher

Repository facts

License
No license detected
Created
Mar 28, 2026
Last pushed
Oct 30, 2026
Forks
62
Open issues
0
Project activity
Active

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 6, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 17 notes
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 532 signals by file

.gitignore

  • Access to secretsline 10
    [Credential-related source omitted]

README.md

  • Network accessline 3
    微信公众号文章自动创作与发布工具:从选题搜索、撰写、AI 配图、排版到发布草稿箱,一条命令搞定。可作为 [Claude Code](https://claude.ai/code) / Codex / Cursor 的 Skill,也可独立命令行调用。
  • Network accessline 17
    作为 Skill 安装(通过 [skills.sh](https://skills.sh)):
  • Network accessline 26
    git clone https://github.com/jiji262/wechat-publisher.git cd wechat-publisher pip install requests pyyaml
  • Network accessline 56
    generator: "baoyu-image-gen"      # 或 baoyu-danger-gemini-web(Web 登录版 Gemini)   gemini_proxy:     base_url: "https://generativelanguage.googleapis.com"
  • Network accessline 57
    [Credential-related source omitted]
  • Network accessline 58
    base_url: "https://generativelanguage.googleapis.com"
  • Access to secretsline 59
    [Credential-related source omitted]
  • Network accessline 66
    在[微信公众平台](https://mp.weixin.qq.com) → 设置与开发 → 基本配置 获取 AppID / AppSecret,并把 `curl ifconfig.me` 得到的公网 IP 加入「IP 白名单」(否则报 `40164`)。验证连接:
  • Network accessline 146
    |---|---| | `ConfigError: 未找到 wechat-publisher.yaml` | 复制 `.example` 并填值 | | `40164` IP 不在白名单 | `curl ifconfig.me` 取 IP,加入公众平台白名单 |
  • Network accessline 147
    | `ConfigError: 未找到 wechat-publisher.yaml` | 复制 `.example` 并填值 | | `40164` IP 不在白名单 | `curl ifconfig.me` 取 IP,加入公众平台白名单 | | `40001` access_token 无效 | 检查 AppID / AppSecret |
  • Network accessline 148
    | `40164` IP 不在白名单 | `curl ifconfig.me` 取 IP,加入公众平台白名单 |
  • Access to secretsline 149
    [Credential-related source omitted]
  • Access to secretsline 158
    [Credential-related source omitted]

SKILL.md

  • Access to secretsline 86
    [Credential-related source omitted]
  • Network accessline 88
    - 报 `40164`:IP 白名单未配(`curl ifconfig.me` 拿公网 IP,去公众平台加白名单)
  • Network accessline 461
    朱雀(https://matrix.tencent.com/ai-detect/)、GPTZero 等只作参考。各平台之间差异很大,规范的人类文本也会被误判,不因某个平台的百分比去重写;只改能指出具体句子和原因的地方。
  • Access to secretsline 616
    [Credential-related source omitted]
  • Network accessline 639
    |---|---|---| | `ConfigError` | `wechat-publisher.yaml` 缺失或账号不存在 / 字段不全 | 检查文件是否存在、default 字段、app_id/app_secret | | `40164 IP 不在白名单` | 机器 IP 未加白名单 | `curl ifconfig.me` 取 IP → 公众平台加白名单 |
  • Network accessline 640
    | `ConfigError` | `wechat-publisher.yaml` 缺失或账号不存在 / 字段不全 | 检查文件是否存在、default 字段、app_id/app_secret | | `40164 IP 不在白名单` | 机器 IP 未加白名单 | `curl ifconfig.me` 取 IP → 公众平台加白名单 | | `40001 access_token 无效` | token 过期或凭证错 | 检查 `wechat-publisher.yaml
  • Network accessline 641
    | `40164 IP 不在白名单` | 机器 IP 未加白名单 | `curl ifconfig.me` 取 IP → 公众平台加白名单 |
  • Access to secretsline 642
    [Credential-related source omitted]
  • Access to secretsline 655
    [Credential-related source omitted]

assets/image-styles/README.md

  • Network accessline 359
    暖橙 / 桃色渐变底 + 卡通人物场景 + 大白气泡 + 手绘装饰。每张卡像一页小漫画,讲一个小故事。 **对标公众号示例文章 [Claude Code /rewind](https://mp.weixin.qq.com/s/erEF74HRGkrBPxTGsKDsSQ)**。视觉有温度、带情绪、有人物在场,适合"给你讲一件事"感觉的内容。
  • Network accessline 360
    **对标公众号示例文章 [Claude Code /rewind](https://mp.weixin.qq.com/s/erEF74HRGkrBPxTGsKDsSQ)**。视觉有温度、带情绪、有人物在场,适合"给你讲一件事"感觉的内容。

assets/image-styles/illustrated-warm.json

  • Network accessline 41
    "article_inline": "Generate a warm illustrated scene in Chinese, 4:3 landscape. Warm peach-to-orange gradient background. Topic: '{image_subject}'. A cute cartoon character illustration in editorial illustration style (not anime, not Corpor
  • Network accessline 42
    },   "example_reference": "https://mp.weixin.qq.com/s/erEF74HRGkrBPxTGsKDsSQ",   "notes": "视觉指纹是'人物 + 场景 + 气泡 + 温度'。如果话题本身是冷的(数据 / 架构 / 协议),换成 hand-drawn-blue 或 data-chart。这个风格的卖点是'有人讲给你听'的感觉 —— 别用在不讲故事的内容上。"
  • Network accessline 43
    "example_reference": "https://mp.weixin.qq.com/s/erEF74HRGkrBPxTGsKDsSQ",

assets/image-styles/infographic-blue.json

  • Network accessline 52
    "article_inline": "Generate a hand-drawn watercolor + ink Chinese infographic illustration, 16:9 landscape. Topic: '{image_subject}'. Make it high-density but readable: clear Chinese title, 3-5 structured information blocks, architecture/fl
  • Network accessline 53
    },   "example_reference": "https://mp.weixin.qq.com/s/nSlGjh9hjM63jxz_jgUCwA",   "notes": "冷调技术变体。适合需要展现理性/技术/商务气质的话题。要点里有具体数字、API 名字、版本号、架构名词时效果最好。共享的是高密度手绘信息图原则,不是固定角色或固定版式。"
  • Network accessline 54
    "example_reference": "https://mp.weixin.qq.com/s/nSlGjh9hjM63jxz_jgUCwA",

assets/image-styles/infographic-dark.json

  • Network accessline 52
    "article_inline": "Generate a hand-drawn watercolor + ink Chinese infographic illustration, 16:9 landscape, dark-mode variant. Topic: '{image_subject}'. Make it high-density but readable: clear Chinese title, 3-5 structured information bloc
  • Network accessline 53
    },   "example_reference": "https://mp.weixin.qq.com/s/nSlGjh9hjM63jxz_jgUCwA",   "notes": "深色变体。适合前沿模型、协议、安全、基建、赛博话题。亮黄+霓虹青的点缀非常抓眼,但不适合生活化/温暖话题。共享的是高密度手绘信息图原则,不是固定角色或固定版式。"
  • Network accessline 54
    "example_reference": "https://mp.weixin.qq.com/s/nSlGjh9hjM63jxz_jgUCwA",

assets/image-styles/infographic-mint.json

  • Network accessline 52
    "article_inline": "Generate a hand-drawn watercolor + ink Chinese infographic illustration, 16:9 landscape. Topic: '{image_subject}'. Make it high-density but readable: clear Chinese title, 3-5 structured information blocks, checklist/steps
  • Network accessline 53
    },   "example_reference": "https://mp.weixin.qq.com/s/nSlGjh9hjM63jxz_jgUCwA",   "notes": "清新变体。适合生产力、工具、方法论、学习笔记类话题。比 infographic-warm 更明快,比 infographic-blue 更柔和。不适合严肃商业分析或赛博话题。共享的是高密度手绘信息图原则,不是固定角色或固定版式。"
  • Network accessline 54
    "example_reference": "https://mp.weixin.qq.com/s/nSlGjh9hjM63jxz_jgUCwA",

assets/image-styles/infographic-warm.json

  • Network accessline 54
    "article_inline": "Generate a hand-drawn watercolor + ink Chinese infographic illustration, 16:9 landscape. Topic: '{image_subject}'. Make it high-density but readable: clear Chinese title, 3-5 structured information blocks, arrows/labels/m
  • Network accessline 55
    },   "example_reference": "https://mp.weixin.qq.com/s/nSlGjh9hjM63jxz_jgUCwA",   "notes": "**贴图模式的默认风格**。4 种 infographic-* 共享的是高密度手绘信息图原则,不是固定角色或固定版式。要点内容越具体,AI 渲染出的信息图越真实(数字、版本号、对比、步骤名都会被渲染成子卡片的文字);如果要点只是一句抽象观点,AI 会编具体内容,不如用 `marker-lime` 
  • Network accessline 56
    "example_reference": "https://mp.weixin.qq.com/s/nSlGjh9hjM63jxz_jgUCwA",

assets/theme-previews/academic-paper.html

  • Network accessline 41
    <p style="text-align: center; color: #1a1a1a; letter-spacing: 14px; font-size: 14px; margin: 42px 0; user-select: none; opacity: 0.35; font-style: italic; font-family: 'Times New Roman', serif;">§  §  §</p> <h2 style="font-size: 18px; font-
  • Network accessline 42
    <h2 style="font-size: 18px; font-weight: 700; color: #1a1a1a; margin: 40px 0 16px; padding: 0; line-height: 1.5; letter-spacing: 0.3px;">结论</h2> <p style="margin: 16px 0; text-indent: 2em; text-align: justify; color: #1a1a1a; line-height: 2
  • Network accessline 43
    <p style="margin: 16px 0; text-indent: 2em; text-align: justify; color: #1a1a1a; line-height: 2.0;">说实话,这种范式转移背后,<a href="https://www.anthropic.com" style="color: #1a1a1a; text-decoration: none; border-bottom: 1px solid #1a1a1a;">官方博客</a>其实

assets/theme-previews/business-navy.html

  • Network accessline 41
    <p style="text-align: center; color: #c9a74a; letter-spacing: 16px; font-size: 12px; margin: 38px 0; user-select: none;">◇  ◇  ◇</p> <h2 style="font-size: 18px; font-weight: 800; color: #0b2445; margin: 40px 0 18px; padding: 2px 0 2px 16px;
  • Network accessline 42
    <h2 style="font-size: 18px; font-weight: 800; color: #0b2445; margin: 40px 0 18px; padding: 2px 0 2px 16px; border-left: 4px solid #c9a74a; line-height: 1.5; letter-spacing: 0.3px;">结论</h2> <p style="margin: 16px 0; text-indent: 0; text-ali
  • Network accessline 43
    <p style="margin: 16px 0; text-indent: 0; text-align: justify; color: #1a233a; line-height: 1.85;">说实话,这种范式转移背后,<a href="https://www.anthropic.com" style="color: #1a4480; text-decoration: none; border-bottom: 1px solid rgba(26,68,128,0.4);"

assets/theme-previews/elegant-ink.html

  • Network accessline 41
    <p style="text-align: center; color: #1a1a1a; letter-spacing: 18px; font-size: 14px; margin: 42px 0; user-select: none; opacity: 0.45;">· · ·</p> <h2 style="font-size: 19px; font-weight: 700; color: #1a1a1a; margin: 40px 0 20px; padding: 4p
  • Network accessline 42
    <h2 style="font-size: 19px; font-weight: 700; color: #1a1a1a; margin: 40px 0 20px; padding: 4px 0 10px 0; border-bottom: 1px solid #1a1a1a; line-height: 1.55; letter-spacing: 1.5px;">结论</h2> <p style="margin: 18px 0; text-indent: 0; text-al
  • Network accessline 43
    <p style="margin: 18px 0; text-indent: 0; text-align: justify; color: #1d1a17; line-height: 2.0;">说实话,这种范式转移背后,<a href="https://www.anthropic.com" style="color: #6a2828; text-decoration: none; border-bottom: 1px solid rgba(106,40,40,0.5);">

assets/theme-previews/girly-pink.html

  • Network accessline 41
    <p style="text-align: center; color: #ff87c2; letter-spacing: 14px; font-size: 14px; margin: 36px 0; user-select: none; opacity: 0.7;">♡ ♡ ♡</p> <h2 style="font-size: 17.5px; font-weight: 800; color: #b83f7a; margin: 38px 0 18px; padding: 8
  • Network accessline 42
    <h2 style="font-size: 17.5px; font-weight: 800; color: #b83f7a; margin: 38px 0 18px; padding: 8px 18px; background: linear-gradient(90deg, #ffe4f0 0%, transparent 100%); border-radius: 16px; line-height: 1.5; letter-spacing: 0.3px; display:
  • Network accessline 43
    <p style="margin: 16px 0; text-indent: 0; text-align: justify; color: #4a2a3e; line-height: 1.9;">说实话,这种范式转移背后,<a href="https://www.anthropic.com" style="color: #b83f7a; text-decoration: none; border-bottom: 1px solid rgba(184,63,122,0.4);"

assets/theme-previews/ink-wash.html

  • Network accessline 41
    <p style="text-align: center; color: #8b2a1f; letter-spacing: 18px; font-size: 14px; margin: 42px 0; user-select: none; opacity: 0.5;">山  水  间</p> <h2 style="font-size: 19px; font-weight: 700; color: #8b2a1f; margin: 40px 0 20px; padding: 0
  • Network accessline 42
    <h2 style="font-size: 19px; font-weight: 700; color: #8b2a1f; margin: 40px 0 20px; padding: 0; line-height: 1.6; letter-spacing: 2px;">结论</h2> <p style="margin: 18px 0; text-indent: 0; text-align: justify; color: #2b2420; line-height: 2.05;
  • Network accessline 43
    <p style="margin: 18px 0; text-indent: 0; text-align: justify; color: #2b2420; line-height: 2.05;">说实话,这种范式转移背后,<a href="https://www.anthropic.com" style="color: #8b2a1f; text-decoration: none; border-bottom: 1px solid rgba(139,42,31,0.5);"

assets/theme-previews/magazine-grid.html

  • Network accessline 41
    <p style="text-align: center; color: #a0330f; letter-spacing: 8px; font-size: 18px; margin: 46px 0; user-select: none; font-style: italic; font-family: Georgia, serif;">·  ·  ·</p> <h2 style="font-size: 12px; font-weight: 700; color: #a0330
  • Network accessline 42
    <h2 style="font-size: 12px; font-weight: 700; color: #a0330f; margin: 44px 0 18px; padding: 0 0 12px 0; border-bottom: 1px solid #a0330f; letter-spacing: 4px; text-transform: uppercase; line-height: 1.4;">结论</h2> <p style="margin: 16px 0; t
  • Network accessline 43
    <p style="margin: 16px 0; text-indent: 0; text-align: justify; color: #1f1a14; line-height: 1.95;">说实话,这种范式转移背后,<a href="https://www.anthropic.com" style="color: #a0330f; text-decoration: none; border-bottom: 1px solid rgba(160,51,15,0.5);"

assets/theme-previews/minimal-bw.html

  • Network accessline 41
    <p style="text-align: center; color: #000000; letter-spacing: 14px; font-size: 10px; margin: 36px 0; user-select: none; opacity: 0.35;">— — —</p> <h2 style="font-size: 12.5px; font-weight: 700; color: #000000; margin: 42px 0 16px; padding: 
  • Network accessline 42
    <h2 style="font-size: 12.5px; font-weight: 700; color: #000000; margin: 42px 0 16px; padding: 18px 0 0 0; border-top: 2px solid #000000; letter-spacing: 3px; text-transform: uppercase; line-height: 1.5;">结论</h2> <p style="margin: 16px 0; te
  • Network accessline 43
    <p style="margin: 16px 0; text-indent: 0; text-align: justify; color: #1a1a1a; line-height: 1.85;">说实话,这种范式转移背后,<a href="https://www.anthropic.com" style="color: #000000; text-decoration: none; border-bottom: 1px solid #000000;">官方博客</a>其实早

assets/theme-previews/minimal-mono.html

  • Network accessline 41
    <p style="text-align: center; color: #000000; letter-spacing: 14px; font-size: 11px; margin: 34px 0; user-select: none; opacity: 0.4; font-family: 'JetBrains Mono', monospace;">/ / /</p> <h2 style="font-size: 17px; font-weight: 800; color: 
  • Network accessline 42
    <h2 style="font-size: 17px; font-weight: 800; color: #000000; margin: 36px 0 16px; padding: 0; line-height: 1.5; letter-spacing: 0.3px;">结论</h2> <p style="margin: 16px 0; text-indent: 0; text-align: justify; color: #1a1a1a; line-height: 1.8
  • Network accessline 43
    <p style="margin: 16px 0; text-indent: 0; text-align: justify; color: #1a1a1a; line-height: 1.85;">说实话,这种范式转移背后,<a href="https://www.anthropic.com" style="color: #000000; text-decoration: none; border-bottom: 1px solid #000000;">官方博客</a>其实早

assets/theme-previews/mint-fresh.html

  • Network accessline 41
    <p style="text-align: center; color: #4fb896; letter-spacing: 14px; font-size: 13px; margin: 36px 0; user-select: none; opacity: 0.6;">✿ ✿ ✿</p> <h2 style="font-size: 17.5px; font-weight: 700; color: #0f5a4a; margin: 38px 0 18px; padding: 8
  • Network accessline 42
    <h2 style="font-size: 17.5px; font-weight: 700; color: #0f5a4a; margin: 38px 0 18px; padding: 8px 14px; background: #e4f3ec; border-radius: 10px; line-height: 1.5; letter-spacing: 0.3px; display: inline-block;">结论</h2> <p style="margin: 16p
  • Network accessline 43
    <p style="margin: 16px 0; text-indent: 0; text-align: justify; color: #1f3a33; line-height: 1.9;">说实话,这种范式转移背后,<a href="https://www.anthropic.com" style="color: #0f5a4a; text-decoration: none; border-bottom: 1px solid rgba(15,90,74,0.4);">官

assets/theme-previews/news-bold.html

  • Network accessline 41
    <p style="text-align: center; color: #d4231c; letter-spacing: 8px; font-size: 13px; margin: 34px 0; user-select: none; font-weight: 800;">/ / NEWS / /</p> <h2 style="font-size: 17px; font-weight: 900; color: #ffffff; margin: 36px 0 16px; pa
  • Network accessline 42
    <h2 style="font-size: 17px; font-weight: 900; color: #ffffff; margin: 36px 0 16px; padding: 8px 14px; background: #1a1a1a; border-left: 6px solid #d4231c; line-height: 1.45; letter-spacing: 0.3px; display: inline-block;">结论</h2> <p style="m
  • Network accessline 43
    <p style="margin: 16px 0; text-indent: 0; text-align: justify; color: #1a1a1a; line-height: 1.85;">说实话,这种范式转移背后,<a href="https://www.anthropic.com" style="color: #d4231c; text-decoration: none; border-bottom: 1px solid #d4231c;">官方博客</a>其实早

assets/theme-previews/refined-blue.html

  • Network accessline 41
    <p style="text-align: center; color: #c7d2fe; letter-spacing: 14px; font-size: 11px; margin: 36px 0; user-select: none;">● ● ●</p> <h2 style="font-size: 18px; font-weight: 700; color: #0b1530; margin: 40px 0 18px; padding: 10px 16px 10px 14
  • Network accessline 42
    <h2 style="font-size: 18px; font-weight: 700; color: #0b1530; margin: 40px 0 18px; padding: 10px 16px 10px 14px; border-left: 4px solid #2e5bff; background: linear-gradient(90deg, #eef2ff 0%, #ffffff 70%); border-radius: 0 6px 6px 0; line-h
  • Network accessline 43
    <p style="margin: 16px 0; text-indent: 0; text-align: justify; color: #242832; line-height: 1.85;">说实话,这种范式转移背后,<a href="https://www.anthropic.com" style="color: #2e5bff; text-decoration: none; border-bottom: 1px solid rgba(46,91,255,0.35);

assets/theme-previews/sage-premium.html

  • Network accessline 41
    <p style="text-align: center; color: #b8c5bb; letter-spacing: 14px; font-size: 12px; margin: 36px 0; user-select: none;">◆  ◆  ◆</p> <h2 style="font-size: 18px; font-weight: 700; color: #1e2a21; margin: 40px 0 18px; padding: 10px 16px 10px 
  • Network accessline 42
    <h2 style="font-size: 18px; font-weight: 700; color: #1e2a21; margin: 40px 0 18px; padding: 10px 16px 10px 14px; border-left: 4px solid #5c7a65; background: linear-gradient(90deg, #e8ede3 0%, transparent 80%); border-radius: 0 4px 4px 0; li
  • Network accessline 43
    <p style="margin: 16px 0; text-indent: 0; text-align: justify; color: #1e2a21; line-height: 1.9;">说实话,这种范式转移背后,<a href="https://www.anthropic.com" style="color: #3a4f3f; text-decoration: none; border-bottom: 1px solid rgba(58,79,63,0.4); pa

assets/theme-previews/sample.md

  • Network accessline 64
    说实话,这种范式转移背后,[官方博客](https://www.anthropic.com)其实早就埋过伏笔。Claude 付费用户,**正在变成另一个物种**。

assets/theme-previews/sunset-coral.html

  • Network accessline 41
    <p style="text-align: center; color: #ff6b4a; letter-spacing: 14px; font-size: 13px; margin: 36px 0; user-select: none; opacity: 0.7;">✦ ✦ ✦</p> <h2 style="font-size: 18px; font-weight: 800; color: #2b1a10; margin: 38px 0 18px; padding: 10p
  • Network accessline 42
    <h2 style="font-size: 18px; font-weight: 800; color: #2b1a10; margin: 38px 0 18px; padding: 10px 14px; background: linear-gradient(90deg, #ffe8dd 0%, #ffe8dd 3px, #fff3eb 3px, transparent 100%); border-radius: 4px; line-height: 1.5; letter-
  • Network accessline 43
    <p style="margin: 16px 0; text-indent: 0; text-align: justify; color: #2b1a10; line-height: 1.85;">说实话,这种范式转移背后,<a href="https://www.anthropic.com" style="color: #c43a1a; text-decoration: none; border-bottom: 1px solid rgba(196,58,26,0.4); 

assets/theme-previews/warm-editorial.html

  • Network accessline 41
    <p style="text-align: center; color: #c9a27d; letter-spacing: 12px; font-size: 14px; margin: 36px 0; user-select: none;">❦  ❦  ❦</p> <h2 style="font-size: 18px; font-weight: 700; color: #5a2f1a; margin: 38px 0 20px; padding: 4px 0 10px 0; b
  • Network accessline 42
    <h2 style="font-size: 18px; font-weight: 700; color: #5a2f1a; margin: 38px 0 20px; padding: 4px 0 10px 0; border-bottom: 2px solid #c9a27d; line-height: 1.5;">结论</h2> <p style="margin: 18px 0; text-indent: 0; text-align: justify; color: #3a
  • Network accessline 43
    <p style="margin: 18px 0; text-indent: 0; text-align: justify; color: #3a2e26; line-height: 1.95;">说实话,这种范式转移背后,<a href="https://www.anthropic.com" style="color: #8b4513; text-decoration: none; border-bottom: 1px solid rgba(139,69,19,0.4);"

assets/theme-previews/warm-orange.html

  • Network accessline 41
    <p style="text-align: center; color: #e58b3a; letter-spacing: 14px; font-size: 13px; margin: 36px 0; user-select: none; opacity: 0.7;">◉ ◉ ◉</p> <h2 style="font-size: 17.5px; font-weight: 800; color: #3a2a1e; margin: 38px 0 18px; padding: 4
  • Network accessline 42
    <h2 style="font-size: 17.5px; font-weight: 800; color: #3a2a1e; margin: 38px 0 18px; padding: 4px 0 4px 14px; border-left: 4px solid #e58b3a; line-height: 1.5; letter-spacing: 0.3px;">结论</h2> <p style="margin: 16px 0; text-indent: 0; text-a
  • Network accessline 43
    <p style="margin: 16px 0; text-indent: 0; text-align: justify; color: #3a2a1e; line-height: 1.9;">说实话,这种范式转移背后,<a href="https://www.anthropic.com" style="color: #b5601c; text-decoration: none; border-bottom: 1px solid rgba(181,96,28,0.4);">

docs/academic-paper.html

  • Network accessline 41
    <p style="text-align: center; color: #1a1a1a; letter-spacing: 14px; font-size: 14px; margin: 42px 0; user-select: none; opacity: 0.35; font-style: italic; font-family: 'Times New Roman', serif;">§  §  §</p> <h2 style="font-size: 18px; font-
  • Network accessline 42
    <h2 style="font-size: 18px; font-weight: 700; color: #1a1a1a; margin: 40px 0 16px; padding: 0; line-height: 1.5; letter-spacing: 0.3px;">结论</h2> <p style="margin: 16px 0; text-indent: 2em; text-align: justify; color: #1a1a1a; line-height: 2
  • Network accessline 43
    <p style="margin: 16px 0; text-indent: 2em; text-align: justify; color: #1a1a1a; line-height: 2.0;">说实话,这种范式转移背后,<a href="https://www.anthropic.com" style="color: #1a1a1a; text-decoration: none; border-bottom: 1px solid #1a1a1a;">官方博客</a>其实

docs/business-navy.html

  • Network accessline 41
    <p style="text-align: center; color: #c9a74a; letter-spacing: 16px; font-size: 12px; margin: 38px 0; user-select: none;">◇  ◇  ◇</p> <h2 style="font-size: 18px; font-weight: 800; color: #0b2445; margin: 40px 0 18px; padding: 2px 0 2px 16px;
  • Network accessline 42
    <h2 style="font-size: 18px; font-weight: 800; color: #0b2445; margin: 40px 0 18px; padding: 2px 0 2px 16px; border-left: 4px solid #c9a74a; line-height: 1.5; letter-spacing: 0.3px;">结论</h2> <p style="margin: 16px 0; text-indent: 0; text-ali
  • Network accessline 43
    <p style="margin: 16px 0; text-indent: 0; text-align: justify; color: #1a233a; line-height: 1.85;">说实话,这种范式转移背后,<a href="https://www.anthropic.com" style="color: #1a4480; text-decoration: none; border-bottom: 1px solid rgba(26,68,128,0.4);"

docs/elegant-ink.html

  • Network accessline 41
    <p style="text-align: center; color: #1a1a1a; letter-spacing: 18px; font-size: 14px; margin: 42px 0; user-select: none; opacity: 0.45;">· · ·</p> <h2 style="font-size: 19px; font-weight: 700; color: #1a1a1a; margin: 40px 0 20px; padding: 4p
  • Network accessline 42
    <h2 style="font-size: 19px; font-weight: 700; color: #1a1a1a; margin: 40px 0 20px; padding: 4px 0 10px 0; border-bottom: 1px solid #1a1a1a; line-height: 1.55; letter-spacing: 1.5px;">结论</h2> <p style="margin: 18px 0; text-indent: 0; text-al
  • Network accessline 43
    <p style="margin: 18px 0; text-indent: 0; text-align: justify; color: #1d1a17; line-height: 2.0;">说实话,这种范式转移背后,<a href="https://www.anthropic.com" style="color: #6a2828; text-decoration: none; border-bottom: 1px solid rgba(106,40,40,0.5);">

docs/girly-pink.html

  • Network accessline 41
    <p style="text-align: center; color: #ff87c2; letter-spacing: 14px; font-size: 14px; margin: 36px 0; user-select: none; opacity: 0.7;">♡ ♡ ♡</p> <h2 style="font-size: 17.5px; font-weight: 800; color: #b83f7a; margin: 38px 0 18px; padding: 8
  • Network accessline 42
    <h2 style="font-size: 17.5px; font-weight: 800; color: #b83f7a; margin: 38px 0 18px; padding: 8px 18px; background: linear-gradient(90deg, #ffe4f0 0%, transparent 100%); border-radius: 16px; line-height: 1.5; letter-spacing: 0.3px; display:
  • Network accessline 43
    <p style="margin: 16px 0; text-indent: 0; text-align: justify; color: #4a2a3e; line-height: 1.9;">说实话,这种范式转移背后,<a href="https://www.anthropic.com" style="color: #b83f7a; text-decoration: none; border-bottom: 1px solid rgba(184,63,122,0.4);"

docs/ink-wash.html

  • Network accessline 41
    <p style="text-align: center; color: #8b2a1f; letter-spacing: 18px; font-size: 14px; margin: 42px 0; user-select: none; opacity: 0.5;">山  水  间</p> <h2 style="font-size: 19px; font-weight: 700; color: #8b2a1f; margin: 40px 0 20px; padding: 0
  • Network accessline 42
    <h2 style="font-size: 19px; font-weight: 700; color: #8b2a1f; margin: 40px 0 20px; padding: 0; line-height: 1.6; letter-spacing: 2px;">结论</h2> <p style="margin: 18px 0; text-indent: 0; text-align: justify; color: #2b2420; line-height: 2.05;
  • Network accessline 43
    <p style="margin: 18px 0; text-indent: 0; text-align: justify; color: #2b2420; line-height: 2.05;">说实话,这种范式转移背后,<a href="https://www.anthropic.com" style="color: #8b2a1f; text-decoration: none; border-bottom: 1px solid rgba(139,42,31,0.5);"

docs/magazine-grid.html

  • Network accessline 41
    <p style="text-align: center; color: #a0330f; letter-spacing: 8px; font-size: 18px; margin: 46px 0; user-select: none; font-style: italic; font-family: Georgia, serif;">·  ·  ·</p> <h2 style="font-size: 12px; font-weight: 700; color: #a0330
  • Network accessline 42
    <h2 style="font-size: 12px; font-weight: 700; color: #a0330f; margin: 44px 0 18px; padding: 0 0 12px 0; border-bottom: 1px solid #a0330f; letter-spacing: 4px; text-transform: uppercase; line-height: 1.4;">结论</h2> <p style="margin: 16px 0; t
  • Network accessline 43
    <p style="margin: 16px 0; text-indent: 0; text-align: justify; color: #1f1a14; line-height: 1.95;">说实话,这种范式转移背后,<a href="https://www.anthropic.com" style="color: #a0330f; text-decoration: none; border-bottom: 1px solid rgba(160,51,15,0.5);"

docs/minimal-bw.html

  • Network accessline 41
    <p style="text-align: center; color: #000000; letter-spacing: 14px; font-size: 10px; margin: 36px 0; user-select: none; opacity: 0.35;">— — —</p> <h2 style="font-size: 12.5px; font-weight: 700; color: #000000; margin: 42px 0 16px; padding: 
  • Network accessline 42
    <h2 style="font-size: 12.5px; font-weight: 700; color: #000000; margin: 42px 0 16px; padding: 18px 0 0 0; border-top: 2px solid #000000; letter-spacing: 3px; text-transform: uppercase; line-height: 1.5;">结论</h2> <p style="margin: 16px 0; te
  • Network accessline 43
    <p style="margin: 16px 0; text-indent: 0; text-align: justify; color: #1a1a1a; line-height: 1.85;">说实话,这种范式转移背后,<a href="https://www.anthropic.com" style="color: #000000; text-decoration: none; border-bottom: 1px solid #000000;">官方博客</a>其实早

docs/minimal-mono.html

  • Network accessline 41
    <p style="text-align: center; color: #000000; letter-spacing: 14px; font-size: 11px; margin: 34px 0; user-select: none; opacity: 0.4; font-family: 'JetBrains Mono', monospace;">/ / /</p> <h2 style="font-size: 17px; font-weight: 800; color: 
  • Network accessline 42
    <h2 style="font-size: 17px; font-weight: 800; color: #000000; margin: 36px 0 16px; padding: 0; line-height: 1.5; letter-spacing: 0.3px;">结论</h2> <p style="margin: 16px 0; text-indent: 0; text-align: justify; color: #1a1a1a; line-height: 1.8
  • Network accessline 43
    <p style="margin: 16px 0; text-indent: 0; text-align: justify; color: #1a1a1a; line-height: 1.85;">说实话,这种范式转移背后,<a href="https://www.anthropic.com" style="color: #000000; text-decoration: none; border-bottom: 1px solid #000000;">官方博客</a>其实早

docs/mint-fresh.html

  • Network accessline 41
    <p style="text-align: center; color: #4fb896; letter-spacing: 14px; font-size: 13px; margin: 36px 0; user-select: none; opacity: 0.6;">✿ ✿ ✿</p> <h2 style="font-size: 17.5px; font-weight: 700; color: #0f5a4a; margin: 38px 0 18px; padding: 8
  • Network accessline 42
    <h2 style="font-size: 17.5px; font-weight: 700; color: #0f5a4a; margin: 38px 0 18px; padding: 8px 14px; background: #e4f3ec; border-radius: 10px; line-height: 1.5; letter-spacing: 0.3px; display: inline-block;">结论</h2> <p style="margin: 16p
  • Network accessline 43
    <p style="margin: 16px 0; text-indent: 0; text-align: justify; color: #1f3a33; line-height: 1.9;">说实话,这种范式转移背后,<a href="https://www.anthropic.com" style="color: #0f5a4a; text-decoration: none; border-bottom: 1px solid rgba(15,90,74,0.4);">官

docs/news-bold.html

  • Network accessline 41
    <p style="text-align: center; color: #d4231c; letter-spacing: 8px; font-size: 13px; margin: 34px 0; user-select: none; font-weight: 800;">/ / NEWS / /</p> <h2 style="font-size: 17px; font-weight: 900; color: #ffffff; margin: 36px 0 16px; pa
  • Network accessline 42
    <h2 style="font-size: 17px; font-weight: 900; color: #ffffff; margin: 36px 0 16px; padding: 8px 14px; background: #1a1a1a; border-left: 6px solid #d4231c; line-height: 1.45; letter-spacing: 0.3px; display: inline-block;">结论</h2> <p style="m
  • Network accessline 43
    <p style="margin: 16px 0; text-indent: 0; text-align: justify; color: #1a1a1a; line-height: 1.85;">说实话,这种范式转移背后,<a href="https://www.anthropic.com" style="color: #d4231c; text-decoration: none; border-bottom: 1px solid #d4231c;">官方博客</a>其实早

docs/refined-blue.html

  • Network accessline 41
    <p style="text-align: center; color: #c7d2fe; letter-spacing: 14px; font-size: 11px; margin: 36px 0; user-select: none;">● ● ●</p> <h2 style="font-size: 18px; font-weight: 700; color: #0b1530; margin: 40px 0 18px; padding: 10px 16px 10px 14
  • Network accessline 42
    <h2 style="font-size: 18px; font-weight: 700; color: #0b1530; margin: 40px 0 18px; padding: 10px 16px 10px 14px; border-left: 4px solid #2e5bff; background: linear-gradient(90deg, #eef2ff 0%, #ffffff 70%); border-radius: 0 6px 6px 0; line-h
  • Network accessline 43
    <p style="margin: 16px 0; text-indent: 0; text-align: justify; color: #242832; line-height: 1.85;">说实话,这种范式转移背后,<a href="https://www.anthropic.com" style="color: #2e5bff; text-decoration: none; border-bottom: 1px solid rgba(46,91,255,0.35);

docs/sage-premium.html

  • Network accessline 41
    <p style="text-align: center; color: #b8c5bb; letter-spacing: 14px; font-size: 12px; margin: 36px 0; user-select: none;">◆  ◆  ◆</p> <h2 style="font-size: 18px; font-weight: 700; color: #1e2a21; margin: 40px 0 18px; padding: 10px 16px 10px 
  • Network accessline 42
    <h2 style="font-size: 18px; font-weight: 700; color: #1e2a21; margin: 40px 0 18px; padding: 10px 16px 10px 14px; border-left: 4px solid #5c7a65; background: linear-gradient(90deg, #e8ede3 0%, transparent 80%); border-radius: 0 4px 4px 0; li
  • Network accessline 43
    <p style="margin: 16px 0; text-indent: 0; text-align: justify; color: #1e2a21; line-height: 1.9;">说实话,这种范式转移背后,<a href="https://www.anthropic.com" style="color: #3a4f3f; text-decoration: none; border-bottom: 1px solid rgba(58,79,63,0.4); pa

docs/sunset-coral.html

  • Network accessline 41
    <p style="text-align: center; color: #ff6b4a; letter-spacing: 14px; font-size: 13px; margin: 36px 0; user-select: none; opacity: 0.7;">✦ ✦ ✦</p> <h2 style="font-size: 18px; font-weight: 800; color: #2b1a10; margin: 38px 0 18px; padding: 10p
  • Network accessline 42
    <h2 style="font-size: 18px; font-weight: 800; color: #2b1a10; margin: 38px 0 18px; padding: 10px 14px; background: linear-gradient(90deg, #ffe8dd 0%, #ffe8dd 3px, #fff3eb 3px, transparent 100%); border-radius: 4px; line-height: 1.5; letter-
  • Network accessline 43
    <p style="margin: 16px 0; text-indent: 0; text-align: justify; color: #2b1a10; line-height: 1.85;">说实话,这种范式转移背后,<a href="https://www.anthropic.com" style="color: #c43a1a; text-decoration: none; border-bottom: 1px solid rgba(196,58,26,0.4); 

docs/warm-editorial.html

  • Network accessline 41
    <p style="text-align: center; color: #c9a27d; letter-spacing: 12px; font-size: 14px; margin: 36px 0; user-select: none;">❦  ❦  ❦</p> <h2 style="font-size: 18px; font-weight: 700; color: #5a2f1a; margin: 38px 0 20px; padding: 4px 0 10px 0; b
  • Network accessline 42
    <h2 style="font-size: 18px; font-weight: 700; color: #5a2f1a; margin: 38px 0 20px; padding: 4px 0 10px 0; border-bottom: 2px solid #c9a27d; line-height: 1.5;">结论</h2> <p style="margin: 18px 0; text-indent: 0; text-align: justify; color: #3a
  • Network accessline 43
    <p style="margin: 18px 0; text-indent: 0; text-align: justify; color: #3a2e26; line-height: 1.95;">说实话,这种范式转移背后,<a href="https://www.anthropic.com" style="color: #8b4513; text-decoration: none; border-bottom: 1px solid rgba(139,69,19,0.4);"

docs/warm-orange.html

  • Network accessline 41
    <p style="text-align: center; color: #e58b3a; letter-spacing: 14px; font-size: 13px; margin: 36px 0; user-select: none; opacity: 0.7;">◉ ◉ ◉</p> <h2 style="font-size: 17.5px; font-weight: 800; color: #3a2a1e; margin: 38px 0 18px; padding: 4
  • Network accessline 42
    <h2 style="font-size: 17.5px; font-weight: 800; color: #3a2a1e; margin: 38px 0 18px; padding: 4px 0 4px 14px; border-left: 4px solid #e58b3a; line-height: 1.5; letter-spacing: 0.3px;">结论</h2> <p style="margin: 16px 0; text-indent: 0; text-a
  • Network accessline 43
    <p style="margin: 16px 0; text-indent: 0; text-align: justify; color: #3a2a1e; line-height: 1.9;">说实话,这种范式转移背后,<a href="https://www.anthropic.com" style="color: #b5601c; text-decoration: none; border-bottom: 1px solid rgba(181,96,28,0.4);">

references/api_reference.md

  • Network accessline 7
    - **URL**: `https://api.weixin.qq.com/cgi-bin/token`
  • Access to secretsline 15
    [Credential-related source omitted]
  • Network accessline 21
    [Credential-related source omitted]
  • Access to secretsline 21
    [Credential-related source omitted]
  • Network accessline 33
    [Credential-related source omitted]
  • Access to secretsline 33
    [Credential-related source omitted]
  • Network accessline 39
    {"url": "https://mmbiz.qpic.cn/..."}
  • Network accessline 45
    [Credential-related source omitted]
  • Access to secretsline 45
    [Credential-related source omitted]
  • Network accessline 75
    [Credential-related source omitted]
  • Access to secretsline 75
    [Credential-related source omitted]

references/multi-platform-sync.md

  • Network accessline 7
    底层基于 [Wechatsync](https://github.com/wechatsync/Wechatsync),复用 Chrome 扩展里各平台已登录的 Cookie,不经过任何第三方服务器。

references/newspic-mode.md

  • Network accessline 5
    - 单一主题的"拆卡"式讲解(示例:[Claude Code /rewind](https://mp.weixin.qq.com/s/erEF74HRGkrBPxTGsKDsSQ))

references/toutiao-publish-research.md

  • Network accessline 27
    1. **抖音开放平台的「头条内容发布」明确排除图文**    原文:「仅支持小视频格式,暂不支持发布头条文章、微头条等」    来源:https://open.douyin.com/platform/resource/docs/ability/content-management/toutiao-publish-solution
  • Network accessline 29
    来源:https://open.douyin.com/platform/resource/docs/ability/content-management/toutiao-publish-solution
  • Network accessline 32
    原文:「目前仅支持【新闻媒体、国家机构】类账号接入网站内容源」    机制是平台定期来拉你的 RSS,不是你 push。    来源:https://mp.toutiao.com/docs/baike/2789/20623/
  • Network accessline 34
    来源:https://mp.toutiao.com/docs/baike/2789/20623/
  • Network accessline 44
    我在页面里直接 `fetch('/mp/agw/article/publish', {credentials:'include'})`,**成功**,返回 `{code:0, message:"保存成功"}`。
  • Network accessline 62
    **所以"cookie 就够了"是假象** —— 任何在页面里发的请求都被 SDK 免费签好了名。 从 Python / curl 发同样的请求,缺 `a_bogus` 就会被拒。`a_bogus` 是 JSVMP 现算的,
  • Network accessline 63
    从 Python / curl 发同样的请求,缺 `a_bogus` 就会被拒。`a_bogus` 是 JSVMP 现算的,
  • Network accessline 73
    他们掌握全部接口细节,最后仍然选择挂一个真实 tab 借页面的签名能力。 来源:https://github.com/wechatsync/Wechatsync
  • Network accessline 74
    来源:https://github.com/wechatsync/Wechatsync
  • Network accessline 108
    git clone --filter=blob:none https://github.com/wechatsync/Wechatsync.git /tmp/ws
  • Network accessline 147
    POST https://mp.toutiao.com/spice/image
  • Network accessline 167
    POST https://mp.toutiao.com/mp/agw/article/publish
  • Network accessline 213
    草稿回链:`https://mp.toutiao.com/profile_v4/graphic/publish?pgc_id=<pgc_id>`
  • Network accessline 217
    **图片必须先上传,正文里不能出现外链图片。** 实测直接塞 `<img src="https://外站/x.jpg">`:
  • Network accessline 262
    页面编辑器是 **`syl-editor`**(字节开源的 [Syllepsis](https://github.com/bytedance/syllepsis),ProseMirror 内核)。
  • Network accessline 279
    粘贴 `<img src="https://外站/图.jpg">` 时,编辑器自己发了:
  • Network accessline 314
    | 项目 | star | 最后提交 | 路线 | 图文 | |---|---|---|---|---| | [mf-yang/toutiao-ops](https://github.com/mf-yang/toutiao-ops) | 46 | 2026-05 | Playwright + ClipboardEvent 粘贴 | ✅ |
  • Network accessline 315
    |---|---|---|---|---| | [mf-yang/toutiao-ops](https://github.com/mf-yang/toutiao-ops) | 46 | 2026-05 | Playwright + ClipboardEvent 粘贴 | ✅ | | [wechatsync/Wechatsync](https://github.com/wechatsync/Wechatsync) | 6308 | 2026-05 | 扩展 + MAIN wor
  • Network accessline 316
    | [mf-yang/toutiao-ops](https://github.com/mf-yang/toutiao-ops) | 46 | 2026-05 | Playwright + ClipboardEvent 粘贴 | ✅ |
  • Network accessline 317
    | [wechatsync/Wechatsync](https://github.com/wechatsync/Wechatsync) | 6308 | 2026-05 | 扩展 + MAIN world 调接口 | ⚠<U+FE0F> 源码私有化,装扩展仍可用(无封面) |
  • Network accessline 318
    | [doocs/cose](https://github.com/doocs/cose) | 746 | 2026-06 | 扩展 DOM 注入,只填不发 | ✅ 但不处理图片 |
  • Network accessline 319
    | [chemany/toutiao_mcp_server](https://github.com/chemany/toutiao_mcp_server) | 68 | 2025-06 | Selenium + cookie 持久化 | ✅ |
  • Network accessline 320
    | [JessYan0913/toutiao-mcp](https://github.com/JessYan0913/toutiao-mcp) | 0 | 2026-08 | Puppeteer 扫码登录 | 正文仅纯文本 |
  • Access to secretsline 365
    [Credential-related source omitted]
  • Network accessline 413
    两条结论同时成立: 1. **签名是硬要求** —— 所以纯 Python / curl 直接打发布接口不行
  • Network accessline 414
    1. **签名是硬要求** —— 所以纯 Python / curl 直接打发布接口不行
  • Network accessline 434
    [5/6] 上传配图与封面       正文图 960x540,封面已上传 [6/6] 写入草稿            ✅ 保存成功       草稿链接: https://mp.toutiao.com/profile_v4/graphic/publish?pgc_id=...
  • Network accessline 436
    草稿链接: https://mp.toutiao.com/profile_v4/graphic/publish?pgc_id=...
  • Access to secretsline 447
    [Credential-related source omitted]
  • Network accessline 457
    1. spawn Chrome  --remote-debugging-port=<随机空闲端口>                  --user-data-dir=<独立 profile>     ← 登录态就靠它持久化 2. 轮询 http://127.0.0.1:<port>/json/version 拿 webSocketDebuggerUrl
  • Network accessline 458
    --user-data-dir=<独立 profile>     ← 登录态就靠它持久化 2. 轮询 http://127.0.0.1:<port>/json/version 拿 webSocketDebuggerUrl 3. Target.getTargets → 找 mp.toutiao.com 的 page → Target.attachToTarget{flatten:true}
  • Network accessline 459
    2. 轮询 http://127.0.0.1:<port>/json/version 拿 webSocketDebuggerUrl

scripts/ai_score.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/api.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 20
    [Credential-related source omitted]
  • Network accessline 23
    API_TIMEOUT_SEC = 30 API_RETRIES = 2 API_BASE = "https://api.weixin.qq.com/cgi-bin"
  • Network accessline 25
    API_BASE = "https://api.weixin.qq.com/cgi-bin"
  • Network accessline 52
    for attempt in range(retries + 1):         try:             resp = requests.request(method, url, timeout=API_TIMEOUT_SEC, **kwargs)
  • Network accessline 53
    try:             resp = requests.request(method, url, timeout=API_TIMEOUT_SEC, **kwargs)             if 500 <= resp.status_code < 600 and attempt < retries:
  • Network accessline 54
    resp = requests.request(method, url, timeout=API_TIMEOUT_SEC, **kwargs)
  • Access to secretsline 79
    [Credential-related source omitted]
  • Access to secretsline 80
    [Credential-related source omitted]
  • Access to secretsline 115
    [Credential-related source omitted]
  • Access to secretsline 116
    [Credential-related source omitted]
  • Access to secretsline 147
    [Credential-related source omitted]
  • Access to secretsline 148
    [Credential-related source omitted]
  • Access to secretsline 212
    [Credential-related source omitted]
  • Access to secretsline 213
    [Credential-related source omitted]
  • Access to secretsline 259
    [Credential-related source omitted]
  • Access to secretsline 260
    [Credential-related source omitted]

scripts/article_meta.py

  • Executable scriptline 1
    Executable file

scripts/baoyu_danger_gemini_web/gemini-webapi/client.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 16
    [Credential-related source omitted]
  • Access to secretsline 85
    [Credential-related source omitted]
  • Access to secretsline 133
    [Credential-related source omitted]
  • Access to secretsline 134
    [Credential-related source omitted]
  • Access to secretsline 273
    [Credential-related source omitted]
  • Access to secretsline 291
    [Credential-related source omitted]
  • Network accessline 426
    const urls = collect_strings(cand, (s) => s.startsWith('https://lh3.googleusercontent.com/gg-dl/'), 1);
  • Network accessline 458
    if (generated_images.length === 0) {               const urls = collect_strings(img_candidate, (s) => s.startsWith('https://lh3.googleusercontent.com/gg-dl/'), 4);
  • Network accessline 459
    const urls = collect_strings(img_candidate, (s) => s.startsWith('https://lh3.googleusercontent.com/gg-dl/'), 4);
  • Access to secretsline 505
    [Credential-related source omitted]
  • Access to secretsline 508
    [Credential-related source omitted]

scripts/baoyu_danger_gemini_web/gemini-webapi/components/gem-mixin.ts

  • Executable scriptline 1
    Executable file

scripts/baoyu_danger_gemini_web/gemini-webapi/components/index.ts

  • Executable scriptline 1
    Executable file

scripts/baoyu_danger_gemini_web/gemini-webapi/constants.ts

  • Network accessline 1
    export const Endpoint = {   GOOGLE: 'https://www.google.com',
  • Executable scriptline 1
    Executable file
  • Network accessline 2
    GOOGLE: 'https://www.google.com',
  • Network accessline 3
    INIT: 'https://gemini.google.com/app',
  • Network accessline 4
    GENERATE:     'https://gemini.google.com/_/BardChatUi/data/assistant.lamda.BardFrontendService/StreamGenerate',   ROTATE_COOKIES: 'https://accounts.google.com/RotateCookies',
  • Network accessline 5
    'https://gemini.google.com/_/BardChatUi/data/assistant.lamda.BardFrontendService/StreamGenerate',
  • Network accessline 6
    ROTATE_COOKIES: 'https://accounts.google.com/RotateCookies',
  • Network accessline 7
    UPLOAD: 'https://content-push.googleapis.com/upload',
  • Network accessline 8
    BATCH_EXEC: 'https://gemini.google.com/_/BardChatUi/data/batchexecute',
  • Network accessline 22
    'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8',     Host: 'gemini.google.com',     Origin: 'https://gemini.google.com',
  • Network accessline 23
    Host: 'gemini.google.com',     Origin: 'https://gemini.google.com',     Referer: 'https://gemini.google.com/',
  • Network accessline 24
    Origin: 'https://gemini.google.com',
  • Network accessline 25
    Referer: 'https://gemini.google.com/',

scripts/baoyu_danger_gemini_web/gemini-webapi/exceptions.ts

  • Executable scriptline 1
    Executable file

scripts/baoyu_danger_gemini_web/gemini-webapi/index.ts

  • Executable scriptline 1
    Executable file

scripts/baoyu_danger_gemini_web/gemini-webapi/types/candidate.ts

  • Executable scriptline 1
    Executable file

scripts/baoyu_danger_gemini_web/gemini-webapi/types/gem.ts

  • Executable scriptline 1
    Executable file

scripts/baoyu_danger_gemini_web/gemini-webapi/types/grpc.ts

  • Executable scriptline 1
    Executable file

scripts/baoyu_danger_gemini_web/gemini-webapi/types/image.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 36
    'User-Agent': 'Mozilla/5.0',       Accept: 'image/avif,image/webp,image/apng,image/*,*/*;q=0.8',       Referer: 'https://gemini.google.com/',
  • Network accessline 37
    Accept: 'image/avif,image/webp,image/apng,image/*,*/*;q=0.8',       Referer: 'https://gemini.google.com/',     };
  • Network accessline 38
    Referer: 'https://gemini.google.com/',

scripts/baoyu_danger_gemini_web/gemini-webapi/types/index.ts

  • Executable scriptline 1
    Executable file

scripts/baoyu_danger_gemini_web/gemini-webapi/types/modeloutput.ts

  • Executable scriptline 1
    Executable file

scripts/baoyu_danger_gemini_web/gemini-webapi/utils/cookie-file.ts

  • Executable scriptline 1
    Executable file

scripts/baoyu_danger_gemini_web/gemini-webapi/utils/decorators.ts

  • Executable scriptline 1
    Executable file

scripts/baoyu_danger_gemini_web/gemini-webapi/utils/get-access-token.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 11
    [Credential-related source omitted]
  • Access to secretsline 79
    [Credential-related source omitted]
  • Access to secretsline 96
    [Credential-related source omitted]
  • Access to secretsline 97
    [Credential-related source omitted]
  • Access to secretsline 164
    [Credential-related source omitted]
  • Access to secretsline 166
    [Credential-related source omitted]
  • Access to secretsline 169
    [Credential-related source omitted]
  • Access to secretsline 192
    [Credential-related source omitted]

scripts/baoyu_danger_gemini_web/gemini-webapi/utils/http.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 44
    ): Promise<Response> {   const { timeout_ms, ...rest } = init;   if (!timeout_ms || timeout_ms <= 0) return fetch(url, rest);
  • Network accessline 46
    if (!timeout_ms || timeout_ms <= 0) return fetch(url, rest);
  • Network accessline 49
    const t = setTimeout(() => ctl.abort(), timeout_ms);   try {     return await fetch(url, { ...rest, signal: ctl.signal });
  • Network accessline 50
    try {     return await fetch(url, { ...rest, signal: ctl.signal });   } finally {
  • Network accessline 51
    return await fetch(url, { ...rest, signal: ctl.signal });

scripts/baoyu_danger_gemini_web/gemini-webapi/utils/index.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 2
    [Credential-related source omitted]
  • Access to secretsline 3
    [Credential-related source omitted]

scripts/baoyu_danger_gemini_web/gemini-webapi/utils/load-browser-cookies.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 153
    while (Date.now() - start < timeoutMs) {     try {       const res = await fetch_with_timeout(`http://127.0.0.1:${port}/json/version`, { timeout_ms: 5_000 });
  • Network accessline 154
    try {       const res = await fetch_with_timeout(`http://127.0.0.1:${port}/json/version`, { timeout_ms: 5_000 });       if (!res.ok) throw new Error(`status=${res.status}`);
  • Network accessline 155
    const res = await fetch_with_timeout(`http://127.0.0.1:${port}/json/version`, { timeout_ms: 5_000 });
  • Network accessline 173
    '--no-default-browser-check',     '--disable-popup-blocking',     'https://gemini.google.com/app',
  • Network accessline 174
    '--disable-popup-blocking',     'https://gemini.google.com/app',   ];
  • Network accessline 175
    'https://gemini.google.com/app',
  • Network accessline 220
    const { targetId } = await cdp.send<{ targetId: string }>('Target.createTarget', {       url: 'https://gemini.google.com/app',
  • Network accessline 221
    url: 'https://gemini.google.com/app',
  • Network accessline 235
    const { cookies } = await cdp.send<{ cookies: Array<{ name: string; value: string }> }>(         'Network.getCookies',         { urls: ['https://gemini.google.com/', 'https://accounts.google.com/', 'https://www.google.com/'] },
  • Network accessline 236
    'Network.getCookies',         { urls: ['https://gemini.google.com/', 'https://accounts.google.com/', 'https://www.google.com/'] },         { sessionId, timeoutMs: 10_000 },
  • Network accessline 237
    { urls: ['https://gemini.google.com/', 'https://accounts.google.com/', 'https://www.google.com/'] },

scripts/baoyu_danger_gemini_web/gemini-webapi/utils/logger.ts

  • Executable scriptline 1
    Executable file

scripts/baoyu_danger_gemini_web/gemini-webapi/utils/parsing.ts

  • Executable scriptline 1
    Executable file

scripts/baoyu_danger_gemini_web/gemini-webapi/utils/paths.ts

  • Executable scriptline 1
    Executable file

scripts/baoyu_danger_gemini_web/gemini-webapi/utils/rotate-1psidts.ts

  • Executable scriptline 1
    Executable file

scripts/baoyu_danger_gemini_web/gemini-webapi/utils/upload-file.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 18
    const res = await fetch(Endpoint.UPLOAD, {

scripts/baoyu_danger_gemini_web/main.ts

  • Executable scriptline 1
    Executable file

scripts/baoyu_image_gen.ts

  • Executable scriptline 1
    #!/usr/bin/env bun
  • Access to secretsline 36
    [Credential-related source omitted]
  • Access to secretsline 37
    [Credential-related source omitted]

scripts/baoyu_image_gen_core.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 51
    [Credential-related source omitted]
  • Access to secretsline 54
    [Credential-related source omitted]
  • Access to secretsline 65
    [Credential-related source omitted]
  • Access to secretsline 75
    [Credential-related source omitted]
  • Access to secretsline 91
    [Credential-related source omitted]
  • Access to secretsline 96
    [Credential-related source omitted]
  • Access to secretsline 129
    [Credential-related source omitted]
  • Access to secretsline 158
    [Credential-related source omitted]
  • Access to secretsline 159
    [Credential-related source omitted]
  • Access to secretsline 161
    [Credential-related source omitted]
  • Network accessline 212
    args: CliArgs ): Promise<Uint8Array> {   const baseURL = (process.env.OPENAI_BASE_URL || "https://api.openai.com/v1").replace(/\/$/, "");
  • Network accessline 213
    [Credential-related source omitted]
  • Network accessline 214
    const baseURL = (process.env.OPENAI_BASE_URL || "https://api.openai.com/v1").replace(/\/$/, "");
  • Access to secretsline 215
    [Credential-related source omitted]
  • Access to secretsline 216
    [Credential-related source omitted]
  • Network accessline 225
    const res = await fetch(`${baseURL}/images/generations`, {
  • Access to secretsline 247
    [Credential-related source omitted]
  • Access to secretsline 249
    [Credential-related source omitted]
  • Network accessline 266
    const res = await fetch(`${baseURL}/chat/completions`, {
  • Network accessline 383
    async function downloadImage(url: string): Promise<Uint8Array> {   const res = await fetch(url);
  • Network accessline 384
    const res = await fetch(url);

scripts/config.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 94
    [Credential-related source omitted]
  • Access to secretsline 121
    [Credential-related source omitted]
  • Access to secretsline 127
    [Credential-related source omitted]
  • Access to secretsline 141
    [Credential-related source omitted]
  • Network accessline 282
    # 贴图(newspic)模式的兜底风格 —— 高密度手绘水彩信息图,对标 # https://mp.weixin.qq.com/s/nSlGjh9hjM63jxz_jgUCwA
  • Network accessline 283
    # https://mp.weixin.qq.com/s/nSlGjh9hjM63jxz_jgUCwA

scripts/fidelity_check.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/fingerprint.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/fingerprint_render.py

  • Executable scriptline 1
    Executable file

scripts/generate_image.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 149
    [Credential-related source omitted]

scripts/html_converter.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/humanize_log.py

  • Executable scriptline 1
    Executable file

scripts/image_handler.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 151
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"             }             resp = requests.get(url, headers=headers, timeout=timeout, stream=True, allow_re
  • Network accessline 152
    }             resp = requests.get(url, headers=headers, timeout=timeout, stream=True, allow_redirects=True)             resp.raise_for_status()
  • Network accessline 153
    resp = requests.get(url, headers=headers, timeout=timeout, stream=True, allow_redirects=True)
  • Access to secretsline 432
    [Credential-related source omitted]

scripts/multi_publish.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 92
    [Credential-related source omitted]
  • Access to secretsline 203
    [Credential-related source omitted]

scripts/newspic_build.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/publish.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 33
    [Credential-related source omitted]
  • Access to secretsline 413
    [Credential-related source omitted]
  • Access to secretsline 635
    [Credential-related source omitted]

scripts/source_check.py

  • Executable scriptline 1
    Executable file

scripts/sync_pages.sh

  • Executable scriptline 1
    #!/usr/bin/env bash

scripts/toutiao_cdp.ts

  • Executable scriptline 1
    #!/usr/bin/env bun
  • Network accessline 5
    * 为什么需要浏览器:mp.toutiao.com 的发布接口强制 msToken/a_bogus 签名,  * 由页面里的字节风控 SDK(bdms.js)劫持 window.fetch 现算。实测对照:  *   页面 fetch(自动签名) → code 0 保存成功
  • Network accessline 6
    * 由页面里的字节风控 SDK(bdms.js)劫持 window.fetch 现算。实测对照:  *   页面 fetch(自动签名) → code 0 保存成功  *   iframe 原生 fetch(无签名) → code 7050 保存失败
  • Network accessline 7
    *   页面 fetch(自动签名) → code 0 保存成功
  • Network accessline 8
    *   iframe 原生 fetch(无签名) → code 7050 保存失败
  • Possible obfuscationline 46
    const bin = atob(${JSON.stringify(b64)});
  • Network accessline 49
    const fd = new FormData();     fd.append('image', new Blob([buf]), 'image.jpg');     const r = await fetch('https://mp.toutiao.com/spice/image?${query}',
  • Network accessline 50
    fd.append('image', new Blob([buf]), 'image.jpg');     const r = await fetch('https://mp.toutiao.com/spice/image?${query}',       {method:'POST', credentials:'include', body: fd});
  • Network accessline 51
    const r = await fetch('https://mp.toutiao.com/spice/image?${query}',
  • Network accessline 106
    const p = new URLSearchParams();     for (const [k, v] of Object.entries(fields)) p.set(k, v);     const r = await fetch('https://mp.toutiao.com/mp/agw/article/publish?source=mp&type=article&aid=1231&mp_publish_ab_val=0',
  • Network accessline 107
    for (const [k, v] of Object.entries(fields)) p.set(k, v);     const r = await fetch('https://mp.toutiao.com/mp/agw/article/publish?source=mp&type=article&aid=1231&mp_publish_ab_val=0',       {method:'POST', credentials:'include',
  • Network accessline 108
    const r = await fetch('https://mp.toutiao.com/mp/agw/article/publish?source=mp&type=article&aid=1231&mp_publish_ab_val=0',
  • Network accessline 117
    return {     pgc_id: String(res.pgc_id),     draft_url: `https://mp.toutiao.com/profile_v4/graphic/publish?pgc_id=${res.pgc_id}`,
  • Network accessline 118
    pgc_id: String(res.pgc_id),     draft_url: `https://mp.toutiao.com/profile_v4/graphic/publish?pgc_id=${res.pgc_id}`,   }
  • Network accessline 119
    draft_url: `https://mp.toutiao.com/profile_v4/graphic/publish?pgc_id=${res.pgc_id}`,

scripts/toutiao_cdp_client.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 15
    const PUBLISH_PAGE = 'https://mp.toutiao.com/profile_v4/graphic/publish?from=toutiao_pc'
  • Network accessline 102
    while (Date.now() < deadline) {     try {       const r = await fetch(`http://127.0.0.1:${port}/json/version`)
  • Network accessline 103
    try {       const r = await fetch(`http://127.0.0.1:${port}/json/version`)       if (r.ok) {
  • Network accessline 104
    const r = await fetch(`http://127.0.0.1:${port}/json/version`)
  • Network accessline 193
    return this.evaluate<any>(`(async () => {       try {         const r = await fetch('https://mp.toutiao.com/mp/agw/media/get_media_info', {credentials:'include'});
  • Network accessline 194
    try {         const r = await fetch('https://mp.toutiao.com/mp/agw/media/get_media_info', {credentials:'include'});         const j = await r.json();
  • Network accessline 195
    const r = await fetch('https://mp.toutiao.com/mp/agw/media/get_media_info', {credentials:'include'});

scripts/toutiao_inline.py

  • Executable scriptline 1
    Executable file

scripts/toutiao_publish.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 62
    except FileNotFoundError:         raise ToutiaoPublishError(             "找不到 bun。请先安装:curl -fsSL https://bun.sh/install | bash"
  • Network accessline 63
    raise ToutiaoPublishError(             "找不到 bun。请先安装:curl -fsSL https://bun.sh/install | bash"         ) from None
  • Dangerous shell operationline 64
    "找不到 bun。请先安装:curl -fsSL https://bun.sh/install | bash"
  • Network accessline 64
    "找不到 bun。请先安装:curl -fsSL https://bun.sh/install | bash"

scripts/toutiao_render.py

  • Executable scriptline 1
    Executable file

scripts/wechat_api.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 7
    [Credential-related source omitted]
  • Access to secretsline 29
    [Credential-related source omitted]
  • Access to secretsline 57
    [Credential-related source omitted]
  • Access to secretsline 102
    [Credential-related source omitted]
  • Access to secretsline 103
    [Credential-related source omitted]

scripts/wechat_token.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 3
    [Credential-related source omitted]
  • Network accessline 23
    TOKEN_SAFETY_MARGIN_SEC = 300  # 提前 5 分钟刷新 TOKEN_TIMEOUT_SEC = 10 TOKEN_API_URL = "https://api.weixin.qq.com/cgi-bin/token"
  • Network accessline 25
    TOKEN_API_URL = "https://api.weixin.qq.com/cgi-bin/token"
  • Network accessline 79
    for attempt in range(retries + 1):         try:             resp = requests.get(
  • Network accessline 80
    try:             resp = requests.get(                 TOKEN_API_URL,
  • Network accessline 81
    resp = requests.get(
  • Access to secretsline 98
    [Credential-related source omitted]
  • Access to secretsline 107
    [Credential-related source omitted]
  • Access to secretsline 118
    [Credential-related source omitted]
  • Access to secretsline 121
    [Credential-related source omitted]
  • Access to secretsline 123
    [Credential-related source omitted]
  • Access to secretsline 130
    [Credential-related source omitted]
  • Access to secretsline 148
    [Credential-related source omitted]
  • Access to secretsline 153
    [Credential-related source omitted]

scripts/zh_chars.py

  • Executable scriptline 1
    Executable file

scripts/zh_finders.py

  • Executable scriptline 1
    Executable file

scripts/zh_markers.py

  • Executable scriptline 1
    Executable file

scripts/zh_rules.py

  • Executable scriptline 1
    Executable file

scripts/zh_sources.py

  • Executable scriptline 1
    Executable file

scripts/zh_tells.py

  • Executable scriptline 1
    Executable file

scripts/zh_text.py

  • Executable scriptline 1
    Executable file

tests/__init__.py

  • Executable scriptline 1
    Executable file

tests/conftest.py

  • Executable scriptline 1
    Executable file

tests/fixtures/human_public_domain.md

  • Network accessline 3
    author: 朱自清(1898-1948) first_published: 1925-11-22《文学周报》第 200 期 text_source: 中文维基文库 https://zh.wikisource.org/wiki/背影 (简体转换;删除了网页复制带来的零宽空格)
  • Network accessline 4
    first_published: 1925-11-22《文学周报》第 200 期 text_source: 中文维基文库 https://zh.wikisource.org/wiki/背影 (简体转换;删除了网页复制带来的零宽空格) license: 公有领域。作者 1948 年逝世,超过 50 年;作品 1931 年前出版,在美国亦属公有领域
  • Network accessline 5
    text_source: 中文维基文库 https://zh.wikisource.org/wiki/背影 (简体转换;删除了网页复制带来的零宽空格)

tests/test_ai_score.py

  • Executable scriptline 1
    Executable file

tests/test_config.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 71
    [Credential-related source omitted]
  • Access to secretsline 74
    [Credential-related source omitted]
  • Network accessline 92
    [Credential-related source omitted]
  • Network accessline 93
    [Credential-related source omitted]
  • Access to secretsline 93
    [Credential-related source omitted]
  • Network accessline 94
    base_url: "https://api.example/v1"
  • Network accessline 96
    [Credential-related source omitted]
  • Network accessline 97
    [Credential-related source omitted]
  • Access to secretsline 97
    [Credential-related source omitted]
  • Network accessline 98
    base_url: "https://proxy.example"
  • Network accessline 108
    [Credential-related source omitted]
  • Access to secretsline 108
    [Credential-related source omitted]
  • Network accessline 109
    [Credential-related source omitted]
  • Access to secretsline 109
    [Credential-related source omitted]
  • Network accessline 110
    [Credential-related source omitted]
  • Access to secretsline 110
    [Credential-related source omitted]
  • Access to secretsline 111
    [Credential-related source omitted]

tests/test_config_integration.py

  • Executable scriptline 1
    Executable file
  • Network accessline 37
    generator: "baoyu-danger-gemini-web"               gemini_proxy:                 base_url: "https://skill-root.example"
  • Network accessline 38
    [Credential-related source omitted]
  • Network accessline 39
    base_url: "https://skill-root.example"
  • Access to secretsline 40
    [Credential-related source omitted]
  • Network accessline 60
    generator: "baoyu-image-gen"               gemini_proxy:                 base_url: "https://wrong-cwd.example"
  • Network accessline 61
    [Credential-related source omitted]
  • Network accessline 62
    base_url: "https://wrong-cwd.example"
  • Access to secretsline 63
    [Credential-related source omitted]
  • Network accessline 84
    generator: "baoyu-image-gen"               gemini_proxy:                 base_url: "https://wrong-home.example"
  • Network accessline 85
    [Credential-related source omitted]
  • Network accessline 86
    base_url: "https://wrong-home.example"
  • Access to secretsline 87
    [Credential-related source omitted]
  • Access to secretsline 113
    [Credential-related source omitted]
  • Access to secretsline 159
    [Credential-related source omitted]
  • Network accessline 165
    assert result.stdout.strip() == (         '{"provider":"gemini-proxy","baseUrl":"https://skill-root.example",'
  • Network accessline 166
    '{"provider":"gemini-proxy","baseUrl":"https://skill-root.example",'
  • Access to secretsline 186
    [Credential-related source omitted]
  • Access to secretsline 221
    [Credential-related source omitted]
  • Access to secretsline 223
    [Credential-related source omitted]
  • Access to secretsline 262
    [Credential-related source omitted]
  • Access to secretsline 319
    [Credential-related source omitted]
  • Access to secretsline 321
    [Credential-related source omitted]

tests/test_fidelity_check.py

  • Executable scriptline 1
    Executable file
  • Network accessline 70
    linked = "官方原话是 \"too cheap to meter\",见 https://example.com/pricing 。\n"
  • Network accessline 76
    @pytest.mark.parametrize("tail", ["详见 https://a.com/b。后面还有一句。\n", "命令是 `echo 好。` 就行。\n"])
  • Network accessline 79
    md = "官方原话是 \"too cheap to meter\",见 https://example.com/pricing 。\n\n" + tail

tests/test_fingerprint.py

  • Executable scriptline 1
    Executable file

tests/test_fix2_gates.py

  • Executable scriptline 1
    Executable file
  • Network accessline 100
    md = ("# 迁移记录\n\n迁移用了两周,主要时间花在核对 key 的过期策略上。\n\n"           "> 这不是建议,而是警告。来源 https://docs.example.com\n")
  • Network accessline 101
    "> 这不是建议,而是警告。来源 https://docs.example.com\n")

tests/test_fix2_rules.py

  • Executable scriptline 1
    Executable file
  • Network accessline 125
    assert ok("见brief第4行,群聊截图")     assert ok("出处 brief materials 第一条")     assert ok("见 https://example.com/post")
  • Network accessline 126
    assert ok("出处 brief materials 第一条")     assert ok("见 https://example.com/post")     assert ok("见 issue #12 里作者原话")
  • Network accessline 127
    assert ok("见 https://example.com/post")

tests/test_html_converter.py

  • Executable scriptline 1
    Executable file
  • Network accessline 203
    md = "![示例图](https://example.com/img.png)"
  • Network accessline 206
    assert "<img" in html     assert "https://example.com/img.png" in html
  • Network accessline 207
    assert "https://example.com/img.png" in html
  • Network accessline 213
    md = "参考 [文档](https://example.com/doc)"
  • Network accessline 216
    assert '<a ' in html     assert 'https://example.com/doc' in html
  • Network accessline 217
    assert 'https://example.com/doc' in html

tests/test_humanize_log.py

  • Executable scriptline 1
    Executable file
  • Network accessline 75
    assert HL.uncovered(many, log, han=6000) == []     src = [{**m, "id": "unsourced_quote"} for m in many]     src_log = log.replace("fake_reaction", "unsourced_quote").replace(REASON, "见 https://example.com/thread 原帖")
  • Network accessline 76
    src = [{**m, "id": "unsourced_quote"} for m in many]     src_log = log.replace("fake_reaction", "unsourced_quote").replace(REASON, "见 https://example.com/thread 原帖")     assert HL.uncovered(src, src_log, han=1500) == []
  • Network accessline 77
    src_log = log.replace("fake_reaction", "unsourced_quote").replace(REASON, "见 https://example.com/thread 原帖")
  • Network accessline 122
    ("brief L2 用户提供", False),            # 指向 topic 行,和命中对不上     ("brief L12 用户提供", False),           # 行号越界     ("https://example.com/post 原文", False),  # 链接证明不了是用户亲历
  • Network accessline 123
    ("brief L12 用户提供", False),           # 行号越界     ("https://example.com/post 原文", False),  # 链接证明不了是用户亲历     ("research.md 里的访谈记录", False), ("issue #6235 的讨论", False), ("@someone 在推上说的", False),
  • Network accessline 124
    ("https://example.com/post 原文", False),  # 链接证明不了是用户亲历
  • Network accessline 136
    @pytest.mark.parametrize("reason,ok", [     ("https://example.com/post 原文", True), ("issue #6235 的讨论", True), ("@someone 在推上说的", True),
  • Network accessline 137
    ("https://example.com/post 原文", True), ("issue #6235 的讨论", True), ("@someone 在推上说的", True),
  • Network accessline 175
    ]) def test_parse_brief_yaml_variants(fm):     b = HL.parse_brief(f"---\n{fm}materials:   # 来源\n  - 文档 | https://x.y\n---\n")
  • Network accessline 176
    def test_parse_brief_yaml_variants(fm):     b = HL.parse_brief(f"---\n{fm}materials:   # 来源\n  - 文档 | https://x.y\n---\n")     assert b["experiences"] == ["上周迁了 Redis"]
  • Network accessline 177
    b = HL.parse_brief(f"---\n{fm}materials:   # 来源\n  - 文档 | https://x.y\n---\n")

tests/test_instruction_guard.py

  • Executable scriptline 1
    Executable file

tests/test_publish_gate.py

  • Executable scriptline 1
    Executable file
  • Network accessline 112
    state, _ = fake_score     state["result"] = _report(advisory=[ADVISORY_ITEM])     row = f"| neg_contrast | 9 | {ADVISORY_ITEM['excerpt']} | 保留 | 官方 changelog 原文 https://example.com |\n"
  • Network accessline 113
    state["result"] = _report(advisory=[ADVISORY_ITEM])     row = f"| neg_contrast | 9 | {ADVISORY_ITEM['excerpt']} | 保留 | 官方 changelog 原文 https://example.com |\n"     (article.parent / "humanize_log.md").write_text(LOG_HEADER + row, encoding="
  • Network accessline 114
    row = f"| neg_contrast | 9 | {ADVISORY_ITEM['excerpt']} | 保留 | 官方 changelog 原文 https://example.com |\n"
  • Access to secretsline 233
    [Credential-related source omitted]
  • Access to secretsline 261
    [Credential-related source omitted]

tests/test_publish_gate_paths.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 51
    [Credential-related source omitted]
  • Access to secretsline 152
    [Credential-related source omitted]
  • Access to secretsline 195
    [Credential-related source omitted]
  • Access to secretsline 205
    [Credential-related source omitted]
  • Access to secretsline 260
    [Credential-related source omitted]

tests/test_publish_platform_dispatch.py

  • Executable scriptline 1
    Executable file

tests/test_review_fixes.py

  • Executable scriptline 1
    Executable file
  • Network accessline 42
    def test_url_does_not_source_a_first_person_experience():     log = _keep(EXP, "见 https://example.com/post 原文")
  • Network accessline 43
    log = _keep(EXP, "见 https://example.com/post 原文")
  • Network accessline 47
    def test_url_still_sources_a_quote():     q = {"id": "unsourced_quote", "line": 7, "excerpt": "同事跟我说这个参数别动", "scope": "position"}     assert not H.uncovered([q], _keep(q, "见 https://example.com/thread 原帖"), han=1000)
  • Network accessline 49
    assert not H.uncovered([q], _keep(q, "见 https://example.com/thread 原帖"), han=1000)
  • Network accessline 64
    def test_url_in_paragraph_does_not_hide_first_person_experience():     md = "# 标题\n\n官方文档见 https://example.com/docs 。去年我在老东家也踩过一样的坑,改了三次才好。\n"
  • Network accessline 65
    md = "# 标题\n\n官方文档见 https://example.com/docs 。去年我在老东家也踩过一样的坑,改了三次才好。\n"
  • Network accessline 141
    "excerpt": "去年我在老东家用 Claude Code 维护 AGENTS.md 时踩过一样的坑"} BRIEF_TOPIC = ('---\ntopic: "Claude Code 终于读 AGENTS.md 了"\nkeywords: [Claude Code, AGENTS.md]\n'                'experiences:\n  - 无\nmaterials:\n  - "Claude Code 2.1 开始读取 AGENTS.md | 
  • Network accessline 142
    BRIEF_TOPIC = ('---\ntopic: "Claude Code 终于读 AGENTS.md 了"\nkeywords: [Claude Code, AGENTS.md]\n'                'experiences:\n  - 无\nmaterials:\n  - "Claude Code 2.1 开始读取 AGENTS.md | https://example.com/changelog"\n---\n') BRIEF_OTHER = ('
  • Network accessline 143
    'experiences:\n  - 无\nmaterials:\n  - "Claude Code 2.1 开始读取 AGENTS.md | https://example.com/changelog"\n---\n')
  • Network accessline 166
    import zh_text     text = "我同事跟我说:“这里要改”。"     raw = "`echo 好。` 见 https://example.com 我同事跟我说:“这里要改”。"   # 行内代码里的句号让句数对不上
  • Network accessline 167
    text = "我同事跟我说:“这里要改”。"     raw = "`echo 好。` 见 https://example.com 我同事跟我说:“这里要改”。"   # 行内代码里的句号让句数对不上     assert not any(zh_text.sourced_sentences(text, raw))
  • Network accessline 168
    raw = "`echo 好。` 见 https://example.com 我同事跟我说:“这里要改”。"   # 行内代码里的句号让句数对不上
  • Network accessline 196
    import fidelity_check as FC     cleaned = FC._SCRUB.sub(lambda m: " " * len(m.group(0)), "见 https://example.com/pricing。后面还有一句。")
  • Network accessline 197
    cleaned = FC._SCRUB.sub(lambda m: " " * len(m.group(0)), "见 https://example.com/pricing。后面还有一句。")

tests/test_toutiao_config.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 43
    [Credential-related source omitted]
  • Access to secretsline 44
    [Credential-related source omitted]
  • Access to secretsline 45
    [Credential-related source omitted]
  • Access to secretsline 52
    [Credential-related source omitted]
  • Access to secretsline 61
    [Credential-related source omitted]
  • Access to secretsline 75
    [Credential-related source omitted]
  • Access to secretsline 87
    [Credential-related source omitted]

tests/test_toutiao_publish.py

  • Executable scriptline 1
    Executable file
  • Network accessline 50
    images = {                 item["key"]: {                     "image_url": f"https://p3.toutiaoimg.com/{i}",
  • Network accessline 51
    item["key"]: {                     "image_url": f"https://p3.toutiaoimg.com/{i}",                     "image_uri": f"tos-cn-i-x/uri{i}",
  • Network accessline 52
    "image_url": f"https://p3.toutiaoimg.com/{i}",
  • Network accessline 60
    cover = (                 {                     "image_url": "https://p3.toutiaoimg.com/cover",
  • Network accessline 61
    {                     "image_url": "https://p3.toutiaoimg.com/cover",                     "image_uri": "tos-cn-i-x/cover",
  • Network accessline 62
    "image_url": "https://p3.toutiaoimg.com/cover",
  • Network accessline 71
    return {"ok": True, "images": images, "cover": cover}         if command == "publish":             return {"ok": True, "pgc_id": "7123456789", "draft_url": "https://mp.toutiao.com/x?pgc_id=7123456789"}
  • Network accessline 72
    if command == "publish":             return {"ok": True, "pgc_id": "7123456789", "draft_url": "https://mp.toutiao.com/x?pgc_id=7123456789"}         return {"ok": True, "user": {"id": 1, "name": "tester"}}
  • Network accessline 73
    return {"ok": True, "pgc_id": "7123456789", "draft_url": "https://mp.toutiao.com/x?pgc_id=7123456789"}

tests/test_toutiao_render.py

  • Executable scriptline 1
    Executable file
  • Network accessline 28
    return {         "image_url": "https://p3-sign.toutiaoimg.com/fake~tplv-obj.image",
  • Network accessline 29
    "image_url": "https://p3-sign.toutiaoimg.com/fake~tplv-obj.image",
  • Network accessline 50
    html = render_toutiao_html("详见[官方文档](https://example.com)说明。")
  • Network accessline 144
    with pytest.raises(ToutiaoRenderError):         render_toutiao_html("![x](https://example.com/a.jpg)", image_map={})
  • Network accessline 145
    render_toutiao_html("![x](https://example.com/a.jpg)", image_map={})

tests/test_zh_tells.py

  • Executable scriptline 1
    Executable file
  • Possible obfuscationline 51
    "---\ntitle: x\n---\n正文", "---\r\ntitle: x\r\n---\r\n正文", "<U+FEFF>---\ntitle: x\n---\n正文", "---\ntitle: x\n---",
  • Network accessline 71
    def test_url_masked_without_eating_text():     masked = T.mask_markdown("详见 https://a.b/c?d=1 这里。然后")
  • Network accessline 72
    masked = T.mask_markdown("详见 https://a.b/c?d=1 这里。然后")
  • Network accessline 90
    assert "终点" not in T.blank_attributed("“这不是终点,而是起点”,出处 。", raw="“这不是终点,而是起点”,出处 https://x.y/z 。")
  • Network accessline 91
    assert "终点" in T.blank_attributed("“这不是终点,而是起点”。\n另见 。", raw="“这不是终点,而是起点”。\n另见 https://x.y/z 。")
  • Network accessline 191
    def test_section_end_skips_link_line():     md = "".join(f"## {i}\n\n正文 {i} 写了一些东西。\n\n同一个坑,两拨人各自摔一遍。\n\n🔗 GitHub:https://x.y/{i}\n\n" for i in "一二三")
  • Network accessline 192
    md = "".join(f"## {i}\n\n正文 {i} 写了一些东西。\n\n同一个坑,两拨人各自摔一遍。\n\n🔗 GitHub:https://x.y/{i}\n\n" for i in "一二三")
  • Possible obfuscationline 293
    "<U+FEFF>文件开头的 BOM。", "程序员 👨<U+200D>💻 的日常", "β版本今天上线。", "Привет是俄语里的你好。", "复制带来的一个<U+200B>零宽空格",

wechat-publisher.yaml.example

  • Network accessline 43
    [Credential-related source omitted]
  • Network accessline 44
    [Credential-related source omitted]
  • Access to secretsline 44
    [Credential-related source omitted]
  • Network accessline 45
    base_url: "https://api.openai.com/v1"
  • Network accessline 48
    # baoyu-image-gen / provider=gemini-proxy   gemini_proxy:     base_url: "https://generativelanguage.googleapis.com"
  • Network accessline 49
    [Credential-related source omitted]
  • Network accessline 50
    base_url: "https://generativelanguage.googleapis.com"
  • Access to secretsline 51
    [Credential-related source omitted]

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Declared and executed: 12 facts
Signal confidence: 418 facts

and 368 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md SKILL.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.