/install nexus-reader
nexus-reader - 微信读书飙升榜每日推荐
生成精美的每日读书推荐卡片,数据来源于微信读书飙升榜。
核心工作流程(四步)
Step 1:抓取榜单数据
python scripts/reader.py --fetch-only
脚本会自动:
- 抓取微信读书飙升榜(20本书)
- 保存原始数据到
data/weread_rising_YYYY-MM-DD.json - 输出榜单摘要(书名、作者、推荐值)
输出示例:
[抓取] 正在获取微信读书飙升榜...
[解析] 找到 20 个书籍项
[保存] 数据已缓存: data/weread_rising_2026-05-04.json
==================================================
飙升榜 TOP 20
==================================================
1. 《阿勒泰的角落》- 李娟 (推荐值: 88.4%)
2. ...
缓存机制:当天JSON文件 \x3C 1小时自动跳过重新抓取,
--force强制刷新
Step 2:模型选书 + 创作内容
读取 data/weread_rising_YYYY-MM-DD.json,从TOP10中选一本书,然后自己创作以下内容(不要直接复制书籍简介):
| 字段 | 说明 | 字数建议 |
|---|---|---|
title |
金句标题,根据书籍主题提炼一句有深度、有力量的话 | 8-15字 |
yi |
宜××,结合书籍主题创作 | 4-6字 |
ji |
忌××,结合书籍主题创作 | 4-6字 |
book_desc |
推荐语,用温暖、有感染力的语言为这本书写一段推荐 | 50-100字 |
示例(推荐《百年孤独》):
{
"title": "每个人都在守护自己的孤独",
"yi": "静心阅读",
"ji": "浮躁焦虑",
"book_desc": "马尔克斯用一座虚构的小镇,写尽了人类共有的孤独与执念。每一次重读,都会在某个角色身上看见自己。适合在一个安静的下午,泡一杯咖啡,慢慢走进马孔多。"
}
重要:
book_desc是 LLM 的创作内容,不是书籍简介的截取!
Step 3:生成 card JSON 文件
将以下内容保存为 data/nexus-reader-YYYYMMDD.json:
{
"date": "2026/05/04",
"day": "04",
"weekday": "星期日",
"lunar_date": "农历 四月十八",
"yi": "静心品读",
"ji": "焦虑内耗",
"title": "有一分热就去发光",
"book_title": "阿勒泰的角落",
"book_author": "李娟",
"book_desc": "...(LLM创作的推荐语)",
"cover_url": "https://weread-1258476245.cos.ap-nanjing.myqcloud.com/...",
"book_url": "https://weread.qq.com/web/reader/...",
"rating": "88.4%",
"reading_count": "1486"
}
提示:
cover_url、book_url、rating、reading_count、book_title、book_author从weread_rising_YYYY-MM-DD.json中对应的书籍项获取。其余字段由 LLM 创作或计算。
Step 4:渲染卡片
# 只生成 HTML
python scripts/reader.py --card data/nexus-reader-2026-05-04.json
# 生成 HTML + PNG 图片
python scripts/reader.py --card data/nexus-reader-2026-05-04.json --png
输出:
data/nexus-reader-YYYYMMDD.html— 精美推荐卡片data/nexus-reader-YYYYMMDD.png— PNG 图片(需加--png)
然后用 preview_url 打开 HTML 卡片展示给用户。
命令行参数速查
| 命令 | 说明 |
|---|---|
--fetch-only |
阶段1:只抓取数据 |
--card JSON_PATH |
阶段2:渲染指定 JSON 的卡片 |
--png |
额外生成 PNG(需配合 --card) |
--output DIR |
指定输出目录 |
--force |
强制重新抓取 |
--cache-hours N |
缓存有效时间(小时,默认1) |
--fetch-only和--card互斥,必须指定其中一个
数据结构
原始榜单 JSON(weread_rising_YYYY-MM-DD.json)
从微信读书抓取的原始数据,包含20本书:
[
{
"index": "1",
"title": "阿勒泰的角落",
"author": "李娟",
"desc": "书籍简介...",
"cover_url": "https://...",
"book_url": "https://weread.qq.com/...",
"reading_count": "1486",
"rating": "88.4%",
"date": "2026-05-04"
}
]
卡片 JSON(nexus-reader-YYYYMMDD.json)
由 LLM 创作内容后生成的完整卡片数据,用于渲染:
{
"date": "2026/05/04",
"day": "04",
"weekday": "星期日",
"lunar_date": "农历 四月十八",
"yi": "静心品读",
"ji": "焦虑内耗",
"title": "有一分热就去发光",
"book_title": "阿勒泰的角落",
"book_author": "李娟",
"book_desc": "李娟用质朴的笔触...",
"cover_url": "https://...",
"book_url": "https://...",
"rating": "88.4%",
"reading_count": "1486"
}
卡片设计说明
卡片采用暖色调书卷风格:
- 背景:
#fdfcfa(米白色)+ 淡雅渐变 - 主色:
#9d7a58(古铜色)用于日期 - 字体:
Noto Serif SC(宋体风格衬线字体) - 结构:日期 → 宜忌 → 金句标题+推荐语+书名 → 分隔线 → 封面+详情+阅读按钮
农历日期计算
lunar_date 字段由 LLM 根据当天日期计算,格式为 农历 X月XX日。
示例中 LUNAR_MONTHS 为简化版本,实际农历需要专用库(lunarcalendar)或 LLM 直接计算。推荐让 LLM 直接计算,避免额外依赖。
注意事项
- 微信读书页面不需要登录即可查看飙升榜
- 封面图片来自 CDN,可能在某些网络环境下无法加载
--png需要安装html2image:pip install html2image- 推荐值和阅读人数是实时数据,每天不同
- 如果抓取失败,脚本会尝试使用旧缓存降级
定时推送场景
当用户要求每日定时推送读书推荐时,创建 automation(recurring):
- prompt 内容:运行
reader.py --fetch-only→ LLM 创作内容 → 生成 card JSON → 运行reader.py --card[--png] → 推送 - schedule 为每日固定时间(如
RRULE:FREQ=DAILY;BYHOUR=8;BYMINUTE=0)
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install nexus-reader - 安装完成后,直接呼叫该 Skill 的名称或使用
/nexus-reader触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
读书每日推荐 是什么?
微信读书飙升榜每日推荐卡片生成器。从微信读书飙升榜抓取热门书籍数据,生成精美的每日读书推荐卡片(HTML/PNG)。当用户说「读书推荐」「微信读书」「飙升榜」「今日好书」「推荐一本书」「读书卡片」「book recommendation」时触发。也可用于每日定时推送读书推荐场景。 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 43 次。
如何安装 读书每日推荐?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install nexus-reader」即可一键安装,无需额外配置。
读书每日推荐 是免费的吗?
是的,读书每日推荐 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
读书每日推荐 支持哪些平台?
读书每日推荐 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 读书每日推荐?
由 Neway Lau(@lwter)开发并维护,当前版本 v1.0.0。