py获取嵌入图像url并检查它是否存在于json文件中

2024-05-29 02:34:22 发布

您现在位置:Python中文网/ 问答频道 /正文

正如标题所说,我正在尝试检查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对其进行测试,虽然我不确定它是否能正常工作,但问题是机器人会无限次地发送嵌入的消息,直到关闭为止


Tags: 文件imageimportjsonurlmessagebotchannel
1条回答
网友
1楼 · 发布于 2024-05-29 02:34:22

这可能是因为它会对自己的信息做出反应。要防止on_message在消息作者是bot本身时执行,可以在事件开始时添加简单的if语句。像这样:

async def on_message(message):
    if message.author == bot.user:
        return

相关问题 更多 >

    热门问题