📍

fediverse.observerでFediverseをObserveする

2023/07/06に公開

何かシェアしたほうがいいナレッジらしいので残しておきます。

https://fediverse.observer/

Fediverse Observerは、fediverse内のすべてのサーバーをチェックし、マップまたはリストを使用して家を見つける簡単な方法を提供します

つまり日本人が日本にあるサーバーを探しやすくしたり、日本人が日本語で会話できるサーバーを探すことができるサイトです。

https://fediverse.observer/mstdn.jp

ただmstdn.jpがEnglishで検出されたり、CDNを使用しているためサーバーの所在がわからなくなっていたりするのであまり実用性はないです。

https://fediverse.observer/new-servers.xml

また、Fediverseで新たに発見したサーバーをRSSで購読できます。
少し前に"New lemmy server found in the fediverse."が無限に流れてきて面白かったです。

https://gitlab.com/diasporg/poduptime

一応GNU AGPLv3のOSSなので誰でも建てれるようになっています。

まあそれはそれとして、今回紹介したいのはこのウェブサイトのバックエンドで使用している
GraphQL APIのほうですので、こちらへアクセスしてみてください。

https://api.fediverse.observer/

なんとIDEが表示されました。
これはGraphiQLという誰でも簡単にGraphQLを書いてAPIを取得できるOSSです。

https://dev.classmethod.jp/articles/try-graphiql/

ライセンスはMIT Licenseです。

https://github.com/graphql/graphiql

では最強GraphQLを書いてみましょう。

{
  softwares {
    softwarename
    count
  }
}

色の付いた三角形のボタンを押すか、Ctrl + Enterキーを押してみましょう。
こんな感じでJSONが表示されるではありませんか!

{
  "data": {
    "softwares": [
      {
        "softwarename": "...",
        "count": 1
      },
      ...
    ]
  }
}

残念ながらsoftwarenameの昇順でソートされますので、countの降順で並び替えたい場合はJSONをCSVに変換してExcelに貼り付けるなりjqのsortを使うなりしてうまいことやっておいてください。

countを降順で並び替えると、簡単に人気のあるActivityPub実装が見つかりますし、
逆にcountを昇順にすればThreadsのようなOSSではない1個のサーバーだったり、1から作った新しいActivityPub実装を見つけることができます。

fediverse.observerは一定時間、FediverseをObserveして見つけてくるそうです。
基本的にnodeinfoの情報を見てくれるので、nodeinfoさえちゃんと実装して連合に参加すれば表示されるようになっています。
他のFediverseクローラーはMastodon APIも実装していないとちゃんと表示されないことが多いので、Mastodon APIを考えなくていいActivityPubを実装する時の励みになります。

https://nodeinfo.diaspora.software/

最後にcurlをはじめとしたHTTPリクエストクライアントでJSON APIを取得するコマンドを紹介して終わりにします。

$ curl -H 'Content-Type: application/json' -d '{"query":"{softwares{softwarename count}}"}' https://api.fediverse.observer/
{"data":{"softwares":[{"softwarename":"...","count":1},...]}}

Discussion