mirror of
https://github.com/KingHWJ/WeReadBoard.git
synced 2026-11-03 18:24:58 +08:00
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
This commit is contained in:
1 parent
1e9c537b86
commit
ebfa3a1852
6 files changed
+1660
-4
No files matched your search
+120
@@ -180,6 +180,126 @@ def init_db(db_path):
|
||||
)
|
||||
""")
|
||||
|
||||
# ===== 按需获取的详细数据表 =====
|
||||
|
||||
# 书籍详细信息(来自 /book/info)
|
||||
c.execute("""
|
||||
CREATE TABLE IF NOT EXISTS book_details (
|
||||
book_id TEXT PRIMARY KEY,
|
||||
title TEXT,
|
||||
author TEXT,
|
||||
translator TEXT,
|
||||
cover TEXT,
|
||||
intro TEXT,
|
||||
category TEXT,
|
||||
publisher TEXT,
|
||||
publish_time TEXT,
|
||||
isbn TEXT,
|
||||
word_count INTEGER,
|
||||
new_rating REAL,
|
||||
new_rating_count INTEGER,
|
||||
fetched_at INTEGER
|
||||
)
|
||||
""")
|
||||
|
||||
# 阅读进度(来自 /book/getprogress)
|
||||
c.execute("""
|
||||
CREATE TABLE IF NOT EXISTS book_progress (
|
||||
book_id TEXT PRIMARY KEY,
|
||||
progress INTEGER,
|
||||
chapter_uid INTEGER,
|
||||
chapter_offset INTEGER,
|
||||
update_time INTEGER,
|
||||
record_reading_time INTEGER,
|
||||
finish_time INTEGER,
|
||||
is_start_reading INTEGER,
|
||||
fetched_at INTEGER
|
||||
)
|
||||
""")
|
||||
|
||||
# 划线内容(来自 /book/bookmarklist)
|
||||
c.execute("""
|
||||
CREATE TABLE IF NOT EXISTS book_highlights (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
book_id TEXT,
|
||||
bookmark_id TEXT,
|
||||
chapter_uid INTEGER,
|
||||
mark_text TEXT,
|
||||
create_time INTEGER,
|
||||
type INTEGER,
|
||||
range_text TEXT,
|
||||
color_style INTEGER,
|
||||
fetched_at INTEGER
|
||||
)
|
||||
""")
|
||||
|
||||
# 章节信息(来自 /book/bookmarklist 的 chapters)
|
||||
c.execute("""
|
||||
CREATE TABLE IF NOT EXISTS book_chapters (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
book_id TEXT,
|
||||
chapter_uid INTEGER,
|
||||
chapter_idx INTEGER,
|
||||
title TEXT,
|
||||
UNIQUE(book_id, chapter_uid)
|
||||
)
|
||||
""")
|
||||
|
||||
# 个人想法/点评(来自 /review/list/mine)
|
||||
c.execute("""
|
||||
CREATE TABLE IF NOT EXISTS book_reviews (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
book_id TEXT,
|
||||
review_id TEXT,
|
||||
content TEXT,
|
||||
create_time INTEGER,
|
||||
star INTEGER,
|
||||
chapter_name TEXT,
|
||||
is_finish INTEGER,
|
||||
fetched_at INTEGER
|
||||
)
|
||||
""")
|
||||
|
||||
# 推荐书籍(来自 /book/recommend)
|
||||
c.execute("""
|
||||
CREATE TABLE IF NOT EXISTS recommended_books (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
book_id TEXT,
|
||||
title TEXT,
|
||||
author TEXT,
|
||||
cover TEXT,
|
||||
intro TEXT,
|
||||
category TEXT,
|
||||
reason TEXT,
|
||||
reading_count INTEGER,
|
||||
new_rating REAL,
|
||||
new_rating_count INTEGER,
|
||||
rating_title TEXT,
|
||||
fetched_at INTEGER
|
||||
)
|
||||
""")
|
||||
|
||||
# 搜索结果(来自 /store/search)
|
||||
c.execute("""
|
||||
CREATE TABLE IF NOT EXISTS search_results (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
keyword TEXT,
|
||||
book_id TEXT,
|
||||
title TEXT,
|
||||
author TEXT,
|
||||
cover TEXT,
|
||||
intro TEXT,
|
||||
publisher TEXT,
|
||||
category TEXT,
|
||||
reading_count INTEGER,
|
||||
new_rating REAL,
|
||||
new_rating_count INTEGER,
|
||||
rating_title TEXT,
|
||||
search_idx INTEGER,
|
||||
fetched_at INTEGER
|
||||
)
|
||||
""")
|
||||
|
||||
conn.commit()
|
||||
return conn
|
||||
|
||||
|
||||
Reference in new issue
Block a user