关于新的审核队列(2019)的反馈

对审核系统的一个建议:当批准恢复用户发言权限的帖子时,能否为此事件添加一条用户备注?类似 '@用户名 已解除该账户的禁言' 这样的内容会非常有用。目前我们在备注中只能看到一半的情况。

3 个赞

干脆把它们全删掉吧,我都是这么做的。这些通常本来就是错的,而且我不喜欢那些毫无价值的噪音式笔记。

2 个赞

在审核队列中,针对“待处理帖子”类型,如果我尝试删除一个发帖量较多的用户,会出现 502 超时错误。

我不确定具体的上限是多少,但根据今天的测试,最低无法成功删除的账户拥有 288 篇帖子。

例如:当某篇帖子因包含“受监控词语 → 需审批”列表中的词汇而被标记(类型:待处理帖子)时。

目前可用的选项有:
批准帖子 | 拒绝帖子 | 删除用户 | 编辑

我认为为这些待处理帖子类型添加禁言和暂停功能会非常有帮助。例如:拒绝帖子并同时禁言或暂停用户。这将使管理员能够在审核队列中直接选择对某用户进行禁言/暂停,还是直接从历史记录中将其抹除。

此外,如果由于 502 错误导致无法在审核队列中删除发帖数量超过 x 的用户,那么提供暂停和禁言作为替代选项将非常理想。

3 个赞

更多信息:

从审核队列中打开“按主题分组”时,我收到以下错误:

服务器错误
在尝试加载 /review/topics 时发生错误
错误代码:500 内部服务器错误

请注意,审核队列中约有 30,000 条项目,其中许多旧项目是在我卸载 Akismet 之前由它添加的。

滚动/分页问题(可能应该发在这里):Review Queue Pagination/Infinite Scrolling after Taking an Action

关于(类型:待审核帖子)项目以及使用“删除用户”选项时出现 502 超时的问题。我可以确认,在使用拥有 166 篇帖子的账户时也会出现该错误。

建议:

  1. 在审核队列中提供直接链接到用户管理后台的功能,将有助于节省时间。

  2. 目前似乎无法取消订阅“有待审核的项目数”每日提醒邮件。如果能提供取消订阅的选项将会很有用。

2 个赞

请检查您的 /logs 并告知我们具体是什么错误?

3 个赞

好的,我想问题就在这里:

ActiveRecord::SubclassNotFound(单表继承机制未能找到子类:‘ReviewableAkismetPost’。此错误是因为 ‘type’ 列被保留用于在继承情况下存储类名。如果您并非打算将该列用于存储继承类,请重命名此列;或者覆盖 Reviewable.inheritance_column 以使用其他列来存储该信息。)
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3/lib/active_record/inheritance.rb:234:in `rescue in find_sti_class’

2 个赞

请确认您的 Akismet 插件是否为最新版本——如果不是,请更新它。

4 个赞

也许当被审查对象的定义消失(例如通过卸载插件)时,其他审查类型添加的旧项目可能无法读取。错误似乎是在卸载后开始出现的:

4 个赞

我可以确认 Akismet 目前已被卸载,我很久以前就把它移除了。

1 个赞

哦,这很有趣,就像 @featheredtoast 怀疑的那样。@Roman,你认为如果记录还在但插件被移除了,我们该如何处理这个问题?

4 个赞

我认为可以通过类似下面的方式来确定需要过滤掉的可审查类型:

class Reviewable < ActiveRecord::Base
  def self.exclude_types
     db_types = Reviewable.distinct.pluck(:type)

     @exclude_types ||= db_types - Reviewable.types
  end
  
...
end

然后我们可以利用这些类型来应用默认作用域。我们可能还需要为表添加一个 type 索引。

5 个赞

@Roman 你有空的时候能处理一下吗?

5 个赞

审核队列中出现了大量不可见图片。有些图片显示正常,比例约为50%。有些在检查时显示如下内容,但实际无法显示:

src="/images/transparent.png" alt="" data-orig-src="upload://fwf1zrfwefWEqGer2W3xz1ed.jpeg"

此问题在使用 CDN + S3 和本地存储的情况下均会出现。

1 个赞

是的,该问题仅影响已排队的帖子。

我提交了一个包含修复方案的 PR,目前正在等待审查,因此图片应该很快就能正常显示。

合并后我会通知您。

4 个赞

修复现已在 tests-passed 和 stable 分支上提供。

不过,还存在另一个问题:被拒绝的排队帖子图片在审核队列中仍未显示。系统会自动移除这些图片,因为无需保留它们。我们计划用一段说明文字来替代这些图片。

8 个赞

非常感谢你修复了这个问题,@Roman

还有另一个可能是“测试通过”场景下的 bug:在审核队列中接受一篇帖子,然后返回并拒绝它。该帖子仍会保留在列表中并在网站上可见。

编辑:本评论底部的最后两段还解释了审核队列相关选项与全站速率限制之间可能存在的另一个问题:Discourse No Bump - #27

1 个赞

我还注意到关于“自动处理排队时长”的另一个问题。我的一些审核队列中有很多旧项目,它们的年龄明显超过了“自动处理排队时长”的天数设置(使用的是默认值),但这些项目似乎并未被自动处理。看起来没有任何项目被自动处理。不确定是否我遗漏了什么。

另外,当我按“创建时间(倒序)”对审核队列进行排序时,会出现 500 错误。其他所有“排序方式”过滤器都能正常工作。

1 个赞

能否检查您的日志,并告知我们在更改排序顺序时出现的错误?

3 个赞

感谢 @eviltrout,好的没问题。我看到的错误如下:

ActiveRecord::SubclassNotFound(单表继承机制未能找到子类:‘ReviewableAkismetPost’。此错误是因为 ‘type’ 列被保留用于在继承情况下存储类名。如果您不打算将该列用于存储继承类,请重命名此列;或者覆盖 Reviewable.inheritance_column 以使用其他列来存储该信息。)
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/inheritance.rb:234:in `rescue in find_sti_class’

请注意,Akismet 插件早在之前就已经从这个特定论坛中移除了。

2 个赞

啊,所以这仍然与此相关。@Roman 看起来这里可能还存在一个与数据库中那些旧的审核类型有关的 bug?

4 个赞