É possível fazer uma chamada à API para obter a lista de usuários ignorados do usuário e ocultar os tópicos que contêm esse ID de usuário ou remover esses tópicos antes de a lista de tópicos ser renderizada?
Aqui está minha implementação por enquanto:
https://github.com/notedboi/Discourse-Hide-Ignored-Users
Inspirado em:
https://meta.discourse.org/t/topics-created-by-ignored-users-showing-on-homepage/170366/14
e neste componente de tema:
Ele também funcionará no mobile.
Além disso, se você atualizar esta linha:
para
<a href="{{topic.lastPostUrl}}" data-user-card="{{topic.last_poster_username}}" data-user-id="{{topic.creator.username}}">{{avatar topic.lastPosterUser imageSize="large"}}</a>
e alterar meu código em:
https://github.com/notedboi/Discourse-Hide-Ignored-Users/blob/main/common/head_tag.html#L13
para
let tr = $('*[data-user-id="' + ignored[u] + '"]');
Você conseguirá manter a visualização do avatar/cartão do último postador, enquanto remove o tópico criado pelo autor.
Minha única preocupação é que o script continua verificando a cada 500 ms e pode consumir muita memória.
Também estou analisando como remover os usuários ignorados da categoria de tópicos no mobile.
<script type="text/x-handlebars" data-template-name="components/mobile-category-topic">
<td class="main-link" data-user-id="{{topic.creator.username}}">
<div class="topic-inset" >
{{raw "topic-status" topic=topic}}
{{topic-link topic}}
{{#if topic.unseen}}
<span class="badge-notification new-topic"></span>
{{/if}}
<span class={{cold-age-class topic.last_posted_at}} title={{raw-date topic.last_posted_at}}>{{format-age topic.last_posted_at}}</span>
</div>
</td>
<td class="num posts">{{raw "list/post-count-or-badges" topic=topic postBadgesEnabled="true"}}</td>
</script>
E quando tentei adicionar data-user-id a esta visualização, não funcionou. Estou olhando para o modelo errado?
atualização: Vi o problema. O objeto topic passado por category.topic não contém o ID do criador do tópico, e nenhuma das propriedades no objeto topic pode ser usada como sinalizador para remover o tópico. Estou travado. Qualquer ajuda será apreciada
!
Estou tentando atualizá-lo e evitar o uso de setInterval, mas, caso alguém queira utilizá-lo, a última atualização suporta tanto Miniaturas de Tópicos quanto Trechos da Lista de Tópicos.
Seu código não pareceu funcionar e deixou o fórum muito lento. Alguma ideia? @th21
Talvez esteja muito antigo para usar, criei um novo componente se você quiser experimentá-lo.
É baseado em
Tenho usado seu componente há muito tempo e acho que ele deveria fazer parte do núcleo do Discourse, muito obrigado por criá-lo. Infelizmente, ele agora está sendo sinalizado porque precisa ser atualizado para as novas listas de tópicos do Glimmer:
Vou dar uma olhada