邀请自己获得邀请徽章

它们确实是系统徽章,无法通过用户界面进行编辑(但可以看到)。该行需要通过 PR 添加。:+1:

3 个赞

介意我尝试提交那个 PR 吗?我认为我只需要更改 discourse/lib/badge_queries.rb 第 156-167 行的 SQL。

3 个赞

您好。我的徽章昨天被移除后,今天又突然回来了。有人能修复这个问题吗?

1 个赞

查询每天都会运行,而且您仍然“符合条件”,他们就会回来。 :slight_smile: 我们将不得不每天手动删除它们,直到错误被修复,这是不现实的。

我已经检查过了,我们可以让这个 pr-welcome :+1: (您需要完成所有三项)

4 个赞

明白了,谢谢。我应该能做到。

而且我不明白为什么我需要做3。如果我正确理解了函数,那个用于邀请链接的函数会返回计数。

3 个赞

我没有看代码,所以你可能是对的。 :slightly_smiling_face:

3 个赞
  def self.invite_badge(count, trust_level)
    <<~SQL
      SELECT u.id user_id, current_timestamp granted_at
      FROM users u
      WHERE u.id IN (
        SELECT invited_by_id
        FROM invites i
        JOIN invited_users iu ON iu.invite_id = i.id
        JOIN users u2 ON u2.id = iu.user_id
        WHERE i.deleted_at IS NULL AND u2.active AND u2.trust_level >= #{trust_level.to_i} AND u2.silenced_till IS NULL
        GROUP BY invited_by_id
        HAVING COUNT(*) >= #{count.to_i}
      ) AND u.active AND u.silenced_till IS NULL AND u.id > 0 AND
        (:backfill OR u.id IN (:user_ids) )
    SQL
  end

这是它。看起来只有 1。并且查看了整个文件,没有其他与邀请相关的内容。


已创建 PR

5 个赞

查看 PR(请记住,PR 不是我的强项),看起来你通过将 #{count.to_i} 更改为 1 来硬编码它,使其仅为 Promoter 版本?

我上面的示例只是一个概念验证,需要进行调整以适应。:+1:

(另外,看看那个 onebox 中的文字,我是“JammyDodger”,而不是“Jammy Dogger”…… :slight_smile:

8 个赞

抱歉,我已修正您的姓名

4 个赞

感谢您的贡献!我已合并您的 PR。

另外,一个小小的说明是,我们通常要求对修改进行测试,但鉴于之前没有测试,我们将直接合并并稍后补上。

希望未来能看到您更多的贡献 :hugs:

8 个赞

此主题在 2 天后自动关闭。不再允许回复。