自分がブロックした人のリアクションをレスポンスから除外して欲しい
Summary
自分がブロックした人のリアクションをバックエンドのレスポンスから除外して欲しい
Purpose
精神衛生に悪いため
Do you want to implement this feature yourself?
- [ ] Yes, I will implement this by myself and send a pull request
related: https://github.com/misskey-dev/misskey/issues/13411
ミュートじゃなくてブロックなので一応別issue扱い
それでは解決しません。 私が意図していたのはノートのリアクション表示(図1)において、リアクションにブロックしているユーザーが含まれているのであればその数を表示から減じて欲しいという意味です。 例えば図1の枠線で囲ったリアクションにブロックしているユーザーが1人ずつ含まれている場合、図2のようにしてほしいです。
図1
図2
パフォーマンス的に実現不可能かも
パフォーマンス的に実現不可能かも
そこなんですよね (実現しようとするといちいちブロック関係を調べる必要がある)。 代替案としてはフロントエンドでいい感じに結果を操作することも考えましたが、次の2点が懸念です。
- 自分がブロックしたアカウントをいちいち問い合わせる/ストリーミングしてもらうことになる。これは多分望ましくない
- サードパーティークライアントとの相性がよくない (多分どうにかなる)
ブロック済みアカウントidをstoreにキャッシュすることで一応パフォーマンス面自体の問題は大きくなくなるかも
ただ自分に対するリアクションじゃないならブロックよりミュートの役割な気がします
今はどのリアクションがいくつ付いてるかという情報しか取ってきてないから自分がブロックしているアカウントをノーコストで取れたとしても意味がないわね
あーリアクション(した人一覧)を押したときに出る人間を消してほしいって要望じゃなくて数を減らしてほしいだと難しいかもしれない
個人的には、リアクション一覧に、ユーザーミュート(ブロックではなく)した相手が載らないぐらいが丁度良い塩梅なのかなと思ったり…? (もうなっている?)
note.reactionAndUserPairCacheを利用するのはどうでしょうか?
少なくともそれぞれのリアクションのユーザーを全て検索する必要がなくなります。
実験的に実装してみましたが、最初の16人についてミュートを適用するだけでも精神衛生という観点では非常に良い結果が生まれそうです。
(リアクションが悪目立ちするのはリアクション数が少ないときである気がする(???))
これに加え、リアクション一覧からmutee userを消去すると良いと思います。