Releases: me1dlinger/hushreader
v1.3.3
1.3.3 - 2026-06-19
Added
- 自动检测系统深浅色模式:在插件加载时,根据系统深浅色模式自动切换主题,支持手动切换主题
- 资源管理器打开文件位置:在书籍右键菜单新增"打开文件位置"选项,使用ztools.shellShowItemInFolder()
- 隐阅定时器:新增设置项,打开定时器后可设置一个时长,隐阅时间到达之后自动关闭隐阅窗口并Toast提示用户
- 备份和恢复所有阅读进度与配置:备份和恢复所有阅读进度与配置。插件设置导出,所有书籍的元数据导出。实现设置导入,书籍数据导入
- 多配置切换:实现多配置切换、添加和删除(最少保留一个配置),导入的配置自动添加为新配置
Changed
- 分离配置和书籍的导入导出:将配置和书籍的导入导出分离,配置导入导出时仅和配置相关,书籍导入导出时仅和书籍数据相关
- 定时器相关通知:在隐阅界面弹出相应通知
Fixed
- 配置无法导入的问题:修复配置无法导入的问题
- 优化代码 :减少不必要的性能开销
- 系统主题自动切换:修复系统主题发生变化时,systemDark 和 effectiveTheme 无法自动更新
- 优化书籍导入流程:在导入书籍的循环中,每次调用 bookStore.addBook(book) 都会触发一次同步的 save() 写入操作(保存到 dbStorage 或 localStorage)。如果用户导入的书籍数量较多,会产生大量连续的同步 I/O 写入
- JSON配置导入漏洞:如果导入的备份 JSON 文件被恶意篡改,包含 proto 或 constructor 等属性,可能会导致原型链污染(Prototype Pollution)漏洞
v1.3.2
1.3.2 - 2026-06-18
Added
-
拖拽导入书籍:将书籍文件拖入书架界面时,显示拖拽悬停覆盖层提示"导入书籍",松手后弹出确认弹窗列出待导入文件,确认后解析书籍并保存元数据,取消则放弃导入
-
快捷文件导入:支持通过
hushreader-import命令从 ztools 快捷导入书籍文件,onPluginEnter触发时自动解析并添加到书架 -
TXT 章节正则提示气泡:设置页"TXT 章节识别正则"标签旁新增 ⓘ 提示图标,悬停/聚焦时显示默认规则说明
-
重载元数据:右键菜单新增"重载元数据"选项,重新解析书籍的章节、封面、标题、作者等信息并更新,同时清除自定义封面
-
恢复封面:右键菜单新增"恢复封面"选项,EPUB/MOBI 删除自定义封面并重新从文件加载封面,TXT 删除自定义封面恢复为纯色封面
-
多选模式:书架头部新增多选按钮,点击进入多选模式,可逐个勾选书籍或通过分类栏"全选"按钮批量选中当前分类下所有书籍
-
批量操作:多选模式下底部显示操作栏,支持批量重载元数据和批量删除,批量删除前弹出确认弹窗
-
书籍信息窗口:右键菜单新增"书籍信息"选项,打开信息窗口展示封面与标题作者、简介、分类、阅读信息(导入/更新/首次阅读/最近阅读时间、阅读时长、阅读速度);支持编辑模式可上传自定义封面、编辑标题/作者/简介、选择已有分类或新建分类
-
EPUB/MOBI 简介解析:导入和重载元数据时从 EPUB metadata.description 和 MOBI EXTH record 101 提取书籍简介
-
阅读进度追踪:保存阅读进度时记录首次阅读时间(firstReadAt)、累计阅读时长(readingTimeMs)、阅读速度(readingSpeed)
-
updatedAt 时间戳:书籍新增时设置 updatedAt = addedAt,编辑元数据或上传封面时更新 updatedAt,分类变更不更新 updatedAt
Fixed
- 修复拖拽文件时的路径保存错误:修复了在拖拽文件导入书籍时,路径保存错误导致相同书籍可以重复导入的问题
- 阅读时长与速度统计逻辑修复:修复了新会话第一页阅读时间丢失和闲置/关闭期间时间被错误计入的问题,确保阅读时长和速度统计准确。
- MOBI 封面缓存失效与重复解析性能问题:修复了每次打开书架时,所有 MOBI 书籍都会被重新解析一次的问题。
- 文件读取失败时导致元数据被静默清空:修复了在文件读取失败时,元数据被静默清空的问题,确保元数据完整。
- 修复书籍信息编辑时分类交互缺陷:修复了在书籍信息编辑时,分类交互存在的缺陷。
v1.3.1
1.3.1 - 2026-06-17
Added
- 窗口大小锁定开关:功能设置中新增"窗口大小锁定"开关,开启后窗口不允许拉伸调整大小
Fixed
- 窗口可拖动开关生效:修复关闭"窗口可拖动"后窗口仍可拖动的问题,关闭后拖动区域 cursor 变为 default
- ThemeToggle 主题未随配置加载更新:改用
watch+immediate: true替代直接调用applyTheme(),确保配置异步加载后主题也能正确应用 - 纯色封面时误清章节缓存:开启"显示纯色封面"时仅清除封面和自定义封面缓存,不再误删章节缓存
- MOBI 导入 coverUrl 未赋值:MOBI 解析成功后将 coverUrl 赋值给 coverImage
- MOBI recordOffsets 边界检查:增加
firstRecordOffset + 16 > data.length检查,防止格式损坏文件导致越界 - MOBI firstImageIndex 为 0xffffffff 时封面索引错误:在 extractCoverUrl 中判断 firstImageIndex 无效值,避免错误计算封面记录索引
- HTML 实体解码 fromCharCode → fromCodePoint:
&#xxx;和&#xHH;解码改用String.fromCodePoint,parseInt 增加 radix 参数,支持 BMP 外字符 - 纯色封面关闭后 MOBI 封面未恢复:新增
resolveMobiCovers()函数,关闭纯色封面时同步恢复 MOBI 书籍封面(此前仅恢复 EPUB 封面)
Removed
- 固定行数分页模式:移除分页模式中的"固定行数"选项,统一使用自适应模式
1.3.0 - 2026-06-17
Added
- MOBI 格式支持:新增 MOBI 电子书格式的解析和阅读功能
- 主题模式切换:新增"主题模式"切换
Changed
- 封面和章节内容缓存迁移至 ztools.db 数据库:封面和章节内容不再每次实时解析,改为存到 ztools.db 数据库,提升书架加载和打开书籍的速度
- 封面图(coverImage/customCoverImage)存入数据库文档
cover_{bookId}/custom_cover_{bookId},书架加载时从数据库恢复 - 章节内容存入数据库文档
chapters_{bookId},打开书籍时优先从数据库加载,文件修改后自动重新解析并更新缓存 - 删除书籍时同步清理数据库中对应的封面和章节文档
- 开启"显示纯色封面"时清除数据库中的封面数据
- dbStorage 中仅保留轻量数据:书籍列表(不含封面)、阅读进度、配置
- 封面图(coverImage/customCoverImage)存入数据库文档
v1.2.0
Fixed
- 移除大体积缓存,改为实时解析:EPUB 封面和章节内容不再持久化到 dbStorage,改为每次需要时从文件实时解析,彻底解决存储空间溢出导致书籍丢失的问题
- 封面图(coverImage/customCoverImage)仅在内存中保留,不写入存储;书架加载时异步从 EPUB 文件解析封面
- 章节内容不再缓存到
hushreader_chapters_*,每次打开书籍时实时解析 - 移除
hushreader_cover_*/hushreader_custom_cover_*/hushreader_chapters_*等存储 key 的读写 - dbStorage 中仅保留轻量数据:书籍列表(不含封面)、阅读进度、配置
Added
- 显示纯色封面选项:其他设置中新增"显示纯色封面"开关,开启后 EPUB 不再解析封面图片,所有书籍使用纯色背景封面,节省性能消耗
v1.1.1
Fixed
- 窗口拖动/拉伸卡顿:修复移动和拉伸阅读窗口时严重卡顿的问题
v1.1.0
Fixed
- 设置编辑触发主窗口隐藏:修复在设置界面编辑背景颜色输入框或快捷键时,每次输入/删除字符都会触发沉浸式阅读窗口
show(),导致主窗口被推到后面的问题 - 重复 click 事件监听器:移除 hushreader.html 中重复的
document.click监听器,避免上下文菜单关闭逻辑被执行两次 - jump-percent 命令类型错误:将
jump-percent命令处理从字符串分支移至对象分支,修复 TypeScript 类型收窄导致的编译错误 - TXT 目录误解析:自动检测并跳过文件开头的目录区域,避免目录中的章节标题被误解析为章节分割点,导致跳转只在目录内跳转
- 自动翻页主窗口隐藏:修复自动翻页时沉浸式阅读窗口重复调用
show()抢夺焦点,导致主窗口被隐藏无法操作的问题 - 百分比进度精度:阅读百分比从整数改为精确到小数点后两位(如 11.45%)
- 字体设置不生效:修复字体选择和自定义字体在沉浸式阅读窗口中不生效的问题——
fontFamily未传递至阅读窗口且阅读窗口使用硬编码字体 - 删除书籍数据残留:修复删除书籍后未清除
dbStorage中对应章节缓存数据的问题
Changed
- 章节列表高亮当前进度:打开章节列表时自动高亮当前阅读进度所在章节,并滚动到该章节位置
- 书籍右键菜单位置:书籍卡片右键菜单不再跟随鼠标,固定显示
Added
- 鼠标移出隐藏三模式:鼠标移出隐藏从布尔开关扩展为下拉三选一——不隐藏 / 快速隐藏但显示进度 / 快速隐藏且不显示进度
- 鼠标移入显示延迟:开启快速隐藏后,可设置鼠标移入后延迟多少秒才显示阅读窗口(0-10秒)
- 沉浸式阅读窗口右键菜单:在进度显示组件上右键可弹出菜单,支持关闭阅读窗口、显示主窗口、停止/开启自动翻页
- 百分比进度编辑跳转:百分比进度模式下,左键点击进度组件进入编辑模式,输入 0-100 数字后按 Enter 或点击外部区域跳转到对应进度,支持 ArrowUp/Down 微调(Shift 步进 10),Escape 取消
- 书架"最近阅读"排序:书架排序栏新增"最近阅读"选项,按最后阅读时间降序排列,未读过的书排在最后
v1.0.0
第一个版本,欢迎反馈问题