用户因在 3 秒内发布回复而被封禁

在以下主题中,一名用户因回复了一条简短消息而被禁言:

相关设置称为“自动禁言首次发帖的快打用户”,但显然这并不是该用户的首次发帖。这条规则是否误触发了?

这已不是第一次有人因撰写此类简短回复(通常可在 3 秒内完成)而被封禁。我已将论坛中的 min_first_post_typing_time 设置从 3 秒调整为 2 秒,但我不明白为何回复也会被自动禁言选项所涵盖。

您有多确信这不是用户的第一篇帖子?您在其发帖历史中是否看到过更早的帖子?

如果您点击我链接的主题,可以看到首先发布了一个详尽的问题,随后我进行了回复。当用户回复“我找不到它”时,该回复被排队等待审核,同时该用户被禁言。

即使我将“最小首帖输入时间”减少到仅 2 秒,这种情况仍在发生:

现在,jhoney 的第一条消息确实看起来很可疑,因为它不可能在 2 秒内输入完成,而且它实际上是从该话题前面复制的一段内容。因此,这确实可能是一个垃圾邮件发送者。

但是 jzza 只是在他的初始问题得到回答后快速输入了一条感谢信息。他可能在 2 秒内完成了输入,但这并不是他的首帖,因此他的消息不应被扣留。

不建议允许过短的消息。您对回复设置的最小帖子长度是多少?Discourse 的默认值是 20 个字符。如果您已修改此设置,可能需要将垃圾邮件发送者的最小输入时间保护设置为非常低的级别。

合法的新用户如果复制粘贴内容,可能会被误判。如果您的平台上这种情况很常见,您可能别无选择,只能放弃这项保护。

我已将该限制从 20 个字符降至 10 个字符,因为我确实希望允许简短的感谢消息,而不喜欢强迫用户人为地延长帖子内容。

不过,该设置与我报告的问题无关。我遇到的问题是,有些帖子被扣留、用户被禁言,原因是他们撰写第二篇帖子的速度过快,尽管该设置明确说明的是“新用户撰写第一篇帖子的速度可疑地快”。

有道理,@justin 我们能复现这个问题吗?

我今天认真尝试了这个问题,但即使使用相同的站点设置,也尚未能复现。我没有看到任何用户在首次或第二次发帖时被放入审核队列,但如果发帖太快,他们确实会像预期那样被阻止发帖约 20 秒。

@bjorn81 你是否从这些用户那里获得了更多关于他们是如何被禁言的信息?

既然 Discourse 已经有“点赞”按钮,为什么还要缩短感谢消息的字数限制呢?这个功能正是为此而设的。用户可以在不顶起话题、不干扰其他用户以及不必要地增加话题长度的情况下表达感谢。

这看起来像是你修改了一个默认设置,而这个默认设置的存在正是因为 Discourse 上并不需要“好的/赞/+1”这类帖子,现在你正在为此付出代价。

不过情况并非如此,报告的问题如下:

@justin 请注意,你绝对需要通过 ctrl+v 粘贴帖子内容才能触发此问题。我们正在测试的具体问题是:这种情况是否可能发生在_第二帖_上?你也可以检查代码路径,确认其假设是否成立。

我会再试一次。我已经检查了代码路径,根据站点设置中提供的值,我发现的所有假设似乎都是有效的。

编辑:我使用上面提供的设置,在第二篇帖子中通过复制/粘贴成功复现了该问题。我将把它们重置为默认值,看看是否能找到任何关联。

编辑 2:我找到了问题所在。

在这段代码中,我们只检查用户的 post_count。如果用户先创建了一个主题,这并不计入帖子数。因此,当用户复制/粘贴回复时,这会被计为他们的第一篇帖子,从而触发保护机制。

修复的 PR 已提交: