Restringir postagens em uma categoria até que eles "curtam" um tópico

Caso mais alguém tenha interesse em fazer isso, aqui está um breve resumo do que eu fiz:

  1. Primeiro, você precisa habilitar o Badge SQL através da CLI do seu servidor Discourse:
./launcher enter app
rails c
SiteSetting.enable_badge_sql = true
  1. Em seguida, encontre o ID do tópico com o qual os membros devem interagir para obter o emblema. Na minha instância, o ID do tópico é 117
  2. Em seguida, encontre o ID do tópico com o qual os membros devem interagir para obter o emblema. Na minha instância, o ID do tópico é 117

Screenshot 2026-02-27 113204

  1. Crie seu Emblema Personalizado:
    1. Admin > Emblemas > Novo
    2. Nomeie o emblema como quiser (ex: Leitor de Regras B/S/T)
    3. Escolha um tipo de emblema, ícone e forneça uma descrição
    4. Se você seguiu o Passo 1, verá uma caixa de consulta onde poderá digitar uma consulta SQL. Cole esta consulta (altere p.topic_id = 117 para o ID do seu tópico):
      1. SELECT DISTINCT ON (pa.user_id)
          pa.user_id,
          pa.post_id,
          pa.created_at granted_at
        FROM post_actions pa
        JOIN posts p ON pa.post_id = p.id AND p.post_number = 1
        WHERE pa.post_action_type_id = 2
          AND p.topic_id = 117
          AND (:backfill OR pa.post_id IN (:post_ids))
        
    5. Certifique-se de que Executar consulta de revogação diariamente e Consulta visa posts estejam marcados.
    6. O gatilho deve ser definido como Quando um usuário age em um post
  2. Agora criamos a Automação
    1. Primeiro crie um novo grupo para os membros serem adicionados. O meu está apenas nomeado bst_rules_agreed, e está configurado para que apenas proprietários de grupo e moderadores possam ver a afiliação. Não precisa ter nenhum efeito de Nível de Confiança.
    2. Em seguida, vá para Plugins > Automação
      1. Adicione uma nova automação
        1. Escolha Afiliação de Grupo de Usuário Através de Emblema
        2. Gatilho: Recorrente
          1. Recorrência: Eu configurei para a cada 1 hora. Escolha o que faz sentido para você.
          2. Escolha uma data de início
        3. Opções de Script:
          1. Emblema: Escolha o emblema que você criou acima
          2. Grupo: Escolha o grupo que você criou acima

É isso. Você agora deve ter um sistema que garante que os membros concordaram com as regras da categoria antes de poderem postar na categoria.

Minha próxima exploração é ver se há uma maneira de ocultar todos os tópicos, exceto as regras, para todos que não estão naquele grupo. Mas, este sistema básico é bom o suficiente por enquanto.

3 curtidas