Skip to content

消息、历史与收藏

三个标题栏面板分别处理原站通知、本地阅读历史和原站收藏/回应。它们的数据来源和删除语义不同。

消息

消息面板先区分“通知”和“私信”两种模式。通知模式按原站真实来源分为:

分类数据与常见内容
全部各具体通知分类去重后的汇总;具体分类记录优先于原生泛化记录
回复用户动态中的回复和引用
用户动态中的点赞
@提及用户动态中的个人或群组提及
编辑用户动态中的帖子编辑
链接用户动态中的普通和合并链接
Boosts当前账号收到的 Boost
回应当前账号收到的 Reactions
其他现有具体分类和私信模式未覆盖的原生通知;每条在摘要前标注实际类型

私信模式提供最新、已发送、新、未读、归档和机器人聊天六类主题列表。每条私信显示参与者、标题、摘要、最后活动时间和“新 / 未读 / 已读”状态;未读主题优先定位到最后已读楼层之后,否则进入最新楼层。

消息中心回复分类中的真实通知和目标回跳

从标题栏打开消息中心,先选择消息类别,再点击具体通知;阅读器会进入对应主题并定位到目标楼层。

模式、分类标签和每条消息都使用可访问的 Lucide 图标。分类标签在空间足够时保持一行,只有浮窗宽度容纳不下完整标签和数量时才自动换行。每种通知类型优先使用自己的语义图标,例如提及使用 @、回复使用回箭头、赞使用爱心、Boost 使用火箭;无法识别时才回退到所属分类图标。“其他”严格排除已经由具体通知 Tab 或私信模式承载的记录,后台遍历原生“所有”的完整分页,并在每条摘要前显示 Discourse 解析出的具体类型。消息卡片把类型图标放在独立圆形栏位,并按类别使用不同强调色,同时保留摘要、最多两行正文摘录、相对时间和明确状态。

通知工具栏中的未读数量可以直接点击。阅读器会先回到“全部”、清除检索与筛选并恢复最新优先排序,然后平滑滚动并聚焦第一条真实未读通知;本地列表尚未出现未读项时会先刷新一次。原站以 reaction + heart 表示的标准点赞会统一归入“赞”,并与同一用户的点赞活动共享真实通知 ID 和已读状态,不再分散到“回应”。

通知或私信每页使用对应来源的原站分页大小,通常为 20 或 30 条。检索只筛选已经加载或缓存的消息;没有匹配不等于服务器上不存在。点击消息时,阅读器会打开目标主题、等待楼层挂载并定位。同一主题内的新目标楼层会在现有阅读器中直接跳转;Boost 通知会强制刷新目标附近数据,避免继续显示旧缓存。

通知优先从 Discourse 展示模型、展示链接、post_url/topic_url/url、通知本体及其 data 中归一化 topic_idpost_number,并把目标编号写入卡片。只有确实没有主题 ID 时才回退到原站通知页。

若目标主题已经在当前阅读器中打开,点击通知会先关闭消息面板并直接调用现有时间轴跳到目标楼层;跳转失败时才重新打开目标主题。这样同主题通知不会无意义地重建整个阅读器。

“全部已读”只在通知模式调用原站通知能力,影响账号状态。合成的用户动态、Boost、回应和私信条目不会冒充原生通知 ID;只有能追溯到原生通知的项目才参与单条已读同步。单条通知已读会同时扣减原站模型中的对应类型、普通或高优先级、总数及兼容计数;全部已读则一次清空这些计数,避免标题栏徽标继续显示旧值。单纯清理消息缓存不会把通知或私信标记为已读。

阅读器还监听原站的通知和收藏变更事件。application 启动后会先从当前账号的本地归一分页投影恢复消息、私信、收藏、回复、Boost 与回应,并在空闲期从缺失断点继续;打开浮窗或重复切回已缓存分类只读取这份投影,不会因为打开动作重新联网。原生事件只使受影响的短期接口首屏失效并合并刷新,不会删除稳定投影;远端最终状态仍以 Discourse 返回结果为准。浏览器重新联网或从长时间休眠恢复时,已观察头页超过 30 分钟才执行一次漏事件校验。

