おひとり様サーバーの改修

2024/1/16 [14:34:23] (火) 天気

ちょろちょろ改修してるんで、忘れないようにメモ。

5分以上前の自分はあかの他人、だからなぁ。


おひとり様ActivityPubサーバーのソースコードを外部モジュール化した。


ため池とcron側と両方共通して使うルーチンばかりで、ふたつのファイルに対して同じ修正するのが面倒くさくなった(今さらかよ)ここんとこ1ファイルでやっつける安いスクリプトしか書いてなかったんで、久しぶり。

これで改修やつけ足しも楽になった。


Like一覧・Mention一覧をつけ足した。


LikeはWeb拍手がわりの使い方のほか、ブックマーク的な使い方もしてるので一覧ページが欲しかった。イベントや博物館美術館情報の展示情報など、わたし的に貴重な情報が多い。

LikeのJSON保存は個数制限は外して期間制限だけにした。上限14日間。

Likeを削除するのはウチだけの話。意図してLikeを外すワケじゃないのでUndoは飛ばさない。


Likeの情報はお相手の所属するサーバーが持ってるんでこちらでLikeのJSONを削除しても影響はない。こんなところも分散型、ActivityPubの特徴、ということだなあ。


わたし宛のMentionはデータベースに登録してもいいと思ったんだけど、なにかの拍子に(Fediverseに)飛ばしてしまうと危険なので、とりあえずJSONそのまま保存。一覧して確認できればいいかな、ぐらいの感じ。



サークル機能に対応(?)


飛んでくる投稿はCreateというActivityの中のobjectという箱に入ったNoteがその実体。なので、投稿を取り出すにはCreateというActivityのJSONをデコードしてobjectを取り出す。

objectには投稿本文や投稿日時など投稿についてのすべての情報がハッシュ配列になって格納されている。

…てのが、ほとんどなんだけど。

objectがハッシュ配列じゃないActivityが飛んできてエラーとなってロックがかかってビックリ。配列じゃないobjectなんてまったくの想定外だった。


JSONを覗いてみたらobjectが配列じゃなくて、1行の文字列。

HTMLエンコードされたURIとなにやらハッシュ文字列とキーワードっぽいbearという文字。投稿の宛先や投稿者、投稿日時がないんだけど大丈夫か。


エンコードされているURIにブラウザでアクセスしてみたら400番代のエラーページが表示される。ハッシュ文字列がOAuthっぽくもあるけどなんのこっちゃわからない。


手がかりがまったくなくて困って、ため池に投稿したらFedibird管理人ののえるさん(@noellabo@fedibird.com)に拾ってもらって、該当ドキュメントを教えてもらった。

https://docs.joinmastodon.org/spec/bearcaps/

詳細はこちらにも↓

https://fedibird.com/@noellabo/104790008237308249


飛んできたobjectのURIに対して、GETリクエストする時のヘッダにAuthorizationをつければ問題なくURIを開くことができて、内容を読めた。宛先がない投稿を勝手に開いていいのかという問題は残るので、要調査。

とはいえ、これは投稿として開いて読む場合。サークル機能?にこちらからリクエストを投げる時は投稿先などちゃんと調べなきゃダメ。今日はとりあえず読むところまで。


まだまだわからないことだらけだ。

image

初詣の神社はアスクル御神籤でありがたみもないんで、昨日改めて浅草寺。

ここは「凶」が多くてひとに厳しい御神籤なんだけど、今年は一発で「吉」を引けた。去年がいろいろ厄年だったので、これで今年がいい年になればいいなぁ。

<<2026/1>>
    123
45678910
11121314151617
18192021222324
25262728293031
検索:

【最近の20件】