稼働している間、つまり (1) は、例えば五分などの間隔で情報を取得して、次の処理を行う。
・ フォロー一覧をフォロワー一覧に一致させる
・ ホームタイムラインなどを読んでブーストすべき投稿を抽出し、ブーストする
・ どこまで済んだか記録する
これを一度に一斉に行いたくないので、実行環境において「このあと送信する要求のリスト」に積み上げる。順に完了を確認しながら五秒間隔とかで送信する。仮に (2) の中断があった場合は再開後に続きが送信される。
リスト上の要求が片付いてから、状態のメモを更新する。リストの途中で項目 (3) の中断があった場合に巻き戻るけど、再開後に同じ処理をしようとして、ブースト済みならスキップする事にすればいいだろう。多分。
必要な要求は…この辺りか。
フォロワー一覧を見る
GET /api/v1/accounts/[ID]/followers
フォロー一覧を見る
GET /api/v1/accounts/[ID]/following
フォローを解除する
POST /api/v1/accounts/[ID]/unfollow
フォローする
POST /api/v1/accounts/[ID]/follow
タイムラインを見る
GET /api/v1/timelines/home
GET /api/v1/timelines/tag/[タグ]
ブーストする
POST /api/v1/statuses/[ID]/reblog
投稿する
POST /api/v1/statuses
投稿を削除する
DELETE /api/v1/statuses/[ID]
加筆編集の方がいいかしら
PUT /api/v1/statuses/[ID]
昨夜は JavaScript の Promise と async・await について大体学びました。
フォロー一覧とフォロワー一覧を並列に要求する事もできるだろうけど、どうせ同じサーバーに問い合わせるんだし、直列的な書き方でいいやと思った。
@noellabo できるっぽいですね ! 読み取りがどうなるかと思ったけど、「自分自身への relationship」が問題なく取れました。