Anexar automaticamente aviso de staff às postagens do usuário

Nosso sistema gera contas para postar anúncios, estávamos nos perguntando se havia uma maneira de adicionar um aviso de equipe separado que tivesse seu próprio ícone que fosse anexado automaticamente a essas postagens para que pudéssemos explicar que é uma conta gerada automaticamente? Mesmo por ID de usuário/nome ou grupo funciona.

1 curtida

Acho que você pode conseguir isso com componentes de tema. Por exemplo, este código faz o que você precisa:

<script type="text/discourse-plugin" version="0.8">

const { iconHTML } = require("discourse-common/lib/icon-library");

const bot_id = 128856; // ou algum outro
api.decorateWidget("post:before", (helper) => {
    if (helper?.getModel()?.user_id !== bot_id) {return;}
    return helper.h("div.post-notice",[
        helper.rawHtml(iconHTML("shield-alt")), // nome do ícone
        helper.h("p", "este é um bot"),  // texto
    ]);
});

</script>
3 curtidas

Olá!

Tentei usar JS para anexar automaticamente um aviso de staff a uma conta gerada automaticamente se ela for membro do grupo “autogenerated”, mas não tenho certeza de onde estou errando.

   window.onload = function() {
     const { groupMembers } = await discourse.groups.getMembers({
       group_name: 'autogenerated'
     });

     if (groupMembers.includes(helper.getModel().user_id)) {
       return helper.h('div.post-notices', [
         helper.rawHtml(iconHTML('shield-alt')),
         helper.h('p', 'Esta conta é gerada automaticamente e deve ser considerada um bot. A conta não é monitorada pela equipe.')
       ]);
     }
   }

Coloquei o código na parte “Head” do nosso componente, no entanto, ele não está sendo executado. Não tenho certeza se a função não está sendo chamada corretamente, ou se minha instrução IF não está sendo atendida.

Oi @jhealey :slight_smile: Inseri sua postagem no tópico existente, pois as perguntas parecem muito semelhantes. :+1:

Você talvez queira fechar o outro tópico então. Eu provavelmente deveria ter respondido a este tópico em vez disso… :sweat_smile:

1 curtida

Confiei demais nas ferramentas automáticas e não verifiquei. :slight_smile: Removi o outro tópico. :+1:

Obrigado! :blush:

Se você estiver usando await, sua função deve ser async.

1 curtida

Eu não sei como não percebi isso! Obrigado! Está funcionando agora :slight_smile:

Tudo bem! De vez em quando, todos nós cometemos deslizes como esse.

De nada! :heart:

todas essas soluções alternativas são boas e tudo mais, mas isso deveria ser um recurso integrado de uma forma ou de outra.