topic_count 计算不正确

我注意到一个漏洞:仅存在于父类别中的主题未被计入 API 的 topic_count

我所使用的论坛运行的是 Discourse v2.4.0.beta11 版本,因此我推测该问题可能在新版本中已得到修复。但以防万一尚未修复,特此报告。

该论坛的类别结构大致如下,其中类别 B 和 C 是类别 A 的子类别:

    Forum
    ├── ...
    ├── Category A (n=0)
    │   ├── Category B (n=92)
    │   └── Category C (n=6)
    └── ...

我根据 API 在 /c/xx/show.json 中获取的 topic_count 值,在每个类别后进行了标注。但实际上,类别 A 中确实存在一个主题,尽管 topic_count 显示为零。相应地,类别 A 的 topics_all_time(来自 categories.json)显示为 98,而浏览 topic_list(来自 /c/xx.json)则显示为 99。

如果需要,我可以通过私信分享该论坛的更多详细信息,以便协助排查。

如果您能验证该问题是否仍然存在,将会更有帮助——2.4 版本已经相当过时,并且存在多个安全漏洞。

1 个赞

因此,我在一个包含较新版本(2.7.0.beta8)的论坛中进行了查看,并可以确认该问题依然存在。但是,那个“奇怪的主题”是每个分类中默认存在的“关于该分类”主题。因此,这实际上可能是有意为之,因为在父分类中手动创建的其他主题_确实_会被计入。

1 个赞