noellabo's tech blog

@noellaboの技術ブログ

Fedibirdのグループ機能について

FedibirdをマージしたQOTOと、グループサーバ

先日、英語圏のMastodonサーバのひとつであるQOTOがアップデートしまして、Fedibirdのほとんどのコードをマージしました。ローカルタイムラインを無効にするところ以外って感じかな。 QOTOではFedibirdの機能の他に、ローカルのみを対象とした投稿が可能で、テキストの他にMarkdownで投稿することができます。LaTeXもinlineで書けます。文字数は65,535。モリモリですね。

QOTOは以前からFedibirdの機能をマージしていたのですが、購読までで、グループやサークルの対応は含まれていませんでした。

これに加えて、QOTO Groupsという、グループを作成する専用のサーバを立ち上げました。 こちらも、Fedibirdのgroup-serverブランチをベースにしたものになっています。v3.2.1にリベースして、アカウント作成するとグループアカウントになるよう調整されています。 Fedibirdのgroup-serverは、映画ドンと野球ドンのためのブランチで、いろいろ作りっぱなしになっていたので、だいぶ手をかけて整備してくれたようです。

英語圏で盛んにアナウンスしているので、少し認知があがったのでは無いかと思います。

これまではFedibird単独で取り組んでいる段階でしたから、一気にギアが入った感じがしますね。

Fedibirdのグループ機能

それでは、Fedibirdのグループ機能を少し紹介しておきましょう。

Fedibirdのグループ機能は、MastodonやPleroma、Misskeyなどの任意のFediverseのアカウントから参加することができるグループを作成し、参加者が共有するタイムラインを提供します。 コミュニティを、サーバ単位ではなくグループ単位で作ることができるようにするための機能です。

グループアカウント

グループは、各サーバからアカウントとして認識されます。 対応している場合は、グループであることが明示されます。 (このスクリーンショットはFedibirdのものではありません)

f:id:noellabo:20201108202244p:plain
グループアカウント

このアカウントをフォローすることで、グループに参加できます。 グループアカウントのフォロワーが、参加者の人数ということになります。

グループディレクトリ

グループは、その存在を知らないと参加することが出来ません。 そこで、Fedibirdではグループを探すためのグループディレクトリという機能を追加しました。

f:id:noellabo:20201108214805p:plain
グループディレクトリ

ここに表示されるグループは、何らかのかたちで既にサーバが認識しているグループアカウントのうち、ディレクトリへの表示を有効にしているものだけになります。存在が秘密のグループもありますからね。連合を通じて、グループの情報は自動的に蓄積されていきます。

グループタイムライン

グループへの投稿は、メンションによって行います。 参加者によってメンションされた投稿は、グループの参加者へブーストされます。 参加者は、グループをフォローしているので、ブーストはホームタイムラインに流れます。

グループの投稿だけをみたい場合、Mastodonではリストを作成し、グループのアカウントだけを追加するのが簡単です。あるいは、グループのアカウントの投稿一覧を辿ることもできます。

リストを使う場合のメリットは、タイムラインとしてカラムをピン留めでき、ストリーミングされること、クライアントアプリで参照しやすいことです。デメリットは、件数に制限があり、古い投稿を辿れないことです。

アカウントの投稿一覧を使うメリットは、サーバが受け取っている範囲になりますが、古い投稿を最後まで辿れることです。デメリットは、カラムをピン留めすることができず、ストリーミングされないことです。

Fedibirdでは、グループの投稿を表示する専用のタイムラインを追加しました。グループアカウントを参照しようとすると、通常のプロフィール表示ではなく、グループタイムラインが表示されるようになっています。

f:id:noellabo:20201108215611p:plain
グループタイムライン

このグループタイムラインは、カラムをピン留めでき、ストリーミングに対応しています。サーバが受け取っている範囲で、古い投稿も最後まで辿れます。カラムタイトル右側にインフォメーションのトグルボタンがあり、グループの概要を表示できます。タイムラインは、ブーストされたという表示が省略されスッキリ見通せます。デメリットは、まだどのクライアントアプリも対応していないことです。

メンションの入力補助

Fedibirdでは、グループアカウントあてのメンションを入力する補助として、@@をサポートしています。 自分がフォローしているグループだけが候補になるので、入力が楽になります。候補を選択したあとは、通常のアカウント表記で補完されます。

f:id:noellabo:20201108220939p:plain
グループあてメンションの補完

ブースト通知の省略

これはMastodonの機能としてあらかじめ本家に追加してあるのですが、自分のフォローしているグループアカウントにブーストされた場合、ブーストされたことを通知しないようになっています。PleromaやMisskey、古いMastodonなど未対応の実装では、投稿する度にブースト通知されて通知欄を無用に占拠しますし、煩わしいかと思います。

グループサーバについて

現在、任意のグループを作成する手段としては、QOTO GroupsGuppe Groupsがあります。Fedibirdの開発用グループサーバとしてGroup server for development by fedibirdがあり、いくつかの実験的なグループを提供していますが、一般登録は受け付けていません。

Guppe Groups

Guppe Groups Image
Guppe Groups Image Picture

Fedibird系のグループより先行して実装されているグループサーバで、極めて簡便に新しいグループを追加することができますが、管理する機能はほとんど持ち合わせていません。gup.peドメインの任意のアカウント名をWebFingerで問い合わせると、それだけでグループが作成されて使用できるようになります。

QOTO Groups

f:id:noellabo:20201108223840p:plain
QOTO GroupsのAbout画面

Mastodonをベースとした、グループアカウントをホストする専用のサーバです。登録したアカウントは自動的にグループになります。通常はActorのタイプがPersonまたはService(bot)になりますが、ここではGroupになります。

フル機能のMastodonの能力を備えているので、アカウントのプロフィールを編集したり、ディレクトリへの掲載やフォロワーの公開・非公開を選択したり、フォローリクエストを受けるようにして参加者を制限したり、アカウントをブロックして利用を制限したり、ブーストを解除することで配送した投稿を実質的に削除するなどのモデレーションを行うことができます。

グループでできること、できないこと

現在、グループサーバや、参加者のサーバとの連携など、グループを実現する仕組みの制限により、公開範囲がフォロワーのみとダイレクトの投稿を扱うことが出来ません。公開または未収載で投稿する必要があります。

つまり、まだ秘密のグループを作成することはできません。

とはいえ、未収載でグループに参加できるのは非常に便利です。 ローカルタイムラインや連合に流さずに、グループタイムラインだけを対象に投稿できるからです。

グループを、ハッシュタグを使って特定の話題を共有する方法と比べた場合、参加者の投稿が漏らさず共有できること、未収載にすることが可能なこと、参加者を限定できること、などのメリットがあります。