V2EX 用户提醒的 RSS/ATOM 格式一直是错误的,导致漏接消息,需修正

5 天前
 ejin
未读消息,除了通过右侧栏点击“未读提醒”。

也可以通过
https://ex.noerr.eu.org/notifications
下方展示的“Atom Feed for Notifications”
通过 RSS 阅读器订阅。

然而……
这个 XML ( RSS ),格式是错误的,格式是错误的,格式是错误的。

通过官方 RSS/ATOM 格式检验,可以发现一个大问题。(验证器: https://validator.w3.org/feed/
“第 311 行,第 50 列:具有相同 ID 的两个条目:tag:ex.noerr.eu.org ,2021-04-19:/t/771477#reply92 ( 3 次出现)[帮助]”

啥意思呢?
在 RSS/ATOM 里,<ID>是作为唯一值存在,如果出现多个相同的存在,就只会显示一个,其他的直接当做无用数据丢弃掉。

于是……提醒消息就被漏掉了。
这算是大问题吗?对于整个网站来说,小问题,但是对于提醒消息来说,漏了消息,这就是大问题了。

咱们聚焦一下就会发现,<ID>出现重复的原因是,ID 值是帖子的日期、帖子序号、总回复数量。
1 、对于“回复提醒”,不会漏消息。
2 、对于“感谢/点赞”,会漏消息,原因是“感谢/点赞”并不会改变帖子序号,也不会改变帖子的总回复数量。
3 、对于“收藏帖子”,不确定,但估计也会漏消息。

所以修正 Bug 的方法也很简单:
1 、每个提醒都有一个自己的 ID/序号。
2 、将这个 ID/序号加入到 RSS 的<ID>即可
518 次点击
所在节点    V2EX
1 条回复
ejin
5 天前
Atom 代码片段:
https://paste.debian.net/hidden/5bb043db/

<ID>重复片段截图:



@Livid @Tink

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1155730

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX