Añadir automáticamente aviso del personal a las publicaciones del usuario

Nuestro sistema genera cuentas para publicar anuncios, nos preguntábamos si había alguna forma de agregar un aviso de personal separado que tuviera su propio icono que se agregara automáticamente a estas publicaciones para que podamos explicar que es una cuenta generada automáticamente. Incluso por ID/nombre de usuario o grupo funciona.

1 me gusta

Creo que puedes lograr esto con componentes de tema. Por ejemplo, este código hace lo que necesitas:

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

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

const bot_id = 128856; // o algún otro
api.decorateWidget("post:before", (helper) => {
    if (helper?.getModel()?.user_id !== bot_id) {return;}
    return helper.h("div.post-notice",[
        helper.rawHtml(iconHTML("shield-alt")), // nombre del icono
        helper.h("p", "este es un bot"),  // texto
    ]);
});

</script>
3 Me gusta

Hola.

He intentado usar JS para añadir automáticamente un aviso para el personal a una cuenta generada automáticamente si es miembro del grupo “autogenerated”, pero no estoy seguro de dónde me estoy equivocando.

   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 cuenta se genera automáticamente y debe considerarse un bot. El personal no supervisa la cuenta.')
       ]);
     }
   }

He puesto el código en la parte “Head” de nuestro componente, sin embargo, no se está ejecutando. No estoy seguro de si no está llamando a la función correctamente, o si mi sentencia IF no se está cumpliendo.

Hola @jhealey :slight_smile: He insertado tu publicación en el tema existente ya que parecen preguntas muy similares. :+1:

Quizás deberías cerrar el otro tema entonces. Probablemente debería haber respondido a este tema en su lugar… :sweat_smile:

1 me gusta

Confié demasiado en las herramientas automáticas y no revisé. :slight_smile: He eliminado el otro tema. :+1:

¡Gracias! :blush:

Si estás usando await, tu función debe ser async.

1 me gusta

¡No sé cómo no me di cuenta! ¡Gracias! Ya funciona :slight_smile:

¡Está bien! De vez en cuando, todos cometemos descuidos como ese.

¡De nada! :heart:

todos estos hacks están bien y todo, pero esto debería ser una característica incorporada de una forma u otra.