Mögliche Methode, ignorierte Benutzer aus der Themenliste auszublenden?

Ist es möglich, einen API-Aufruf zu tätigen, um die Liste der ignorierten Benutzer des Benutzers abzurufen und die Themen mit dieser Benutzer-ID auszublenden oder diese Themen zu entfernen, bevor die Themenliste gerendert wird?

1 „Gefällt mir“

Hier ist meine aktuelle Implementierung:

Inspiriert von:
https://meta.discourse.org/t/topics-created-by-ignored-users-showing-on-homepage/170366/14

Und mit dieser Theme-Komponente:

Es funktioniert auch auf mobilen Geräten.

Zusätzlich, wenn du diese Zeile aktualisierst:

zu:

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

und meinen Code auf:
https://github.com/notedboi/Discourse-Hide-Ignored-Users/blob/main/common/head_tag.html#L13

zu:

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

änderst, kannst du die Ansicht des Avatars/Karten des letzten Posters beibehalten, während Beiträge von ignorierten Erstellern ausgeblendet werden.

Meine einzige Sorge ist, dass das Skript alle 500 ms überprüft und möglicherweise zu viel Speicher verbraucht.

3 „Gefällt mir“

Ich schaue mir auch an, wie man die ignorierten Benutzer aus dem mobilen Kategorien-Thema entfernt.

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

Als ich versucht habe, data-user-id zu dieser Ansicht hinzuzufügen, hat es nicht funktioniert. Schaue ich vielleicht das falsche Template an?


Update: Ich habe das Problem erkannt. Das topic-Objekt, das von category.topic übergeben wird, enthält keine ID des Themen-Erstellers. Außerdem kann keine der Eigenschaften des topic-Objekts als Flag verwendet werden, um ein Thema zu entfernen. Ich bin blockiert. Jegliche Hilfe wird geschätzt :rofl:!

1 „Gefällt mir“

Ich versuche, es zu aktualisieren und auf setInterval zu verzichten. Falls jemand es dennoch nutzen möchte: Das letzte Update unterstützt sowohl Topic Thumbnails als auch Topic List Excerpts.

Dein Code schien nicht zu funktionieren und machte das Forum extrem langsam. Irgendwelche Gedanken? @th21

Vielleicht ist er zu alt, um ihn zu benutzen. Ich habe eine neue Komponente erstellt, wenn Sie sie ausprobieren möchten.

Sie basiert auf

2 „Gefällt mir“

Ich benutze Ihre Komponente schon seit langer Zeit und ich denke, sie sollte Teil des Discourse-Kerns sein, vielen Dank, dass Sie sie erstellt haben. Leider wird sie jetzt markiert, da sie für die neuen Glimmer-Themenlisten aktualisiert werden muss:

Ich werde es mir ansehen

2 „Gefällt mir“