admin
7c918140b3
feat: add thoughts detail page, tab navigation, vertical ranking, back-to-top
...
1. Thoughts detail page: standalone full-page view replacing modal,
classifies content into 3 categories (highlights/book reviews/thoughts)
with filter tabs, visual badges, and chapter grouping
2. Tab navigation: sections converted from vertical scroll to horizontal
tab switching with lazy-loaded charts
3. Reading ranking: changed from card grid to vertical list with smaller
covers matching shelf size, gold/silver/bronze rank badges
4. Back-to-top button: floating button appears after scrolling 400px
5. Book detail modal: added 'View Thoughts' button to navigate to
thoughts page
2026-07-17 11:30:24 +08:00
admin
ae40ed93d6
feat: add dark/light theme toggle, fix cover display, refine overall style
...
- Add theme toggle button in navbar with sun/moon icons
- Define [data-theme=dark] CSS variables (warm dark palette)
- Persist theme preference in localStorage
- Follow system prefers-color-scheme on first visit
- Anti-flash inline script sets theme before render
- ECharts charts re-render with theme-aware colors on toggle
- Fix reading ranking covers: aspect-ratio 3/4 instead of fixed height
- Fix discover covers: aspect-ratio 3/4 for proper portrait display
- Replace purple hero gradient with warm brown/amber matching accent
- All hardcoded colors replaced with CSS variables
- Smooth 0.3s transitions on all theme-dependent elements
- Update footer text from SQLite to MySQL
2026-07-17 11:13:11 +08:00
admin
507b9c5704
feat: switch to MySQL, add Chinese comments, health check, and technical docs
...
1. 数据源切换至 MySQL:
- app.py 从 SQLite 切换到 PyMySQL,所有 API 读取 MySQL weread_dashboard 数据库
- 新增 db_required 装饰器统一管理数据库连接和异常处理
- 新增 /api/health 健康检查接口,检测 MySQL 连接状态
- MySQL 连接失败时返回 HTTP 503 和告警信息
- 修复 fetched_at 字段 Unix 时间戳到 MySQL TIMESTAMP 的兼容问题
2. 前端数据库连接告警:
- 页面加载时优先调用 /api/health 检查 MySQL 连接
- 连接失败时显示固定告警横幅,阻止后续数据加载
- CSS 告警横幅样式(黄色背景、下滑动画)
3. 代码中文注释:
- app.py:所有函数、API 接口、工具函数添加完整中文文档注释
- fetch_data.py:所有 SQLite 建表语句添加列级中文注释
- migrate_to_mysql.py:保留已有中文注释
4. 技术文档与元数据文档:
- docs/TECHNICAL_DOC.md:项目概述、系统架构、API 设计、部署指南
- docs/METADATA_DOC.md:18 张表完整字段说明、索引、表关系、数据类型规范
2026-07-17 10:26:07 +08:00
admin
ebfa3a1852
feat: add book detail, notes detail, recommendation page and MySQL schema
...
新增功能:
- 书籍详情弹窗:点击书架书籍展示详细信息(书名、作者、出版社、ISBN、字数、评分、简介、阅读进度),数据实时从微信读书 API 获取并入库
- 笔记详情弹窗:点击有笔记的书展示划线和想法/点评,按章节分组展示,数据实时获取并入库
- 推荐页面:个性化推荐(为你推荐)+ 关键词搜索书籍,数据从微信读书 API 获取并入库
- 修复 Flask 中文 URL 参数编码问题
后端新增 API:
- GET /api/book/detail?book_id=xxx — 书籍详情
- GET /api/book/notes?book_id=xxx — 笔记详情(划线+想法)
- GET /api/recommend?maxIdx=0 — 个性化推荐
- GET /api/search?keyword=xxx — 搜索书籍
数据库新增表:
- book_details, book_progress, book_highlights, book_chapters
- book_reviews, recommended_books, search_results
MySQL 版本建表语句 schema_mysql.sql:
- 18 张表的完整 DDL,含索引、字符集 utf8mb4、字段注释
- 适用于后续从 SQLite 迁移至 MySQL
2026-07-17 10:07:05 +08:00
admin
1e9c537b86
feat: init weread data dashboard
...
- 数据采集脚本 fetch_data.py:从微信读书 API 拉取书架、阅读统计、笔记数据存入 SQLite
- Flask 后端 app.py:提供 8 个 API 接口(总览、年度趋势、读书排行、偏好分类、偏好作者、时段分布、书架、笔记)
- 前端页面:ECharts 图表(年度趋势、时段分布、分类饼图、作者排行)、书架网格、笔记概览
- 数据规模:404 本书架、339 小时阅读、304 天阅读、1709 条笔记
2026-07-17 09:59:37 +08:00