사용자 게시물에 직원 공지사항을 자동으로 추가

저희 시스템은 공지사항 게시를 위해 계정을 생성합니다. 이러한 게시물에 자동 생성된 계정임을 설명하는 별도 스태프 안내 문구를 아이콘과 함께 자동으로 추가할 수 있는 방법이 있는지 궁금합니다. 사용자 ID/이름 또는 그룹 기준으로 작동해도 무방합니다.

테마 컴포넌트를 사용하면 이 작업을 수행할 수 있다고 생각합니다. 예를 들어, 다음 코드가 필요한 작업을 수행합니다:

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

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

const bot_id = 128856; // or some else
api.decorateWidget("post:before", (helper) => {
    if (helper?.getModel()?.user_id !== bot_id) {return;}
    return helper.h("div.post-notice",[
        helper.rawHtml(iconHTML("shield-alt")), // icon name
        helper.h("p", "this is a bot"),  // text
    ]);
});

</script>

안녕하세요!

“autogenerated” 그룹의 멤버인 경우 자동 생성된 계정에 직원 공지사항을 자동으로 추가하려고 JavaScript를 사용해 봤는데, 어디서 잘못되고 있는지 잘 모르겠습니다.

<script>
   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', 'This account is auto-generated and should be considered as a bot. The account is not monitored by Staff.')
       ]);
     }
   }
 </script>

위 코드를 컴포넌트의 “Head” 부분에 넣었는데 실행되지 않습니다. 함수를 올바르게 호출하지 못하고 있는 건지, 아니면 IF 조건문이 충족되지 않고 있는 건지 파악이 되지 않습니다.

안녕하세요 @jhealey :slight_smile: 질문이 매우 유사해 보여서 기존 토픽에 게시글을 옮겼습니다. :+1:

그럼 다른 토픽은 잠가두는 게 좋을 것 같아요. 사실 이 토픽에 답변을 달았어야 했는데… :sweat_smile:

자동 도구가 처리할 거라고 너무 믿고 확인을 하지 않았습니다. :slight_smile: 다른 주제는 삭제했습니다. :+1:

감사합니다! :blush:

await를 사용하려면 해당 함수는 async여야 합니다.

어떻게 그걸 못 봤는지 모르겠어요! 감사합니다! 이제 작동합니다 :slight_smile:

괜찮아요! 가끔씩 우리 모두 그런 실수를 하니까요.

도움이 되었다니 기쁩니다! :heart:

이 모든 해킹 기법들은 물론 좋지만, 어쨌든 이건 어떤 형태로든 내장 기능이 되어야 합니다.