みすきーにフォローボタンの実装は難しそうなのはわかったけども、Fedibirdはどうやってタイムラインでフォロー状態を可視化してるんだろ?

これ実装は四年前なのか……
廃止の可能性に言及してるあたり、軽い処理ではなさそーですね……

Fedibirdインフォメーション: " タイムライン上にフォロー・購読ボタンを表示する機能を追加しました。(実験的機能…" - Fedibird
fedibird.com/@info/10348161392 [参照]

フォロー

@yamatsumi_s WebUIやクライアントアプリは、サーバからAccountとStatus(ユーザー情報と投稿の情報)を取得して表示していますが、もう一つ、自分と相手の関係についてRelationshipという情報をサーバから得ています。

ブロックされているとか、フォローしている、されている、アカウント購読しているしていない、ブーストを表示するしない、などの情報です。

通常のMastodonではアカウントの詳細などフォローボタンを表示するときにだけ必要で使われるのですが、

Fedibirdのタイムラインにフォロー状態を表示する機能を有効にしているときには、すべての投稿の投稿者についてタイムライン表示前にあらかじめRelationshipを取得しておく必要があります。このため、通常よりもAPIコールやデータの量、Relationshipをサーバが応答する処理量などが多くなります。

タイムラインには同じアカウントの投稿が何度も流れてきますから、一度取得したものはWebUIやクライアントアプリ側でキャッシュしておいて、未知のアカウントが来た時にだけRelationshipを要求して取得します。なので、連合タイムラインを流し見ているときは特に大量に取得することになります。

@noellabo ありがとうございます!
仰るとおり、連合タイムラインでの処理量半端なさそうですね……

すげー便利に使わせて貰ってます。
改めて :daikansya: !!!

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。