script2の処理で一部のユーザーがすっぽ抜けてフォロー解除しか走らない(原因不明)ので
事前にフォローリストのエクスポートをすることを強く推奨します
API制限がかかるっぽい?ので
script2は日を挟んで1日50ユーザーづつくらいでやったほうがよさそう
| // !!事前にフォローリストのエクスポートをすることを強く推奨します(備考.md参照)!! | |
| // 1. 実行(▶) | |
| // 2. 出力された最終ユーザーIDとIDリストをメモ帳とかにコピペ | |
| // 3. 「1.」と「2.」を「完了したっぽい」が出るまで繰り返す | |
| // 4. script2へ移る | |
| #API_LIMIT = 30 | |
| #inputStrings = readline( | |
| "前回実行時の 最終ユーザーID を入力 | |
| 初回実行時は空欄" | |
| ) | |
| #nullConv = Arr:join([inputStrings, ""]) | |
| #prevLastUser = nullConv | |
| $followees <- {} | |
| ? (prevLastUser = "") { | |
| followees <- Mk:api("users/following" { userId: USER_ID limit: API_LIMIT }) | |
| } . { | |
| followees <- Mk:api("users/following" { userId: USER_ID untilId: prevLastUser limit: API_LIMIT }) | |
| } | |
| ? (Arr:len(followees) < API_LIMIT) { | |
| <: "完了したっぽい" | |
| } . { | |
| #lastUser = Arr:pop(followees) | |
| <: "─ 最終ユーザーID ─" | |
| <: lastUser.id | |
| <: "──────────" | |
| } | |
| <: " " | |
| <: "─ IDリスト ─" | |
| ~~ #user, followees { | |
| ? (user.followee.host = "misskey.io") { | |
| #outStr = ["\"", user.followee.id, "\""] | |
| <: Arr:join(outStr) | |
| } .? (user.followee.host = "misskey.dev") { | |
| #outStr = ["\"", user.followee.id, "\""] | |
| <: Arr:join(outStr) | |
| } .? (user.followee.host = "co.misskey.io") { | |
| #outStr = ["\"", user.followee.id, "\""] | |
| <: Arr:join(outStr) | |
| } | |
| } | |
| <: "───────" |
| #idList = [ | |
| // 1. ↓↓script1で何回もコピペして作ったIDリストから↓↓ | |
| // ↓↓10行くらいをコピーしてここに貼り付け↓↓↓↓↓↓↓ | |
| // ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ | |
| // 2. 実行(▶) | |
| // 3. 1分くらい待つ | |
| // 4. 「1.」~「3.」を全部の行が処理できるまで繰り返す | |
| ] | |
| ~~ #user, idList { | |
| Mk:api("following/delete" { userId: user }) | |
| Mk:api("following/create" { userId: user }) | |
| } |