もっと見る

の制御コマンドが増えてきて便利になってきたんだけど、これ一般の人に使ってもらうような代物じゃないな、やっぱり……。

WebUIを真面目に作らないと、使い方が難しくてわからん、という感じになっている。

まぁ、もうしばらくはその方がいいかもしれんけどw

のrelayctlに制御コマンドを送ると実行結果をDMで返信してくるんだけど、これすっごい邪魔なことに気がついた……。

自分の投稿はいくらでも消せるけど、相手から届いたDMは消せない。DMカラムが汚染されていく……。

そういうわけで、プライベートで返信するように変更。実行結果は主に通知をみてもらうようにする。

通知はその気になれば消せるし、どのみち他のモノで埋まっていくものなので、ここならまぁ邪魔にはならない。リプライになっているので、制御コマンド投稿にぶら下がっている。あと、relayctlのアカウントページからまとめて辿ることもできるハズ。

relayctlは誰もフォローできないので、メンション付きプライベート投稿の公開範囲は、実質DMなのだ。

CrystalのI18n対応、ひとまずこのshardsに落ち着いた。
github.com/TechMagister/i18n.c

あと、HTTP::HandlerについてはAmberで使われているcitrine-i18nを使わせてもらうことにした。
github.com/amberframework/citr

だが、MastodonもPleromaも、Activityを送ってくる時にAccept-Languageをつけてこないので役に立たないw

MastodonはActivityにcontent付ける時contentMapで使用言語の情報をよこすので、それを利用。

Pleromaは特に情報がないので拾えず。

わりといいところまで新機能書いたりしてたんだけど、開発環境が動かなくなったので復旧してからの再開になります……まぁ一日あれば戻るけども。

githubも、pushしてないと最新版になっているわけではないから、デバッグしてたヤツは手元にはない。なんでもかんでもpushする気にはならないしなー。

まぁTimeMachineでバックアップされてるので、そこから復旧するのだけども。

オイゲンさんがハッシュタグに力を入れている件、具体的にはまずこれです。

ユーザー自身で、注目しているハッシュタグを10個まで、設定ページからエントリーすることができます。(候補が提案されているのが親切ですね!)

そうすると、公開のプロフィールページに設定したハッシュタグのボタンが表示されるようになって、絞り込み表示ができます!

画像は、私のプロファイルページで、 に絞り込んで表示した実例です。
dtp-mstdn.jp/@noellabo/tagged/

私のプロフィールに表示されているハッシュタグも、わりとイカした実例だと思いますが、他にも上手な使い方があるかと思います。

たとえば作品発表している人なら、自作品につけているタグを掲載したら、かなり便利だと思いませんか?

、以前はブーストを適切にフィルタしてなかったんですが、今回の更新分からはフェッチして中身をみて判定するようになっています。

サーバ参加は、まだ全部を受け取れないみたい。バグがあるね、こりゃ。またあとで調べます。

スレッドを表示

@noellabo URLが入ると変換されちゃってアレだな……。

mix pleroma.relay follow https://hashtag-relay.dtp-mstdn.jp/actor

//だけ全角にしてみた。

スレッドを表示

結局、Pleromaとずっと格闘してしまった……。

・個人リレー参加(送信のみ)
・サーバ参加(受信のみ)

このへんは で動くようになっています。

サーバ参加の場合、コマンドはこんな感じです。
mix pleroma.relay follow hashtag-relay.dtp-mstdn.jp/act

Pleroma側にも機能を実装していきたいところだけど、その前に、 のコード(pub-relayのフォークで、selective-relayというのがプロダクト名だったりする)をちゃんとして、独自性、有用性、存在感を確立させておかないと相手にされないでありましょう。

取り急ぎ、Misskeyの方を先にやろう。

スレッドを表示

Pleromaのリレー機能追いかけていたんだけど、今のこれってちゃんと機能してるんだろうか……。

まぁとりあえず、 では、Pleroma標準のリレー参加コマンドで参加を受け付けるようにして、リレーから受信できるようにはした。

リレーへの送信は、個人参加は動くので、とりあえずそれでなんとかしてくれって感じ。

まだ本番環境には適用してない。とりえあず現状報告。

Pleromaを(手動で)ハッシュタグリレーに参加させた状態です。リレーから受信できています。

送信も個人参加で実現できています。サーバ単位での参加は、Pleroma側の実装を確認中です。

まだ細かな部分では問題含みなので、解決に取り組んでいます。

とりあえず、技術的には可能、ということをお伝えしておきます。

