V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ejin
V2EX  ›  V2EX

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

  •  
  •   ejin · 4 天前 · 511 次点击
    未读消息,除了通过右侧栏点击“未读提醒”。

    也可以通过
    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>即可
    1 条回复
    ejin
        1
    ejin  
    OP
       4 天前
    Atom 代码片段:
    https://paste.debian.net/hidden/5bb043db/

    <ID>重复片段截图:



    @Livid @Tink
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1031 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 18ms · UTC 22:57 · PVG 06:57 · LAX 15:57 · JFK 18:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.