Whalebirdの作者が製作し、Whalebird自身を支えているAPIライブラリであるMegalodon(をフォークしたもの)が、kids鯖のMastodon互換APIの根幹です。By using this library, you can take Mastodon, Pleroma and Misskey with the same interface.Megalodon
https://github.com/cutls/megalodon
このsame interfaceがMastodon-likeな形なので、実質的にMisskeyのAPIの返り値をMastodonっぽく変換してくれています。
Conversation
Notices
-
Embed this notice
cutls@kids.0px.io's status on Wednesday, 08-Feb-2023 07:22:39 JST cutls
-
Embed this notice
cutls@kids.0px.io's status on Wednesday, 08-Feb-2023 07:27:26 JST cutls
このライブラリAPIクライアントなので、Mastodon APIエンドポイントが叩かれたときにもう一度内部でMisskey APIを叩き直します。二度手間ですが、簡単さを取りました。
ただし、ストリーミングは本体に手を入れて実装しています。In conversation permalink -
Embed this notice
cutls@kids.0px.io's status on Wednesday, 08-Feb-2023 07:32:05 JST cutls
認証方法にMiAuthというMisskey独自実装が使われていますが、MastodonクライアントにはOAuthとしてappSecretをclient_secretとして、client_idをMiAuth認証エンドポイント(/auth/...)のbase64エンコードしたものを渡しています。
client_idをみて、それをデコードしてそこにリダイレクトすることでOAuth認証に偽装しています。
scopeはざっくりreadとwriteで見て適当に付与しています(1:1対応ではない)
stateは保持しないとiMastあたりが認証してくれないので、バケツリレーするようになっていますIn conversation permalink
-
Embed this notice