#Discord.pyでテキストチャンネルのメッセージをまとめて消す。
###詳しく
数日以内、100件以内のメッセージを削除する方法が別にあると思いますが、今回削除したいメッセージは100件を大きく超えていて、数分前のメッセージ〜2月ほど前のメッセージまであります。全てのメッセージを削除してチャンネルができた時の状態にしたいです。
削除に時間がかかっても問題ありません。
###・まとめ
- 100件以上のメッセージ
- かなり古いメッセージもある
- 削除に時間がかかっても良い
- そのチャンネルの全てのメッセージを削除
- チャンネルidが分かっている
- チャンネルを作り直す,複製するのは無し
#やってみた事
最後のメッセージidを取得
↓
メッセージidに基づいてメッセージを削除
Python
1※一部略 2await channel.fetch_message(last_message) 3print("メッセージを削除します") 4await message.delete()#メッセージ削除
という コードを書いてwhileを使って繰り返し実行してみましたが、繰り返すと
error
1discord.errors.NotFound: 404 NOT FOUND (error code: 10008): Unknown Message
このようなエラーが出てしまい最初の1回しかメッセージを削除してくれません。
試しに
time.sleep(60)
をwhileループの間に入れてみましたが、改善しませんでした。
###求めている事
チャンネルidから、そのチャンネルのチャット履歴を全て削除する方法
#追記
この画像のように、last_message_id
を使用すると、有効なメッセージを指していない場合があるようです。
毎回有効なメッセージのみ取得する方法、チャンネル内の全てのメッセージを削除する方法のどちらかを教えてください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/31 00:43