Folo 桌面端 v0.6.1 版本解析:Actions 导入导出、个人主页资料档案与视频时长规则条件

发布时间:2026/9/10 10:17:48
Folo 桌面端 v0.6.1 版本解析:Actions 导入导出、个人主页资料档案与视频时长规则条件 Folo 桌面端 v0.6.1 版本解析Actions 导入导出、个人主页资料档案与视频时长规则条件【免费下载链接】follow Folo is the AI RSS Reader项目地址: https://gitcode.com/GitHub_Trending/fol/follow本文以 FoloAI RSS Reader桌面端 v0.6.1 发布说明为骨架结合仓库源码packages/internal/store/src/modules/action、packages/internal/shared/src/auth.ts等逐项拆解该版本引入的 Actions 导入/导出能力、个人主页资料字段扩展、以视频时长为代表的新增 Action 规则条件以及数据库迁移恢复等稳定性修复背后的实现原理。读完本文你可以掌握 Folo Actions 规则的数据结构与迁移格式、导入校验规则并理解个人资料字段与媒体时长过滤条件的底层建模方式。版本背景与概要v0.6.1 是 Folo 桌面端在 Actions自动规则能力快速演进期间的一次重要发布。从内容分布看它同时覆盖三类工作Shiny New Things新能力Actions 导入/导出、个人主页补充 bio/website/social links、支持上传头像、视频时长作为 Action 条件Improvements体验优化个人主页、Actions 页、RSSHub 页视觉重构条目工具默认命令简化统一本地数据库试验性灰度上线等No Longer Broken缺陷修复数据库迁移失败后的自动恢复、macOS Docker 构建未读数清零、TTS 失效等。下文按功能落地 → 界面优化 → 稳定性修复 → 试验性架构演进的顺序展开重点给出可在源码中验证的依据路径。Actions 规则导入与导出从 UI 到存储层的完整链路导出/导入的源码实现v0.6.1 最核心的新能力是 Actions 的导入与导出。它的底层逻辑位于follow/store的 store.ts关键方法为exportRules(): stringstore.ts从useActionStore.getState().rules读取当前全部规则仅抽取规则的name、condition、result三个字段组装为一个带元信息的 JSON 字符串返回importRules(jsonData)store.ts对传入 JSON 做逐层结构校验通过后整体替换本地规则并置isDirty true。实际导出的 JSON 结构由exportRules源码确认为{ version: 1.0, exportDate: 2025-01-01T00:00:00.000Z, rules: [ { name: My Action, condition: [], result: {} } ] }exportDate使用 ISO 8601 格式new Date().toISOString()。导入时只消费rules数组因此该结构同时承担了版本元信息与可迁移数据的职责。导入校验规则从 importRules 的实现可以看到三层校验这是把可复制迁移的规则集做成可靠特性的关键顶层必须有rules且为数组否则返回Invalid JSON structure: missing or invalid rules array逐条校验每条规则name必须是字符串、condition必须是数组、result必须是对象否则返回对应的Invalid rule: ...错误全部通过后将规则按数组顺序写入index调用immerSet原子地替换state.rules并返回成功消息Successfully imported N action rule(s)与importedCount。值得注意的是导入采用的是整体替换而非增量合并——导入成功后本地原有的 Actions 规则将被这批新规则替代。若你的迁移意图是合并两套规则应在导入前先通过导出功能做好原规则备份。桌面端 UI 的四种迁移入口渲染层入口在 action-setting.tsx结合useContextMenu与上下文菜单呈现多条迁移通道导出到文件L177-L182调用actionActions.exportRules()后用downloadJsonFile下载文件名由 utils.ts 中的generateExportFilename生成成功时toast提示Action rules exported successfully as filename从文件导入用selectJsonFile选择 JSON 文件后调用actionActions.importRules(jsonData)导出到剪贴板 / 从剪贴板导入通过copyToClipboard与readFromClipboard两条通道配合L207、L226适合在桌面端之间快速共享单条规则。这套能力使 Actions例如标题含某关键词则标记为已读并归档这类规则可以从一台设备完整迁移到另一台也方便在社区/团队之间以 JSON 文件形式分享。佐证store 层的核心方法有对应的单元测试覆盖见 store.test.ts其中验证了默认新建规则空condition、空result以及删除/新增后index的稳定性rule-card.test.tsx 覆盖了规则卡片的渲染逻辑。个人资料档案bio、website、socialLinks 与头像v0.6.1 为个人主页补充了自我介绍、个人网站与社交链接等字段并支持上传头像同时为部分资料字段加入了长度限制。从数据结构看这些字段是账号体系中可选补充资料的一部分。客户端 SDK 侧通过 better-auth 的inferAdditionalFields注册见 auth.tsinferAdditionalFields({ user: { handle: { type: string, required: false }, bio: { type: string, required: false }, website: { type: string, required: false }, socialLinks: { type: json, required: false }, }, })可以看到bio、website为可选字符串socialLinks被建模为json类型字段即可容纳多个社交平台链接的结构化数组而handle用户名标识与头像资源共同构成个人主页的身份信息基础。桌面端共享 SDK 的该类型声明同样约束移动端因此字段语义在双端保持一致。新增 Action 规则条件视频时长与媒体时长Actions 的条件condition决定一条规则作用于哪些条目。v0.6.1 新增了以视频时长作为条件的能力。从字段注册表 constant.ts 可以清晰看到相关的两个数值型type: number过滤字段字段 key含义类型entry_media_length条目的媒体长度numberentry_attachments_duration条目附件如视频/音频的总时长number其中entry_attachments_duration正是视频时长条件的落点RSS 条目中的视频附件时长秒一旦作为可比较的数值字段暴露给 Actions就可以组合数值型操作符is equal to/is not equal to/ 大于、小于等构造诸如视频时长大于 20 分钟则自动标记稍后观看之类的规则。该版本的操作符体系同样定义在 constant.ts从源码可确认的几种操作符类型包括contains、not_contains文本匹配、eq、not_eq数值/文本/view/status 通用比较等。规则模型本身name condition[] result与exportRules导出的字段一一对应意味着含时长条件的新规则同样可被完整导入导出。界面与交互优化个人主页、Actions 页与 RSSHub 页重构个人主页在资料字段扩展后采用了全新视觉样式bio/website/socialLinks等字段auth.ts以更清晰的排版呈现为保证视觉一致性部分资料字段新增了长度限制与发布说明中的描述一致Actions 页重构commit1ace5eaActions 编辑/管理入口集中在渲染层 modules/action 目录下包含action-setting.tsx、rule-card.tsx、when-section.tsx条件编辑、then-section.tsx动作结果编辑与rule-summary.ts规则摘要等模块重构后规则卡片与导入/导出入口的层级更清晰RSSHub 页重构commitf9aca60与订阅源发现流程配套的界面调整。条目工具默认命令简化与文案增强发布说明提到简化条目工具中的默认命令commit85122fb以及增强 UI 标签与描述的可读性commit2ed9f70其 i18n key 大量集中在actions.action_card.*命名空间下见 constant.ts 中的filterFieldOptionsMap标签引用方式这类标签即文案 key的设计使后续文案统一调整的成本更低。细节打磨图片预览与 Toast图片预览样式commitcf72753与渲染层媒体组件如components/ui/media的展示样式调整相关Toast 通知精修commit73f8011桌面端采用sonner的 toast 体系action-setting.tsx中导入toast即为佐证成功/失败反馈的视觉细节得到统一。稳定性修复从数据库迁移到跨端同步v0.6.1 修复列表体现了对数据可靠性与跨端一致性的重视数据库迁移失败后更可靠的自动恢复commitc2e0c3d桌面端本地库结构演进本版本正逐步引入统一本地数据库依赖可重入的迁移机制失败后的自动恢复是保障用户数据不丢失的关键防线修复 macOS Docker 构建中未读数不清理commit70255af属于特定构建形态Docker macOS下未读计数状态不同步的问题修复初始加载期间显示旧条目commit24ae065与时间线/订阅源首次拉取时的竞态条件相关修复以.开头的链接处理commitde8eac8涉及 URL/相对路径解析边界情况修复文字转语音TTS不可用commit82952b0多媒体条目朗读能力回归修复 star/unstar 状态跨设备不同步commitfbd0b3涉及收藏状态的服务端同步链路。说明以上条目以官方发布说明0.6.1.md为准逐条对应若需深入某一具体修复的代码可在仓库内按对应功能模块如播放器atoms/player.ts、条目上下文菜单等继续追查。试验性架构演进移动端与桌面端统一本地数据库发布说明特别标注了为移动端和桌面端逐步灰度统一的本地数据库内部讨论编号 #3897、#3902。这表明该特性当时处于试验性灰度阶段而非全量可用。仓库中与之对应的架构文档可见于docs/superpowers/plans/2026-04-11-desktop-ota-unification.mddocs/superpowers/specs/2026-04-11-desktop-ota-unification-design.md方向上是让桌面端与移动端共享同一套本地数据存储与同步语义从而减少每个端各维护一套状态导致的跨端一致性问题。作为渐进式发布建议在实际使用中关注版本更新说明中的灰度开关与反馈通道。如何验证或体验 v0.6.1 的功能在桌面端升级到 v0.6.1 后进入Actions设置页在空规则/已有规则卡片上找到上下文菜单中的导入/导出入口可尝试导出 JSON 后再导入以验证往返一致性编辑个人主页资料填写bio、website与社交链接并上传头像观察新主页样式的展示效果新建一条 Action在条件字段中选择与媒体时长相关的选项对应entry_attachments_duration/entry_media_length配合数值操作符验证视频时长条件是否生效若你的使用场景涉及 macOS Docker 构建、TTS 朗读或跨设备 star 同步请对照本版本的修复列表回归验证。后续版本动态可在 apps/desktop/changelog 目录中继续查阅例如 0.6.2.md、0.6.3.md 以及 next.md以便跟踪 Actions 与统一本地数据库的后续演进。【免费下载链接】follow Folo is the AI RSS Reader项目地址: https://gitcode.com/GitHub_Trending/fol/follow创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询