Possibilité de masquer les utilisateurs ignorés de la liste des sujets ?

Est-il possible d’effectuer un appel API pour récupérer la liste des utilisateurs ignorés par l’utilisateur et masquer les sujets contenant cet identifiant d’utilisateur, ou de supprimer ces sujets avant le rendu de la liste des sujets ?

1 « J'aime »

Voici mon implémentation pour l’instant

Inspiré par
https://meta.discourse.org/t/topics-created-by-ignored-users-showing-on-homepage/170366/14
Et avec ce composant de thème

Cela fonctionnera également sur mobile.

De plus, si vous mettez à jour cette ligne

en

<a href="{{topic.lastPostUrl}}" data-user-card="{{topic.last_poster_username}}" data-user-id="{{topic.creator.username}}">{{avatar topic.lastPosterUser imageSize="large"}}</a>

et modifiez mon code sur
https://github.com/notedboi/Discourse-Hide-Ignored-Users/blob/main/common/head_tag.html#L13
en

  let tr = $('*[data-user-id="' + ignored[u] + '"]');

Vous pourrez conserver l’affichage de l’avatar et de la carte du dernier auteur tout en masquant les sujets créés par l’utilisateur ignoré.

Ma seule préoccupation est que le script continue de vérifier toutes les 500 ms et pourrait consommer trop de mémoire.

3 « J'aime »

Je regarde également comment supprimer les utilisateurs ignorés de la catégorie mobile des sujets.

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

Et lorsque j’ai essayé d’ajouter data-user-id à cette vue, cela ne fonctionne pas. Est-ce que je regarde le mauvais modèle ?


Mise à jour : Je vois le problème. L’objet topic transmis depuis category.topic ne contient pas l’ID du créateur du sujet. De plus, aucune des propriétés de l’objet topic ne peut être utilisée comme indicateur pour supprimer le sujet. Je suis bloqué. Toute aide sera appréciée :rofl: !

1 « J'aime »

J’essaie de la mettre à jour et d’éviter l’utilisation de setInterval, mais au cas où quelqu’un souhaiterait l’utiliser, la dernière mise à jour prend en charge à la fois Topic Thumbnails et Topic List Excerpts.

Votre code n’a pas semblé fonctionner et a rendu le forum très lent. Des idées ? @th21

Peut-être qu’il est trop ancien pour être utilisé, j’ai créé un nouveau composant si vous souhaitez l’essayer.

Il est basé sur

2 « J'aime »

J’utilise votre composant depuis longtemps et je pense qu’il devrait faire partie du cœur de Discourse, merci beaucoup de l’avoir créé. Malheureusement, il est maintenant signalé car il doit être mis à jour pour les nouvelles listes de sujets Glimmer :

Je vais jeter un coup d’œil

2 « J'aime »