用户观察

从用户卡选择“加入用户观察”,可把对方加入当前账号隔离的观察名单。打开“用户观察”后先选择用户,再按主题、回复、点赞、Boost、回应、已解决、投票等真实来源筛选;列表支持关键词、类别、标签和时间排序,点击记录会在现有阅读器中打开目标 Topic 或楼层。

观察名单与已提交分页断点保存在本机,公开活动正文进入有界分页缓存。首次加入或手动刷新时才会启动采集;页面刷新不会自动重放每个普通用户的完整公开历史。采集使用后台串行队列,某个来源遇到 429、Cloudflare 或网络错误时会保存断点、显示重试入口,其余用户和来源仍可继续。

当前登录账号会自动成为“用户观察”中的固定“自己”条目,并复用同一个浮窗、后台串行队列、分页断点、进度段和重试入口。页面启动或刷新不会自动重放普通用户观察的公开历史;账号私有的通知与收藏集合则会先恢复本地投影,再由 application 级低优先级任务补齐缺失断点。公开主题、回复、Boost、回应等仍按普通用户观察采集;只有“自己”的详情额外提供“通知”“私信”“收藏与回应”分类,其中通知逐条标注“已读/未读”。这些账号私有记录直接读取消息与收藏控制器已归一化的本地缓存,不会写入公开用户观察分页仓库,也不会出现在其他被观察用户中。原消息与收藏面板继续负责全部已读、删除收藏等原站动作。

私有集合补齐任务与浮窗开关无关,会从持久化的来源分页水位渐进执行;打开面板只回放已有投影,不会另起任务或提高网络优先级。续传会先直接消费仍在本地的原始分页,只有水位后的真实缺页才进入后台网络。部分原站接口不提供固定总页数,因此未完成时只显示“已缓存页数”和固定的来源完成数,不用不断增长的估算页数充当分母;只有八个来源都返回“无下一页”时,8/8 来源才表示历史真正到底。列表正文一旦可用就结束前台加载;类别、标签等补充信息在后台请求并合并回同一缓存,不阻塞翻页。“我的持续观察”会统一显示公开来源、通知与私信、收藏与回应的完成进度;单个来源遇到 429、Cloudflare 或网络失败时会保留已提交分页断点、独立退避并自动续传,其余可用来源继续推进,所有恢复仍服从中央请求许可。

浏览历史

历史是阅读器保存在当前浏览器中的主题访问记录,包括标题、主题 ID、最近视口、首次查看和最后查看时间。0.1.15 的位置状态还可包含完整讨论分支、分支内锚点和引用高亮。

浏览历史列表、检索和目标阅读位置

打开历史面板后可检索、排序和多选;点击一条历史记录会恢复该主题最近保存的阅读位置。

可用操作:

  • 检索标题、分类等已保存字段;
  • 每页 20 条;
  • 按最近点击或首次点击排序;
  • 多选本页/全部页记录并删除;
  • 清空全部历史;
  • 点击条目恢复目标楼层、滚动偏移和仍有效的讨论上下文。

删除历史不可撤销,但不会删除浏览器访问历史或 LINUX DO 账号记录。

收藏与回应

回应、主题书签和楼层书签统一入口

在收藏与回应中心切换“回应、帖子、楼层”标签;先确认对象类型,再执行跳转或移除。

三个标签:

标签数据来源主要操作
回应当前账号给出的回应与点赞按表情筛选、跳到楼层、取消回应
帖子主题书签检索、跳到主题、移除
楼层楼层书签检索、跳到精确楼层、移除

标签可以拖动排序,首项成为默认入口。列表每页 20 条;点赞来源可能按更大批次获取,再归一化到面板分页。

通知和收藏标签会在名称后显示各自的权威总数。搜索、筛选和当前页切换只改变列表内容,不会改写该总数或额外发起统计请求。

岁月史书

