マストドンとプレロマの両方に対応したプログラムを書く

マストドンプレロマはAPIに互換性があるので、マストドンのAPIを叩くプログラムはプレロマに対してもほとんどそのまま動く。とはいえ、両者には微妙な非互換があるので、少々の修正が必要かもしれない。

/api/v1/instance の uri

/api/v1/instance で返る JSON の uri 要素には微妙な違いがある。マストドンでは example.com のようなドメイン名が得られるが、プレロマでは https://example.com のように完全な URL が得られる。これはプレロマに理があるので、マストドンにプルリクを送るべきだろう。

/api/v1/timelines/public?local=true の limit

/api/v1/timelines/public?local=true はローカルタイムラインを取得する API である。認証不要でアクセスできるのが便利なので、私の書くプログラムではこの API ばかり使っている。

この API は limit=40 のような引数を追加することで、一度に取得するトゥートの数を増減することができる。完全なパスは /api/v1/timelines/public?local=true&limit=40 のようになる。一度に取得できるトゥートの数は、マストドンではデフォルトで 20、limit 引数を指定すれば最大 40 である。これに対して、プレロマは limit 引数を無視して常に 20 トゥートを返す。

トゥートの ID の規則

トゥートの ID は、マストドン 2.0 以降とそれ以前とで異なっている。マストドン 1.x 系では、トゥートの ID は 1 から始まる連番で、JSON では浮動小数点数で表される。マストドン 2.x 系のトゥートの ID は、264 よりは小さい巨大な自然数の連番で、JSON では文字列で表現される。

プレロマのトゥートの ID は古いマストドンに近く、1 から始まる連番である。ここで注意が必要なのが、プレロマの API の引数に巨大な (2147483647 よりも大きい) ID を渡すとエラーになるということである。このような巨大な ID はマストドン 2.x では普通に発生し得る。

トゥートの本文が HTML かプレーンテキストか

API を通して得られるトゥートの本文は、マストドンでは HTML、プレロマではプレーンテキストである。アプリケーションによっては、この違いを吸収する必要があるだろう。

広告

投稿者: Hakaba Hitoyo

墓場一夜

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中