@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
@circledev 私、Google+は結局ほぼ使わなかったので、体験が伴っていないんですよね……。当時を知っている人に、様子を聞きたいのです。
@circledev サークルがどのような機能かというと……
自分自身のフォロワーの中からユーザーを選んで、その人にだけ見える投稿を行う機能です。
ユーザーは、サークルを複数作成できます。
ここに、フォロワーから選択したユーザーを追加しておきます。
投稿する際に、サークルを指定して投稿します。
(画面は勝手に開発中のものなので、変更される前提でみてください)
リストはフォロイーの一部から受信する機能で、サークルはフォロワーの一部に送信する機能です。
@circledev limitedは、Diasporaのaspect、それを扱うことができてActivityPubにも対応するHubzilla、そしてもちろんGoogle+のサークル、Facebookのリストなどのハンドリングを想定して、2018年10月18日にプルリクエストが作成され、マージされました。Mastodon v2.6.0以降に反映されています。
https://github.com/tootsuite/mastodon/pull/8950
v2.6.0は、ちょうどダイレクトの取り扱いが変更され、タイムライン上ではなく会話タイムライン(ダイレクトメッセージ / conversation)に分離されたタイミングです。
@circledev Mastodonには、公開、未収載、フォロワー限定、ダイレクトの公開範囲があります。
public, unlisted, private, direct visibility があります。(両方の表現を使うので併記しておく)
この他、実は内部的にlimitedという公開範囲が定義されていて、外部から該当する投稿が流れてくると、受け付けるようになっています。
limitedは、ダイレクトと同じように特定のユーザーにあてた投稿なのですが、誰に宛てたか明示されていません。
投稿本文中のクリックできる @ 付きのユーザー名を、メンション(言及)と呼んでいますが、このメンションを含まずに届いた非公開(公開やフォロワーに届かない)の投稿を、limitedとして扱うようになっています。
実際に、Hubzillaから送られてくることがあります。
limitedは、ダイレクトのようにダイレクトメッセージタイムラインにだけ流れるのではなく、普通の投稿のように、ホームに流れてきます。
互換性のため、これまではWebUIやクライアントにはprivateとして見えていました。
@circledev さてサークル機能ですが、6日前にEugenさんが作成したプルリクエストで、基本的なAPIが用意されました。
https://github.com/tootsuite/mastodon/pull/14354
現在、私が食い気味に追いかけていますが、色々と実現に向けて課題があって、本当に形になるかはわかりません。うまく行ったとしても、Mastodon v3.3.0以降になるでしょう。
APIがあるので、curlとかで叩けば動くことは動くんですが、あまりにも面倒くさいし、問題点が見えてこないので、私が勝手にUIをつくりました。Fedibirdに先行実装して、実験を行っています。よって、これは非公式の開発中のものです。
@circledev まだフォロワー限定とダイレクトには対応できてないんだよ……。
未収載は対応しているから、LTLのあるサーバの人で、LTLに流したくない場合は未収載使うといいよ。
@circledev 公開範囲間違えたw
Mastodonのサークル機能についてあれこれ話すグループです。