Possível forma de esconder usuários ignorados da lista de tópicos?

É 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?

1 curtida

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.

3 curtidas

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 :rofl:!

1 curtida

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

2 curtidas

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

2 curtidas