#ハッシュタグリレー に、ハッシュタグとアカウントの購読機能を追加しました。
先に投入した、個人参加の機能は、リレーへの送信のみでしたが、こちらは受信のみの機能です。
組み合わせることで、特定タグの送受信が可能になります。
また、直接フォローせずに、特定のアカウントの公開投稿をホームタイムラインで購読できる機能でもあります。
Public Followとか、Weak Followとか、何か名称が必要になりそうな概念です。
現在、Mastodonでの動作は確認されていますが、Pleromaについてはまだカバーできていません。Misskey他、テストできていないシステムで実行すると異常が発生するかもしれませんので、あらかじめご了承ください。
何をしているかというと、relayが条件に一致した投稿をブーストしています。
@ars42525 不具合っぽい感じがするねー。調べるわ。
@noellabo mstdn.jpでフォローした瞬間にmstdn.jpのトゥートのブーストが飛んできた感じです
@sumiyaki 実際にブーストを行っているactorは、relayです。
relayctlは『このハッシュタグ・アカウントの投稿を受信したら、この人にブーストする』というリストを管理しています。
joinやleaveでも、relayctlに指示を出すと、relayがフォロー・フォロー解除を実行します。
relayctlは、あくまで利用者との対話を行うエージェントで、対話のための返信はしますが、リレー行為自体は行いません。
relayは常にこのリストの最新情報を参照して、ブーストを行っています。
なお実際の挙動としては、サーバ毎にまとめ、宛先を複数指定したAnnounceを送っています。
#ハッシュタグリレー を購読している利用者が100人いれば、100個のAnnounceを送るワケですが、所属サーバでまとめると40つになる場合、実際には40個のAnnounceを送れば済むワケです。
Announceは独立したActivityですので宛先(公開範囲)を指定できます。元投稿にも公開範囲があるので、それをどう解釈するかはサーバ次第です。このあたり、最近挙動が動いています。
まだ、ちょっと良く理解できてませんが、私が考えていたのは、クライアントレベル、つまりbotのようなものでサービスする、ということで、これでは、ひとつのサービスアカウントで相手別にそれぞれブーストとかはできないはずです。 relayも相手先毎に別の実態がある、仮想のアカウントなのか、とも思いました。しかし、ActivityPubレベルで相手先を細かく指定できるならば、そういうことも必要なさそうですね。すごい技術ですね。
theboss.techが似たようなこと、つまり、特定のhashtagの記事を自分のインスタンスのLTLに取り込む、というのも、同様の技術なのかも。とすれば、リレーサーバでなくても、インスタンスレベルのサーバならば、ActivityPubで宛先を直接操作できる、というようなことなのか。ところで、当方はPleromaなのでまだ試せませんが、ブーストされた記事のブースト主(?)はrelayということになるのでしょうか?
#ハッシュタグリレー #theboss_tech@sumiyaki Pleroma、HTMLで投稿とかできて面白いですよね。
こういうのも、出来ないシステムからしたら凄く特殊なことをしているように見えますが、仕様上、特にどうということもなかったりするので面白いです。
@sumiyaki MastodonやPleromaのユーザーですと、フォロワー全員にブーストするしかできないですね。
ActivityPubは、サーバ同士のやりとりだけでなく、サーバとクライアントの通信もカバーしています。規定されているだけでも、さまざまなActivityが存在します。
現状、さまざまなActivityPub対応サービスがリリースされていますが、それぞれ、対応している機能はほんの一部です。
Fediverseで何か付加価値のあるサービスをしようと思ったら、やはりActivityPubを直接話すサービスを立ち上げた方が強いです。
他方、ActivityPubを含む必要なサービスをフルサポートすること、互換性があり、安定して機能する状態を実現することは結構大変なので、既存のサービスの上に構築可能であれば、無理に作り込まない方が良いとも言えます。
なお、 #ハッシュタグリレー の場合、ブースト主はrelayです。
Pleromaでは、現状でも連合には届くようにはなっています。個人宛がうまくいっていない感じなので、そのへんを調べようとしているところです。
@noellabo relayをフォローした瞬間にrelayによるブーストが流れてくるのは仕様ですか?