在标签上点击“观看第一篇帖子”在现有主题上不起作用吗?

我敢肯定这在我早期的测试中是有效的,因为这是我工作流程的关键:我可以给现有帖子打标签,而对该标签设置了 watching_first_post 的用户会收到通知。

我现在发现它不再以这种方式工作了(…是吗?)。

或者,当该主题下已经有回复帖子时,它会被忽略?

我想象我可以将主题移动到一个每个人都“关注第一帖”的类别中,但是……

  1. 通知只在主题创建时触发吗?
  2. 我不确定回复帖子的存在是否会导致“第一帖”触发被忽略。
  3. 我真的很想将相关主题保留在一个类别中,并通过标签“升级”一些。

我愿意每次都运行一个脚本来触发通知,但是 Askbot :robot: 无法帮助我创建一个有效的脚本。

欢迎任何输入或变通方法……!

image

但是这会如何运作?如果有一个带有该标签的 10,000 个旧主题,您会立即收到通知吗?

仅关注首帖仅在主题的绝对首帖上通知。

1 个赞

这相当明确,所以我一定是记错了,并且创建了带有跟踪标签的测试主题。

哦,不——我并不是建议通过标签将用户设置为“仅在第一篇帖子中观看”应该有任何追溯性的作用。

但工作人员后来为已发布的帖子添加标签肯定很常见。我一直以为,当“仅在第一篇帖子中观看”标签应用于现有主题时,它会为已经 WFP 该标签的用户生成该主题的通知。

我仍在与 Askbot 合作,为这些场合制定一个临时脚本……

经过大约 60 次迭代,Askbot 和我有一个 几乎 可以工作的 Rails 脚本。

下面的脚本——针对主题 239 和标签 ‘tagtest’——会生成预期的“新主题”通知,其中包含正确的主题标题,并生成相关的电子邮件。

有些元素似乎不起作用(message:display_username: 不出现在任何输出中),但它几乎可以工作了。

最关键的问题是电子邮件的标题中没有实际的主题标题。它显示为“ %{topic_title} ”。topic_title 显然不是 Notification 方法的有效字段,所以我不知道需要最少的代码才能将其包含在电子邮件中。(Askbot 尝试添加越来越复杂的电子邮件方法,但错误也越来越多。)

如果有人能在这方面提供帮助,在我学会如何正确清理它之前,这将使我能够继续下去……!


topic_id = 239

Tag.where(name: 'tagtest').each do |tag|
  TagUser.where(tag_id: tag.id, notification_level: TagUser.notification_levels[:watching_first_post]).each do |tag_user|
    user = User.find(tag_user.user_id)
    puts "Username: #{user.username}, ID: #{user.id}"

    # Fetch the topic title
    topic = Topic.find(topic_id)
    topic_title = topic.title

    # Create a notification for the topic
    Notification.create!(
      user_id: user.id,
      notification_type: Notification.types[:watching_first_post],
      topic_id: topic_id,
      post_number: 1, # Assuming you want to notify about the first post of the topic
      data: {
        message: 'You have a new notification for a topic you are watching.',
        display_username: 'system'
      }.to_json
    )

  end
end

在标记时也存在风险,例如批量标记 500 个主题,然后会有 500 条通知,你的通知就没了。

或者更糟的是,管理员在 10 秒内添加 100 个标签。

这是一个棘手的问题,我们需要非常小心地汇总通知来修改此功能。

将主题批量移动到另一个类别时,不也是同样的情况吗?将主题移动到另一个类别会触发“关注首帖”通知。

是的,我认为总体而言,重新分类比重新标记要少见得多,因此问题的规模在一定程度上得到了缓解。您能否快速截屏展示一下当您将 3 个主题批量重新分类为“watch-first”时会发生什么?

我不会考虑批量标记 500 个主题,但想知道这是否会比发布到每个人都关注的“公告”类别造成更大的负担?
(编辑:哎呀,我写的时候 Moin 发布了。)

我自己的用例可能是一周发布一次到“升级”以通过通知邮件发送。

这似乎与之前关于重新分类主题的讨论相似:
(编辑:你已经知道了,抱歉。)

…这已通过 FIX: 主题被重新分类时,关注首帖用户的通知丢失 · discourse/discourse@147ea37 · GitHub 得到解决。

我只是想使用一个标签,而不是为相似的主题设置两个类别。(它们属于同一类,但有少数几个在发布后,被认为值得发送给那些不常上线、有时只通过电子邮件接收信息的用户的。)

1 个赞

出于好奇/比较的目的,我正在测试“在类别中观看第一个帖子”的行为,它在重新分类时不会通知。

我的 email time window mins 是 10,我会在步骤之间留出 15 分钟。
我现在已经重复了几次……

  • 在未观看的沙盒类别中创建新主题。等待 15 分钟。
  • 将主题移至用户正在观看的类别:立即触发通知,10 分钟后发送电子邮件。

  • 在未观看的沙盒类别中创建另一个新主题。等待 15 分钟。
  • 将主题移至用户“观看第一个帖子”的类别:永远什么都不做。

(自托管标准安装,3.4.0.beta2-dev (0c019b2e45),tests-passed。)

也许是我的流程有问题,但我无法想象是什么。2018 年已解决的功能是否可能已失效?

1 个赞

很有可能,这是应用程序中一个特别复杂的部分。

关于重新标记/重新分类的通知需要很多保护措施。

  • 我们应该通知一个8年前的主题吗?
  • 我们应该一次推送50条通知吗?在1小时内?

我们需要从弄清楚期望的行为是什么以及保护措施应该是什么开始。

FWIW 给现有主题添加标签应向关注该标签的“关注首帖”的用户发送通知。

我刚刚在我的测试站点上进行了测试(3108e3a6b6),它似乎仍然正常工作。

只是为了确认一下,您是否在任何时候更改了 disable tags edit notifications 管理员设置?(以及类别版本的 disable category edit notifications)。

4 个赞

哦。

嗯。

天啊。

我要去钻进石头缝里了。

我忘了那些设置还存在。我想我禁用它们的时候,只想着像*“管理员添加了标签或更改了您主题的类别”*这样的通知——而不是像“关注”或“仅关注首帖”这样的操作。

我认为可能仍然存在一些不一致之处,因为“关注”类别似乎覆盖了禁用类别编辑修改,而“仅关注首帖”则没有。作为惩罚,我将更彻底地测试这一点,并跟进我之前就此问题联系过的另外几个人。

(另外,@sam 确实在某种程度上支持了我的结论 :sweat_smile:

但感谢 @JammyDodger 将我从花费数小时摆弄 rails 脚本中解救出来。我的下一步是卖掉我的沙发,然后付钱给 @pfaffman 寻求帮助。

6 个赞

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