リレー制限を10分にしたよ。ぽむたんを再召還して能力が封じられたか確認しようず。 @nippon

一応、Pleromaからの投稿がMastodonにも届くようになったけど、これ削除が転送できないのでは……。

Pleroma、リレーの受信は問題なさげ。

relayctlが送信するActivityの何かが原因でタイムラインの読み込みにエラーが発生する症状がでているので、原因解明までPleromaあての送信は失敗するようにしておくことにする。

Mastodon FE(PleromaのMastodonの見た目のフロントエンド)では問題が起きないので、Pleroma FEを調べる。

スレッドを表示

まぁ、非互換性といっても、一つ一つは些細なモノです。

ただし、どんなに些細な違いでも、エコシステムに致命的な影響を与えることがあります。

APIの破壊的変更を伴って、辛うじて生き延びていた古いバージョンのサーバやクライアントが死滅するかもしれません。まぁ、隕石が衝突したみたいな話ですね。

リレーの話で言うと、PleromaのinboxにPOSTする(Activityを送信する)際に、Content-Type : application/activity+json をちゃんと送信する、というのがありました。

pub-relay、何も送らないんですが、そうするとPleromaがHTTP 500エラーを吐きますw

Mastodonは動いちゃう。

いま、MisskeyからのPublicKeyがデコード出来ないってエラーでハマっています。解決方法は確認中です。まぁ、そういう話です。

なんか難しい話してる、としか思えないかと思いますが、恐らくActivityPubを扱っている人ならだいたい同じトコで悩むことが多いと思うんですよね……。

スレッドを表示

ハッシュタグリレーは、Mastodon本家のリレー(pub-relay / Crystal言語で書かれた配送にsidekiqを用いるバージョン / 作成者はChris Hobbs)から派生して書かれているのですが、

この本家リレー、ActivityPubベースでやりとりするようになっていて、一応はFediverseに向けた汎用目的になっていますが、実際はMastodonの実績はなく、そのままで機能するようにはなっていません。細かなところで非互換があって、実装間の差異を埋めていくには、ActivityPubの実務に詳しくなっていくしかなさそうです。

現在、少しずつActivityPub対応のコードを書く人が増えてきているように観測していますが、情報交換を行ったり、その記録を残したり、非互換の解消を働きかけたり、一緒にやれることについては協力できるといいなと思ったりします。

ちょっと簡単に言い直しますw

現状、Pleromaのハッシュタグリレー対応には、ちょっとPleromaの改造が必要になりそうです。
dtp-mstdn.jp/@noellabo/1014958

信頼できる署名(LDS)があれば、どれだけ多くのリレー先に届けても、送信元の負荷は一定です。リレーに預ければ、それで終わりです。

ところが、リレー先が一斉に送信元にデータを確認しにいく実装となると、リレー先が増えれば増えるほどアクセスが集中することになり、多大なる負荷となります。(nginx等でキャッシュすることで大幅に負荷を軽減できますが、依然としてリレーより負荷が高くなります)

やはり、PleromaにLinked data Signaturesのサポートを追加するのが現実的であるように思います。

スレッドを表示

Mastodonの場合、LDSが含まれるため、信頼できると確認できますが、Pleromaではこれができません。

Mastodon側で対応する方法としては、Activityに含まれる本来の送信元へ問い合わせして、裏付けをとるという方法があります。

投稿であれば、実際の投稿内容を取得して、一致しているかどうか確認すればいいわけです。動作としては、おおよそブーストの場合と同じです。(我々はフェッチしにいく、という言い方をします)

削除であれば、HTTP 404 Not Foundか、Tombstone(削除されたことを示す《墓石》)になっていることを確認すればいいわけです。

ただし、この実装は著しく非効率です。

Pleromaのリレー実装が、このようなブーストベースのものになっているということですが(詳しく見ていません)、コンセプトはともかく、実用上は現実ではないと言われています。

雪餅(2018) 連合リレーと Activity Relay
blog.yukimochi.jp/2018/12/fedi

スレッドを表示
もっと見る

のえる :cava_red: DTP鯖管 によるおすすめ:

DTP-Mstdn.jp

DTP-Mstdn.jpは、DTP・デザイン・印刷に関わる人々のためのMastodonインスタンスです。特定分野の専門インスタンスですので、日々のつぶやき、耳寄りな情報の共有、ディスカッション、質問とその回答、役立つスクリプトなど、他では投稿しづらい内容も、思う存分トゥートしましょう!