pantasystem / Milktea

Misskey, MastodonのAndroidクライアント「Milktea」のソースコード
GNU General Public License v3.0
256 stars 22 forks source link

Misskeyのリアクションを限定する機能について #1519

Closed pantasystem closed 1 year ago

pantasystem commented 1 year ago

概要

Misskeyでは「いいね」以外のリアクションを禁止にする機能が予定されている https://github.com/misskey-dev/misskey/pull/10256 機能の概要としては投稿時に「全て」「いいねのみ」「リモートからはいいねのみ」という選択をすることができる 「いいねのみ」を選択した場合対応しているインスタンスからは「❤️」以外のリアクションができなくなる。 またそれ以外のリアクションを送信した場合は強制的に「❤️」に書き換えられる。

Milkteaでの対応の可否

リモートのインスタンスがこの仕様に対応していなかった時の挙動が謎なのと 仮にリモートのリアクションをリジェクトする仕様がない場合、大規模インスタンスが有利、不利になり Fediverseとしては微妙な機能に思える。 そのためしばらくは様子見しつつ頻繁に使われるようになれば対応する

pantasystem commented 1 year ago

設計

reactionAcceptanceというフィールドが追加されたのでそのフィールドをもとに判定するようにする。 reactionAcceptanceは定数で3種類の状態を持つ nullの場合はこれまで通りの処理で良いが likeOnlyの場合は表示状態やリアクションの送信内容を変更する必要性がある。 likeOnlyForRemoteの場合は同一ホスト(ローカル)の場合はこれまで通りの処理で良いが リモートの投稿の場合はlikeOnlyと同様の処理を実行する必要性がある。 またlikeOnlyの場合はリアクションに「❤️」以外のリアクションが送信できなくなる。

これらのことを踏まえ likeOnlyに該当する場合はリアクションピッカーボタンのアイコンを+から❤️に変更する。 またリアクションボタンを押した時はリアクションピッカーを送信するのではなく myReactionの状態をチェックして「❤️」を送信する実装にする。