如何更改某个主题上所有用户的通知级别?

是否有人知道一种安全的方法,可以将某个主题上所有用户的通知级别设置为单个值?我猜这会在 Rails 控制台中进行。

我想将某个主题上的所有用户设置为“静音”或“正常”,而不是“关注”或“跟踪”。

目标是在复杂的审核情况下,减少某个大型主题的活动。

1 个赞

管理员菜单
设置
用户偏好


等等,抱歉,你的意思是只有一个主题。是的,可以想象需要 Rails

1 个赞

启用慢速模式怎么样?这不能帮助减少活动吗? :thinking:

这种情况很复杂,我不想有任何视觉提示来引发公开讨论,这可能会占用数小时的审核时间。(我已经应接不暇了。)理想的结果是人们根本不会被提醒这个话题的存在。

1 个赞

我会取消该主题的列表。然后它将从论坛中隐藏,因此大多数用户可能在那里看不到它。但是,当他们有指向该主题的链接时(例如,因为他们收到了通知),他们仍然可以打开该主题。

2 个赞

不过,请注意,如果他们正在观看,当视频设为“未公开”时,他们仍然会收到通知。

我认为您现在可以使用 /t/TOPIC_ID/notifications 端点来设置用户在特定帖子上的通知级别,如果这比 Rails 控制台更具吸引力的话?

额外详情
  • API 用户应该是管理员(因此他们应该具有全局范围),才能更改另一个用户的通知级别。
  • 端点 URL:siteurl/t/<topic_id>/notifications
  • 请求类型:POST
  • 参数:
    • 目标用户的 usernameexternal_id。如果为空,将更改管理员自己帖子的通知级别。
    • notification_level:与级别对应的整数值
      • muted: 0,
      • regular: 1,
      • normal: 1, # regular 的别名
      • tracking: 2,
      • watching: 3,

但对于 Rails 控制台,我认为会是这样:(在尝试在 Rails 中更改内容之前,请务必先进行备份 :warning:

TopicUser.where(topic_id: TOPIC_ID).update(notification_level: 1)

(1 是正常,0 是静音)

这将更改帖子级别的通知,但可能还有类别和标签级别的通知,这些通知仍会影响谁会收到新活动的通知。

还有一个数据浏览器查询,可以检查用户在某个帖子上的通知级别,如果这有用的话:

SELECT 
    topic_id,
    user_id,
    notification_level
FROM topic_users
WHERE topic_id = TOPIC_ID
3 个赞

感谢您的详细回复。我明天会尝试使用 API。

2 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.