admin 2a809eb7cc refactor: complete data model v2.0 based on official API docs
数据模型全面重构,基于微信读书官方 8 份 API 文档逐字段比对:

1. 表结构从 18 张扩展到 31 张表:
   新增表:shelf_albums(有声书)、shelf_meta(书架元信息)、prefer_publishers(偏好出版社)、
   prefer_cps(偏好版权方)、prefer_books(偏好书籍卡片)、read_rank(好友排行)、
   medals(勋章)、year_reports(年度报告)、book_best_bookmarks(热门划线)、
   book_underlines(划线热度)、similar_books(相似推荐)、public_reviews(公开点评)、
   search_sessions(搜索会话)

2. 补全所有遗漏字段:
   - reading_stats: +13 个字段 (baseTime, compare, readRate, wrReadTime, wrListenTime 等)
   - book_chapters: +8 个字段 (wordCount, level, price, paid, isMPChapter, anchors 等)
   - book_reviews: +4 个字段 (abstract, range, chapterUid, chapterIdx)
   - recommended_books: +5 个字段 (deepLink, searchIdx, price, payType, type)
   - search_results: +8 个字段 (deepLink, payType, price, soldout, scope 等)
   - book_details: +2 个字段 (deepLink, newRatingDetail)
   - prefer_categories: +2 个字段 (parentCategoryId, categoryType)

3. 时间戳双列设计:
   - 所有整型时间戳字段均伴随 _dt TIMESTAMP 列 (如 read_update_time + read_update_time_dt)
   - 便于直接查询和展示,无需应用层转换

4. 审计字段:
   - 每张表均维护 created_at 和 updated_at
   - MySQL 使用 DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

5. 索引优化:
   - 主键、唯一约束、查询索引根据实际访问模式重新设计
   - 新增复合索引、排序索引、全文检索索引

6. 数据采集脚本更新:
   - 覆盖所有新增表和字段的数据采集
   - skill_version 升级至 1.0.4
   - 有声书/专辑数据采集 (shelf_albums)
   - 偏好出版社/版权方/书籍卡片采集
   - 勋章、年度报告数据采集

7. 后端适配:
   - 移除旧版 ensure_tables 动态建表逻辑
   - 所有按需 API INSERT 语句适配新表结构
   - 搜索结果入库新增 search_sessions 会话表
   - 推荐书籍入库新增 batch_id 批次标识
2026-07-17 10:37:07 +08:00
2026-07-17 09:59:37 +08:00
2026-07-17 09:59:37 +08:00

微信读书数据展示网站

基于微信读书 API 的个人读书数据展示网站,数据存储在本地 SQLite 数据库中。

项目结构

.
├── fetch_data.py          # 数据采集脚本(从微信读书 API 拉取数据到 SQLite)
├── app.py                 # Flask 后端服务
├── weread.db              # SQLite 数据库(运行 fetch_data.py 后生成)
├── requirements.txt       # Python 依赖
├── templates/
│   └── index.html         # 前端页面
└── static/
    ├── css/style.css      # 样式文件
    └── js/app.js          # 前端逻辑

快速开始

1. 设置环境变量

export WEREAD_API_KEY=wrk-xxxxxxxx  # 你的微信读书 API Key

2. 安装依赖

pip install -r requirements.txt

3. 采集数据

python fetch_data.py

将拉取书架、阅读统计、笔记等数据并存入 weread.db。

4. 启动网站

python app.py

访问 http://127.0.0.1:8080 即可查看读书数据展示。

功能模块

模块 说明
总览仪表盘 累计阅读时长、阅读天数、书架藏书数、笔记总数
年度趋势图 各年度阅读时长柱状图
时段分布 24 小时阅读时段分布折线图
偏好分类 阅读分类占比饼图
偏好作者 阅读最多的作者排行
读书排行 阅读时长最久的书籍 TOP 20
书架 全部书架书籍展示,支持分类筛选和已读完筛选
笔记概览 有笔记的书籍及划线/想法/书签统计

数据库表结构

表名 说明
books 书架书籍信息
reading_stats 阅读统计概要(overall/annually)
read_times 阅读时长时间序列
read_longest 阅读时长最久的书籍
prefer_categories 偏好分类
prefer_authors 偏好作者
prefer_time 24 小时阅读时段分布
notebooks 笔记本概览
read_stat_items 阅读统计摘要项
archives 书单/归档

更新数据

随时重新运行 python fetch_data.py 即可刷新本地数据。

S
Description
No description provided
Readme
1.6 MiB
0 Stars 1 Watchers 0 Forks
Languages
Python 42.4%
JavaScript 25.8%
CSS 24.4%
HTML 5.2%
Shell 2.2%