What’s New

legado 3.26072122

3.26072122

legado_app_3.26072122

Added
  • Add token-protected pure JavaScript single-file book source save interface to Web API with unified protection for book source writing, searching and debugging
  • Include CryptoJS 4.2.0 compatibility library providing MD5, SHA, HMAC, Base64, AES capabilities for rules and pure JS book sources, using system secure random number generation for salt
  • Add JS indicator to book source management list for quick distinction of pure JavaScript single-file book sources
Changed
  • Restore Jsoup chaining call compatibility for java.getElements(...) return results in JavaScript rules, supporting legacy methods like attr, text, html
  • Restore compatibility for with scope, E4X XML descendant selection, and nested eval Java method calls in legacy JavaScript sources
  • Change Brotli response to use underlying streaming decoder directly, removing unnecessary OkHttp wrapper dependencies while maintaining decompression and resource cleanup behavior
  • Add compatibility for Cronet 151 conditional reference of Private Compute service for future Android versions, fixing compilation failure from missing classes in Release R8
  • Tighten R8 retention scope for video player to only preserve runtime reflection constructors and clean up invalid Media3 private field rules, reducing install package size
  • Streamline R8 retention rules for code editor, delegating reflection model retention to TextMate dependency and removing unused implementations, reducing install package size
  • Streamline unused Kotlin built-in metadata in current runtime, reducing install package size
  • Compress TextMate syntax and theme configuration while preserving JSON structure, reducing install package size
  • Streamline code highlight resources in built-in help pages, retaining only JavaScript, Java, HTML/XML and plain text languages used in documentation, reducing install package size
  • Optimize invalid book cache cleanup by querying only necessary fields in normal cleanup and reading full comic data only when comic retention policy is enabled
  • Optimize reading background preview loading by directly using image cache to read built-in resources, avoiding synchronous copying of complete image data during list binding
Fixed
  • Fix Rhino stack overflow caused by reverse reading of login information during dynamic login form initialization in scripts
  • Fix JavaScript single-file book source parsing being treated as normal failure when cancelled, preventing continued error handling after leaving edit or import workflow
  • Fix Cronet update task misreading string attributes when parsing ABI filenames, restoring version download, verification and metadata generation
  • Fix recursive reload triggered when closing old parser during local MOBI and PDF file opening, causing files to hang or fail to open
  • Close input stream promptly after checking local book file existence to prevent accumulation of file handles when entering reading page repeatedly
  • Fix RSS reading record title missing preventing page from loading, adding compatibility for cases where corresponding subscription source is deleted
  • Fix single RSS subscription source JSON unable to reimport

2026/07/20

  • 修复动态登录表单初始化时脚本反向读取登录信息导致 Rhino 递归溢出的问题
  • 恢复 JavaScript 规则中 java.getElements(...) 返回结果的 Jsoup 链式调用兼容,支持继续使用 attrtexthtml 等旧式写法
  • 恢复旧版 JavaScript 源对 with 作用域、E4X XML 后代选择和嵌套 eval Java 方法调用的兼容
  • Web API 新增带令牌保护的纯 JavaScript 单文件书源保存接口,统一保护书源写入、搜索和调试,令牌不再持久化,并加强正文 HTML、接口响应、请求大小、幂等保存和相似 URL 状态隔离
  • Brotli 响应改为直接使用底层流式解码器,移除不再需要的 OkHttp 包装依赖并保持 br 解压与资源关闭行为
  • 修复 JavaScript 单文件书源解析被取消时仍按普通失败处理的问题,避免离开编辑或导入流程后继续错误收尾
  • 兼容 Cronet 151 对 Android 未来版本 Private Compute 服务的条件引用,修复 Release R8 缺失类导致的编译失败
  • 修复 Cronet 更新任务解析 ABI 文件名时误读字符串属性,恢复版本下载、校验与元数据生成
  • 修复本地 MOBI 与 PDF 打开时关闭旧解析器触发递归重载,导致文件一直加载或无法打开的问题
  • 检查本地书籍文件是否存在后及时关闭输入流,避免重复进入阅读页积累文件句柄
  • 收紧视频播放器的 R8 保留范围,仅保留运行时反射构造器并清理失效的 Media3 私有字段规则,减少安装包体积
  • 精简代码编辑器的 R8 保留规则,交由 TextMate 依赖保留反射模型并移除未使用实现,减少安装包体积
  • 精简当前运行时未使用的 Kotlin 内置元数据,减少安装包体积
  • 压缩 TextMate 语法与主题配置,在保持 JSON 结构不变的前提下减少安装包体积
  • 精简内置帮助页代码高亮资源,仅保留文档使用的 JavaScript、Java、HTML/XML 与纯文本语言,减少安装包体积
  • 优化无效书籍缓存清理,普通清理仅查询必要字段,并仅在启用漫画保留策略时读取完整漫画数据
  • 优化阅读背景预览加载,直接交由图片缓存读取内置资源,避免列表绑定时同步复制完整图片数据
  • 内置 CryptoJS 4.2.0 兼容库,为规则与纯 JS 书源提供 MD5、SHA、HMAC、Base64、AES 等能力,并使用系统安全随机数生成随机盐
  • 书源管理列表增加 JS 标识,便于快速区分纯 JavaScript 单文件书源
  • 优化规则大数据目录清理,批量校验书籍与 RSS 关联并在删除前复核,避免残留无效空目录
  • 升级 JavaScript 执行引擎,兼容 for (const ... in ...) 与块级 const,修复部分 JS 书源导入或保存时报语法错误的问题
  • 优化 RSS 源导入预览的批量匹配,并避免界面重建时重复加载导致状态错位
  • 修复 RSS 阅读记录标题缺失时页面无法加载,并兼容对应订阅源已删除的情况
  • 优化替换规则导入预览时的数据库查询,批量匹配并保持原导入顺序
  • 优化选中书源导出时的数据库查询,批量解析并保持原选择顺序
  • 修复单个 RSS 订阅源 JSON 无法重新导入的问题
  • 修复换源目录加载与 WebDAV 备份查询吞掉协程取消信号的问题
  • 修复在线导入排版配置时再次导入重复添加、空列表未写入或成功提示早于持久化完成的问题
  • 修复部分 Content Provider 或特定长度的 JSON 文件识别失败问题
View original