Skip to content

Instantly share code, notes, and snippets.

@ThinaticSystem
Last active October 5, 2021 09:29
Show Gist options
  • Save ThinaticSystem/60eb8d501e7f3bffbb5dabbeffec427d to your computer and use it in GitHub Desktop.
Save ThinaticSystem/60eb8d501e7f3bffbb5dabbeffec427d to your computer and use it in GitHub Desktop.
Misskey.ioリフォロースクリプト(AiScript)
// !!事前にフォローリストのエクスポートをすることを強く推奨します(備考.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 })
}

script2の処理で一部のユーザーがすっぽ抜けてフォロー解除しか走らない(原因不明)ので
事前にフォローリストのエクスポートをすることを強く推奨します

API制限がかかるっぽい?ので
script2は日を挟んで1日50ユーザーづつくらいでやったほうがよさそう

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment