みすきーにフォローボタンの実装は難しそうなのはわかったけども、Fedibirdはどうやってタイムラインでフォロー状態を可視化してるんだろ?
これ実装は四年前なのか……
廃止の可能性に言及してるあたり、軽い処理ではなさそーですね……
Fedibirdインフォメーション: "#fedibird タイムライン上にフォロー・購読ボタンを表示する機能を追加しました。(実験的機能…" - Fedibird
https://fedibird.com/@info/103481613922910349 [参照]
みすきーにフォローボタンの実装は難しそうなのはわかったけども、Fedibirdはどうやってタイムラインでフォロー状態を可視化してるんだろ?
これ実装は四年前なのか……
廃止の可能性に言及してるあたり、軽い処理ではなさそーですね……
Fedibirdインフォメーション: "#fedibird タイムライン上にフォロー・購読ボタンを表示する機能を追加しました。(実験的機能…" - Fedibird
https://fedibird.com/@info/103481613922910349 [参照]
@yamatsumi_s WebUIやクライアントアプリは、サーバからAccountとStatus(ユーザー情報と投稿の情報)を取得して表示していますが、もう一つ、自分と相手の関係についてRelationshipという情報をサーバから得ています。
ブロックされているとか、フォローしている、されている、アカウント購読しているしていない、ブーストを表示するしない、などの情報です。
通常のMastodonではアカウントの詳細などフォローボタンを表示するときにだけ必要で使われるのですが、
Fedibirdのタイムラインにフォロー状態を表示する機能を有効にしているときには、すべての投稿の投稿者についてタイムライン表示前にあらかじめRelationshipを取得しておく必要があります。このため、通常よりもAPIコールやデータの量、Relationshipをサーバが応答する処理量などが多くなります。
タイムラインには同じアカウントの投稿が何度も流れてきますから、一度取得したものはWebUIやクライアントアプリ側でキャッシュしておいて、未知のアカウントが来た時にだけRelationshipを要求して取得します。なので、連合タイムラインを流し見ているときは特に大量に取得することになります。
@noellabo ありがとうございます!
仰るとおり、連合タイムラインでの処理量半端なさそうですね……
すげー便利に使わせて貰ってます。
改めて :daikansya: !!!
GNU social JP is a social network, courtesy of GNU social JP管理人. It runs on GNU social, version 2.0.2-dev, available under the GNU Affero General Public License.
All GNU social JP content and data are available under the Creative Commons Attribution 3.0 license.