無視されたユーザーによって作成されたトピックがホームページに表示される

@BeBeさん、どのような回避策を見つけましたか?

投稿は他のトピックで見られても構いませんが、作成したトピックは非表示にしたいのです。

彼らのトピックはいつも同じ(退屈な)話題ばかりです。:wink:

ユーザーの投稿をトピック内で非表示にするCSSの方法はあります。

.topic-post article[data-user-id="26487"]

しかし残念ながら、トピックリストには作成者のユーザーIDが含まれていないため、ユーザーが作成したトピックを非表示にする方法はありません。

ユーザー名 abc、ID 123 としましょう。

ソースコードを見て、ユーザーCSSで実現できるか確認しました。

現在のトピックタグは次のようになっています。

<tr data-topic-id="123" id="ember123" class="topic-list-item … ember-view">

その中で、投稿者のセルをクエリすることはできますが、親を非表示にしたい場合はJavaScriptが必要になります。

tr > td.posters > a:first-child[data-user-card='abc']

もし、トピック tr に直接 追加属性 data-op-user-id="123" があれば:

<tr data-topic-id="123" id="ember123" data-op-user-id="123" class="topic-list-item … ember-view">

簡単なユーザーCSS を使用して、トピックをあまり見たくないユーザーIDでフィルタリングできます。

tr.topic-list-item[data-op-user-id='123']

トピックエントリ tr.topic-list-item タグに、このような新しい data-op-user-id を追加することは可能でしょうか?


デスクトップモードでのみ機能します。以下を参照してください。


興味のある方のために、community.metabrainz.org 用に 簡単なユーザースクリプト を書きました。
最初は推奨されていた MutationObserver を試しましたが、複雑になりすぎたため、単純な setInterval を使用しました。

動的でユーザー設定などはありません。
各アップデートでブラックリストと @include が消去されます(後述)。

Discourse に data-op-user-id 属性が追加されれば、このユーザースクリプトは不要になるはずです。

@include を自分のURLに変更することで、他のDiscourseフォーラムにも適応できます(唯一の特定行)。


残念ながら、デザイン上、DiscourseはモバイルビューでOPのアバターを表示しないため、モバイルビューでは機能しません。

そのため、提案された tr.topic-list-item[data-op-user-id='123'] は、スパム対策として非常に便利です。

私はそれを動的でユーザー設定などにはしませんでした。
各アップデートであなたのブラックリストが消去されます

アップデートでブラックリストがリセットされなくなりました。基本的なブラックリストエディタを追加し、リストはローカルに保存されるようになりました。

しかし、Discourse が各トピックの <tr> 行に OP のユーザー ID を追加してくれれば、非常に簡単なユーザースタイルシートで無視したユーザーのトピックを非表示にできるのに、と強く願っています。

tr.topic-list-item[data-op-user-id='123'] { display: none; }

あるいは、Discourse が単に無視したユーザーのトピックを非表示にしてくれれば、もっともっともっと嬉しいです。

無視したユーザーがいるのに、そのトピックが私の閲覧を汚染する目的が理解できません。