Fediverse(広義)のサーバは、自分自身のソフトウェア名やバージョン、状態、対応機能などの情報をNodeInfoという形式で提供しています。
fedibird.comのNodeInfoはこれです。
https://fedibird.com/nodeinfo/2.0
クライアントアプリを実装する際、この情報を元に、指定したドメインがActivityPubのサーバであるか、どのソフトウェアかを調べ、それに応じた対応をすることができます。
ただし、ソフトウェアの名称を頼りに判別を行うと、よく知られたあらかじめ対応しているアプリならいいのですが、マイナーな実装、新規の実装は無視されることが多くなります。
実際は、ActivityPubサーバであることだけを確認し、それぞれのAPIを呼び出して応答するか確かめるようにすべきで、
そうすると、MastodonのAPIと互換性のあるサーバソフトウェアであれば、アプリ側が知らないサーバソフトウェアであったとしても、対応できるようになります。
ただし、クライアントアプリ側の事情として、未知の実装で不具合が出た際に、互換性のクレームがアプリ開発者側に来るという問題があり、避けたいというケースもままありますので、意図的に対応しないこともあります。
@noellabo ダジャレを検出しました(検出ワード: シャ, イト)
こういう表記、知ってますか?
> Mozilla / 5.0 (X11; Linux x86_64) AppleWebKit / 537.36 (KHTML, like Gecko) Chrome / 51.0.2704.103 Safari / 537.36
これ、HTTPでサーバとやり取りする際に、ブラウザが自分自身の名前を応答する際の文字列(UserAgent)なんですが、
これも伝統的に名前で判別して動作が変わったり、受け入れが決まったりするので、
MozillaではないのにMozillaと名乗ったり、AppleWebKitとかKHTMLとかGeckoとかChromeとかSafariとか、とにかく名前をずらずら並べて検知されるように工夫せざるを得なくなり、大変醜い姿になり果てています。
NodeInfoの名前で動作を決めるようにすると、FedibirdもMastodonととりあえず名乗っておかないと相手にされなくなりますし、
もともとMastodonとは全く異なるソフトウェアも、MastodonのフリをするためにMastodonを名乗るようになります。そうせざるを得ないので。
まあまあ最悪なので、名前で判別するのはやめてください、というお話です。