🐘

mastodon.py のメモ

2021/08/10に公開

背景

  • 本来のドキュメントは https://mastodonpy.readthedocs.io/en/latest/index.html
  • なんだけども、読んでも返り値とかはわかるけどもなんか書き方が感覚と違う
  • なので、自分が使う分だけメモすることにした
  • 認証不要で取得可能なものは、自分で直接 HTTP リクエストを投げたほうが楽な気がする

使い方

pip install mastodon でインストール可能。

初期化

以下の感じで初期化する。

この例は、Mastodon の Web から設定 → 開発を使って自分でクライアントを登録している場合の例。そうでないなら、クライアントの登録とアクセストークンの取得を行う必要がある。

`from mastodon import Mastodon

mastodon = Mastodon(
    access_token = 'アクセストークン',
    client_id = 'クライアントキー',
    client_secret = 'クライアントシークレット',
    api_base_url = 'URL。例えば https://mstdn.jp'
)

アクセストークンに紐づくアカウント情報の取得

account = mastodon.account_verify_credentials()

返り値は https://mastodonpy.readthedocs.io/en/latest/index.html#user-dicts

自分のアカウントのトゥートを取得

toots = mastodon.account_statuses(account)

account は、前述の mastodon.account_verify_credentials() の返り値でも良いし、アカウント ID(数字)でも良い。自動的に適切なものが使用される。

なお、返り値は 20 件。

一度取得したトゥートの続き、前、残り全部を取得する

取得したトゥートの dict をそのまま渡せば自動的に続きを取得できる。

`next_toots = mastodon.fetch_next(toots)
prev_toots = mastodon.fetch_previous(toots)

# 残り全部を取得する。ただしリクエストをループするので負荷注意。
# また、API リクエスト回数リミットも注意
remain_toots = mastodon.fetch_remaining(toots)

トゥートの削除

mastodon.status_delete(status_id)

負荷注意。Mastodon において削除処理は意外と負荷が高いです。

Discussion