正如标题所说,我正在尝试检查json文件中是否存在message.embeds[0].image.url,这是我的代码
import discord
import json
from datetime import datetime
bot = commands.Bot(command_prefix = commands.when_mentioned_or('n.')
js = open("file.json","r")
data= json.load(js)
@bot.event
async def on_ready():
print('Bot is online')
@bot.event
async def on_message(message):
if len(message.embeds) == 0:
return
elif message.embeds[0].image.url in data["group"]:
embed=discord.Embed(message.embeds[0].color)
embed.add_field(name="Server", value=message.server)
embed.add_field(name="Channel", value=message.channel)
embed.add_field(name="Time", value=datetime.now().strftime('%H:%M:%S on %x'))
embed.set_image(url=message.embeds[0].image.url)
channel = bot.get_channel(854710154045292565)
await channel.send(embed=embed)
else:
return
bot.run('token')
这就是我的json文件的样子
{
"group":
[
{
"subgroup1":["url1","url2","url3","url4","url5"],
"subgroup2":["url1","url2","url3","url4","url5"],
"subgroup3":["url1","url2","url3","url4","url5"],
...
"subgroupX":["url1","url2","url3","url4","url5"]
}
]
}
我试着用json文件中已有的URL对其进行测试,虽然我不确定它是否能正常工作,但问题是机器人会无限次地发送嵌入的消息,直到关闭为止
这可能是因为它会对自己的信息做出反应。要防止
on_message
在消息作者是bot本身时执行,可以在事件开始时添加简单的if语句。像这样:相关问题 更多 >
编程相关推荐