Python Discord消息发送脚本修改:CHANNEL_ID_1返回200后停止同频道重发
修改后的实现代码
核心修改点
- 为
sendMessage函数新增响应状态码返回值,用于判断发送结果 - 新增
channel1_sent标记位,记录CHANNEL_ID_1是否已发送成功,发送成功后后续循环自动跳过该频道 - 其余频道发送逻辑完全保留原有逻辑不变
完整可运行代码
import requests import time USERS_TOKEN = "TOKEN" CHANNEL_ID_1 = "CHANNELID HERE" CHANNEL_ID_2 = "CHANNELID HERE" CHANNEL_ID_3 = "CHANNELID HERE" CHANNEL_ID_4 = "CHANNELID HERE" MESSAGE_1 = "msg 1 channel 1" MESSAGE_2 = "msg 2 channel 2" MESSAGE_3 = "msg 3 channel 3" MESSAGE_4 = "msg 4 channel 4" msgcount = "10" # 新增标记位,记录频道1是否已经发送成功 channel1_sent = False def sendMessage(token, channel_id, message): url = 'https://discord.com/api/v9/channels/{}/messages'.format(channel_id) data = {"content": message} header = {"authorization": token} r = requests.post(url, data=data, headers=header) print(r.status_code) # 新增返回状态码 return r.status_code for i in range(int(msgcount)): time.sleep(0.3) # 仅当频道1未发送成功时,才执行发送逻辑 if not channel1_sent: status_code = sendMessage(USERS_TOKEN, CHANNEL_ID_1, MESSAGE_1) # 发送成功后标记为已发送,后续循环不再执行 if status_code == 200: channel1_sent = True # 其余频道发送逻辑不变 sendMessage(USERS_TOKEN, CHANNEL_ID_2, MESSAGE_2) sendMessage(USERS_TOKEN, CHANNEL_ID_3, MESSAGE_3) sendMessage(USERS_TOKEN, CHANNEL_ID_4, MESSAGE_4)
注意事项
使用该脚本需要遵守Discord平台的用户协议与API使用规则,违规操作可能导致账号被封禁
内容的提问来源于stack exchange,提问作者Flash
相关产品推荐
相关产品推荐