“岁月史书”保存原站已经明确软删除,或返回 403404410,并且本机缓存仍能提供可定位内容的 Topic、楼层或 Boost 入口。它不会主动扫描全站,也不会把普通网络失败、Cloudflare 验证、跨域请求、无法定位目标或本机没有内容的信号写入历史。

记录按当前站点账号隔离,按目标和请求位置去重,保留真实状态、首次与最近观察时间及出现次数。活动 Topic 的 deleted_at 模型和标准 deleted/destroyed 实时事件会直接入史;先于正文到达的请求信号会在当前请求观察保留期内等待 Topic 挂载后重放。面板可按 Topic、回复或 Boost 分类检索和展开;点击记录会优先从本地内容恢复阅读。若对应本地内容已经清理,打开时会移除失效记录。岁月史书最多保留 1,000 条、最长一年,不进入 WebDAV;在“数据管理”清理“浏览历史与岁月史书”时会与普通阅读历史一起删除。

不想看

列表页的免打扰图标现在用于本地“不想看”集合,不再修改原站通知级别。点击后主题会立即从当前列表消失;嵌入和非嵌入列表都提供同一入口。图标只保留屏幕阅读器可识别的名称,不再叠加宿主或 Reader 的悬停提示卡片。展开主帖操作列后,可在“岁月史书”右侧打开“不想看”浮窗。

每个条目默认只显示一行 Topic 标题。手动免打扰条目右侧提供“恢复显示”;自动过滤条目提供“管理自动过滤规则”,不会把删除历史误报为取消规则。点击编辑后,左侧免打扰图标与编辑图标会收起,自定义标注和多标签输入并排显示,确认后可随时再次编辑。标签输入支持浏览器下拉搜索;浮窗会显示每个标签包含的 Topic 数,并按数量从高到低排列。自动历史会保留类别、Label、OP、字符规则和楼层用户等完整命中原因,并可组合筛选。

“批量管理”只恢复当前搜索、标签与类别筛选结果中的手动免打扰条目,不会越过筛选范围,也不会删除自动历史。自动条目需要进入规则管理,关闭总开关或删除对应规则后恢复显示。

点击“不想看”浮窗标题栏的设置图标,可在同一个浮窗内进入“免打扰与自动过滤”,并通过返回按钮回到 Topic 列表。左侧切换类别、Label、OP 用户、字符匹配和楼层用户;右侧用只读自适应卡片展示规则,卡片区固定高度并独立滚动,可搜索、高亮并定位已有规则,悬停卡片可删除。

新增类别、Label 和用户规则时会自动查询宿主目录,必须从真实候选中选择;同名用户会同时显示唯一用户名与 ID,需再次选择具体账号。字符匹配可选择 titlecategorylabelusertopic 字段,并支持普通包含和正则表达式。保存自动过滤设置后会立即重扫当前列表与已挂载楼层,不需要刷新页面;无关设置变化不会触发这次重扫。主题类别、Label、OP 和字符规则命中时,会一边动态隐藏当前列表项,一边写入账号隔离的自动过滤历史;楼层用户命中也会把当前 Topic 与用户原因记入历史,但只隐藏该用户的楼层本体并保留回复树。自动历史只用于追溯,不拥有永久隐藏权;关闭总开关或删除规则后,已挂载内容立即恢复,历史仍保留。只有用户明确点击手动免打扰才会持久收纳 Topic,直到用户恢复显示;所有自动规则统一受总开关控制,手动免打扰入口始终可用。

不想看列表按当前账号隔离保存在本地,打开浮窗只读取这份投影,不会为每个 Topic 另发网络请求。手动与自动记录的新增、删除和恢复会通过共享存储在同账号标签页间刷新;从本地存储恢复时仍只把 manual 条目视为永久隐藏,automatic 条目不会单独隐藏页面。

多选安全边界

进入多选后可以选择“本页”或“全部页”。执行删除前确认对象类型:

  • 历史删除只改本地数据;
  • 收藏/回应移除会改变原站账号状态;
  • 缓存清理不等于上述任何业务删除。

非 LINUX DO 或其他适配社区的官方项目。站点数据与互动结果以原站为准。