@circledev Pleromaは、リストを投稿先にするような機能があるんよ。visibilityが list:1 とかそういう感じに表現される奴。
@noellabo @circledev メンバー一覧の公開ですね。他の人はそれをサクる(フォローする)ことで、そのメンバーに擬似的に投稿内容を見せることが出来ました。
ただ、投稿内容を見るにはお互いにサクる必要があり、他の人が再共有でもしない限りは見えないので、あくまで他の人が見えるって感じですね。
その辺は連合がある分fediverseの方が便利かもしれません。
@circledev for #fedibird
グループに一連の仕様や経緯・課題について書いてあるので、そこをみていただいた上で(みて無くてもいいですけど)、適当に使ってみてOKです > サークル機能
いろいろ期待通りいかないところもあるし、突然はずしたり仕様変えたりもするので、そこはあらかじめ承知でお願いします。
@akyoz @circledev ははー。そうか、サークルのストリーム(タイムライン)があるか。
サークルシェアは、メンバー一覧やストリームを公開する感じですか? 他の人もそこに投稿できたりします?
@noellabo @circledev 微妙にことなる動きに見えますね
イメージとしてはリストと今回のサークルを合わせたような形で、サークルだけのストリームで表示をすることが出来ました。
また、サークルシェアでサークルのリストを他のユーザに見せるなどの機能もありました。
@circledev おわかりいただけただろうか……
(むりです)
@circledev さて、サークルは、サークルに含まれるユーザーの個別のinboxにstatusを送ります。
そうすると、toもccも空っぽなのに、相手のユーザーに届くことになります。これが(現在の)サークルの仕組みです。
届いたstatusには、暗黙のmentionが一つだけ指定されているので、投稿者と受け取った人だけがこれをみることができます。
このとき、受け取るユーザーは、元の投稿者のフォロワーなので、受け取って良いと判断します。inboxに入ってきた投稿をすべて受け入れるのはマズいので、いくつか制約を課しているわけです。
@circledev どのタイムラインに配送されるか、どんな投稿がタイムライン上で表示を抑制されるか、というのは、visibilityやmentionの有無、relpyやフォロー関係に基づいて判断されますが、ひとまず割愛します。
ActivityPubの表現としては、btoやbcc、audienceなども宛先として指定できますし、例えば投稿者以外のフォロワーコレクションを指定することもできますが、これをフルサポートしている実装は……あるのかな。少なくともMastodonでは、この一部だけにしか対応していません。
フォロワーのコレクションはurlになっていて、そこにアクセスすれば一覧を取得できますが、これは実際には見に行きません。また、先方が非公開にしている場合もあります。
実際に使われているのは、そのサーバに記録されている投稿者のアカウント情報と、それに紐付けられている、ローカルのフォロワー情報だけです。リモートのフォロワーについては関知していません。
このフォロワー情報は、フォローのやりとりで構築されるもので、先方がDBロールバックしたりすると不一致になることもあります。
@circledev あるユーザーが投稿を読むことができるかは、このvisibilityとフォローの有無、mentionに基づいて判断されます。
投稿した本人は、自分の投稿であればすべて読めます。
公開、未収載はだれでもOKです。
フォロワー限定は、フォロワー限定となりますが、メンションが含まれている場合は、メンションされたユーザーも読むことができます。
ダイレクトについては、メンションされたユーザーだけ読むことができます。
@circledev Mastodonの内部実装としては、投稿はstatusというモデルに保存されています。
statusにはvisibilityパラメータがあり、投稿した際は指定した通りになります。
リモートからActivityPubで届いた場合は、toにpublicが指定されていれば公開、ccにpublicが指定されていれば未収載、toに投稿者のフォロワー(コレクション)が指定されていればフォロワー限定、それ以外をダイレクトと認識します。
また、本文からメンション表記を抽出し、これをmentionモデルに記録します。statusには、このmentionが複数紐付けられます。
ActivityPubでは、サーバの代表窓口となるshared_inboxと、アカウント毎の窓口である個別のinboxがあり、inboxに届いた場合は暗黙のmentionが行われている(そのユーザーを宛先にしている)と解釈するようになっています。
この時、visibilityがダイレクトの投稿をlimitedに変更します。
@circledev 同じ投稿をみている人同士で話をしたいって用途をカバーするのはグループなのですが、実際、混同しやすいです。
@noellabo @circledev なるほど!誰とその情報を共有しているかを共有者に開示せずにできるんですね。
@estpls @circledev 普通のDMとの違いですが、相手を沢山指定しようとすると、メンションをずらずら並べる必要があって、
・邪魔
・スパムっぽい
・送り先を全員で共有して良いのか
というのがありますので、便利は便利なんですよ。
@circledev 公開範囲がDMならグループDMみたいにつかえるのかな?て、それなら普通のDMでも可能ですね…
@circledev 技術面で課題となっているのは、Fediverseでの互換性と、サークルによって届いた投稿に対する返信の扱い。
Pawooはアップデート待ち。Masotodnのベースバージョンが古いため、そもそも届きません。
v2.6.0以降の現行Mastodonではprivateに見えるので、返信すると、元投稿の投稿者と、返信した人のフォロワーに届きます。
Pleromaではdirectに見えるので、返信は元投稿の投稿者へのダイレクトメッセージになります。
Misskeyには届かないようです。
返信はサークルのメンバーだけに届いて欲しいという思いがあるようなので、どうにかならないか思案中です。
安全側に倒すなら、返信はダイレクトメッセージが良いと思うのですが、それじゃつまらん、という声が……。
@circledev Google+では確かフォローしたアカウントをサークル(だったかな?)ごとに分類できて公開するポストもサークルごとに分けられたような遠い記憶が
@circledev Google+で、サークルどんな風に使ってたんだろう?
@circledev 細分化した特定のテーマのために使ったりするのがいいのかしら
@circledev ポジションとしてはその通りだけど、めっちゃ根幹をいじらないと実現できないので、一番分離しにくい奴ですわ。 @guskma
QT: https://abyss.fun/@guskma/104571819801146050
@circledev これはプリセットだったんかな?
QT: https://mstdn.y-zu.org/@Cookie/104571800846606628
Mastodonのサークル機能についてあれこれ話すグループです。