ユーザーの無視ユーザー一覧を取得するためのAPI呼び出しが可能でしょうか?また、そのユーザーIDを持つトピックを非表示にするか、トピック一覧がレンダリングされる前にそれらのトピックを削除することは可能でしょうか?
現時点での実装はこちらです
インスピレーションを得た元記事:
https://meta.discourse.org/t/topics-created-by-ignored-users-showing-on-homepage/170366/14
また、以下のテーマコンポーネントを使用しています:
モバイル端末でも動作します。
さらに、以下の行を更新してください:
<a href="{{topic.lastPostUrl}}" data-user-card="{{topic.last_poster_username}}" data-user-id="{{topic.creator.username}}">{{avatar topic.lastPosterUser imageSize="large"}}</a>
そして、私のコードを以下のように変更してください:
https://github.com/notedboi/Discourse-Hide-Ignored-Users/blob/main/common/head_tag.html#L13
let tr = $('*[data-user-id="' + ignored[u] + '"]');
これにより、投稿者のトピックを非表示にしながら、最終投稿者のアバターやユーザーカードの表示を維持できるようになります。
唯一の懸念点は、スクリプトが500msごとにチェックを続け、メモリを大量に消費する可能性があることです。
モバイルカテゴリのトピックから無視されたユーザーを削除する方法も検討しています。
<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>
このビューに data-user-id を追加しようとしたところ、機能しませんでした。間違ったテンプレートを見ているのでしょうか?
更新:問題がわかりました。category.topic から渡される topic オブジェクトには、トピック作成者の ID が含まれていません。また、topic オブジェクト内のプロパティのいずれも、トピックを削除するためのフラグとして使用できません。ここで立ち往生しています。ご助力いただければ幸いです
!
更新を試みており、setIntervalの使用は避けたいと考えていますが、もしご利用になりたい方がいらっしゃれば、最新のアップデートでは トピックサムネイル と トピックリスト抜粋 の両方に対応しています。
コードが機能せず、フォーラムが非常に遅くなったようです。何か考えはありますか? @th21
おそらく古すぎるため、新しいコンポーネントを作成しましたので、お試しいただければと思います。
これは以下に基づいています。
長年あなたのコンポーネントを使用しており、Discourseコアの一部になるべきだと思います。作成していただき、本当にありがとうございます。残念ながら、新しいGlimmerトピックリストに対応するために更新が必要であるため、フラグが立てられています。
見てみます