Skip to content

Releases: me1dlinger/hushreader

v1.3.3

19 Jun 09:43

Choose a tag to compare

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

18 Jun 09:35

Choose a tag to compare

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

17 Jun 10:22

Choose a tag to compare

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 中仅保留轻量数据:书籍列表(不含封面)、阅读进度、配置

v1.2.0

16 Jun 13:57

Choose a tag to compare

Fixed

  • 移除大体积缓存,改为实时解析:EPUB 封面和章节内容不再持久化到 dbStorage,改为每次需要时从文件实时解析,彻底解决存储空间溢出导致书籍丢失的问题
    • 封面图(coverImage/customCoverImage)仅在内存中保留,不写入存储;书架加载时异步从 EPUB 文件解析封面
    • 章节内容不再缓存到 hushreader_chapters_*,每次打开书籍时实时解析
    • 移除 hushreader_cover_* / hushreader_custom_cover_* / hushreader_chapters_* 等存储 key 的读写
    • dbStorage 中仅保留轻量数据:书籍列表(不含封面)、阅读进度、配置

Added

  • 显示纯色封面选项:其他设置中新增"显示纯色封面"开关,开启后 EPUB 不再解析封面图片,所有书籍使用纯色背景封面,节省性能消耗

v1.1.1

16 Jun 12:46

Choose a tag to compare

Fixed

  • 窗口拖动/拉伸卡顿:修复移动和拉伸阅读窗口时严重卡顿的问题

v1.1.0

16 Jun 12:07

Choose a tag to compare

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

16 Jun 08:23

Choose a tag to compare

第一个版本,欢迎反馈问题