Skip to content

Releases: z1HwanG/RSS-Reader

v0.7.1

Choose a tag to compare

@z1HwanG z1HwanG released this 13 Sep 03:13

[0.7.1] - 2026-09-13

新增 / Added

  • 订阅源右键删除:抽屉里右键订阅源即可删除(带确认框,样式与设置里的批量删除一致)。
    Feeds can now be deleted from the drawer's context menu (with a confirmation dialog).
  • 设置面板自绘下拉:原生 <select> 换成自绘的 F2Select,弹出列表跟随应用深浅色
    而不是 Windows 系统(暗色应用在浅色系统上不再弹出白色列表)。
    Native <select> replaced by a custom dropdown that follows the app theme instead of the OS.
  • 阅读工具栏翻译控件成组:源 / 译 / 模型 / 翻译按钮打包换行(不再把「源」单独留在
    行尾),源 / 译 / 模型标签收进按钮内部,组前加分隔线。
    Toolbar translate controls now wrap as a group, with 源/译/模型 labels inside the buttons.

修复 / Fixed

  • 「获取原文」对 SPA 壳页失效:机核这类只对爬虫 UA 做服务端渲染的站点,检测到壳页后
    自动换爬虫 UA 重抓。
    SPA shell pages (JS-rendered bodies) now trigger a crawler-UA retry.
  • IT之家抓全文后图片不显示:懒加载占位小图(t.png 等)不再盖过 data-original 里的真图。
    ithome images broken after fetching full text: lazy-load placeholders are now detected and
    replaced by the real data-* URLs.
  • wiki.eryajf.net 获取原文失败:VuePress 的 sidebar-open 状态类被误判为站点外壳、
    整页正文被清空——去噪加体积护栏(占页面文字大半的容器不再按命名删除);
    并为该站把正文约束到 .content-wrapper
    Extraction failed on wiki.eryajf.net: a sidebar-open state class wiped the page; noise
    removal now skips containers holding most of the page text, and the site adapter scopes
    extraction to .content-wrapper.
  • 阅读页自绘下拉菜单宽度过宽、菜单项变卡片:工具栏按钮样式泄漏进菜单项
    inline-flex 让菜单固有宽度翻倍、每项多了底色与描边),已加覆盖恢复。
    Dropdown menus in the article toolbar inherited toolbar button styles (double width,
    card-like items); fixed with explicit overrides.
  • 列表缩略图兜底:订阅源元数据没给图时,取正文第一张 <img>(IT之家 / 机核 /
    南方周末的列表缩略图全靠这个)。
    List thumbnails fall back to the first <img> in the entry body when the feed has none.

变更 / Changed

  • 移除阅读页文末「订阅源附带的摘要」折叠块:摘要仍照常入库,仅阅读页不再展示。
    The collapsible feed-summary block at the end of the article view was removed
    (summaries are still stored, just no longer shown there).

RSS Reader 0.7.0

Choose a tag to compare

@z1HwanG z1HwanG released this 12 Sep 22:23
  • 2026-09-12

新增 / Added

  • 正文与元数据分离存储(schema v5,自动迁移):state.json 只存元数据 + 300 字纯文本预览,
    正文按 articles/<feed_id>/<article_id> 落盘、打开文章时按需读取。
    启动加载与每次保存不再序列化几十 MB 正文。
    Article bodies are now stored separately from metadata (auto-migrated on first launch);
    startup and saving only handle lightweight metadata.
  • 翻译 API Key 改存系统凭据库(Windows 凭据管理器 / macOS 钥匙串),不再明文落盘;
    旧配置首次保存时自动迁移。
    Translation API keys moved to the OS keyring.

安全 / Security

  • SSRF 防护:订阅源 / 正文 / 图片抓取拒绝内网与回环地址(连接层校验 DNS 解析结果,防 DNS rebinding)。
    Outbound fetches reject private / loopback targets, validated at connection time.
  • 文件命令路径门禁:备份还原、OPML 导入导出只允许用户文档类型的扩展名,并拒绝访问应用数据目录。
    File import/export commands are restricted to document extensions and denied in the app data dir.
  • 正文 HTML 消毒补全:剥除行内事件属性、javascript: 类 URL 与 iframe srcdoc
    iframe 不再授予同源身份(去掉 allow-same-origin)。
    Article HTML sanitisation completed; iframes no longer get same-origin identity.
  • CSP 收紧frame-src 仅 https,显式 script-src 'self'
    Tightened CSP.

性能 / Performance

  • 状态读写移入阻塞线程池,序列化改 to_vec;发布构建 opt-level 提至 3。
    State IO moved off the async runtime; release builds now use opt-level 3.

变更 / Changed

  • 代码结构:Rust 命令按职能拆分为 8 个子模块;设置面板按分区拆为独立组件。
    Codebase re-organised: Rust commands split into focused modules; settings dialog split by section.
  • 搜索范围调整:正文全文检索改为「标题 + 正文预览 + 摘要 + 作者 + 标签」。
    Search now covers title + body preview + summary + author + tags (full-text search dropped).

RSS Reader 0.6.0

Choose a tag to compare

@z1HwanG z1HwanG released this 12 Sep 01:42

[0.6.0] - 2026-09-12

新增 / Added

  • 翻译:多服务商网关(大模型 + 内置微软 / 谷歌 / DeepL / 腾讯翻译)、正文逐段对照翻译、
    划词翻译浮窗。
    Translation with multiple gateways, paragraph-by-paragraph bilingual rendering and a selection popup.
  • 翻译流式输出与「关闭思考」开关:译文边生成边上屏;推理模型可关掉思考模式提速。
    Streaming translations, plus a switch to disable thinking mode on reasoning models.
  • 翻译结果缓存:按「文本 + 语言」本地缓存,整篇与划词共用。
    Translation results are cached locally.
  • 订阅源批量清理:一键选中「更新失败」或「N 天未更新」(默认 365 天)的订阅源后批量删除。
    One-click selection of refresh-failed and stale feeds for bulk deletion.

变更 / Changed

  • 移除底部附件区:媒体改为在正文里原位播放。
    The bottom attachments area was removed; media now plays in place inside the body.
  • 正文 iframe 不再一律删除:认不出平台的 iframe(音频播放器多为此类)保留并加 sandbox
    Iframes are no longer stripped: unrecognised ones (audio players) are kept and sandboxed.

修复 / Fixed

  • 视频播放器跑到文末、并与附件区重复
    Video players no longer land at the article's end or duplicate the attachments area.
  • 「获取原文」对「正文只有一个播放器」的帖子静默失效
    "Fetch full text" silently failed for player-only posts.
  • 划词按钮压住正文、悬停变镂空
    The selection chip no longer covers the text or turns see-through on hover.
  • 「更新失败」按钮一直是灰的
    The "refresh failed" button was permanently grey.

文档 / Documentation

  • README 补充翻译与订阅源清理,并更正过时的音视频说明。
    README updated for translation and feed cleanup.