【发布时间】:2021-07-16 16:23:15
【问题描述】:
我的自动审核包含一个@Cog.listener(),用于检查邮件是否包含附件中的图像。如果是这样,它将自动被删除(以避免 NSFW 的东西)。
问题在于,上述事件触发了另一个监听器,如下所示:
@Cog.listener()
async def on_message_delete(self, message):
if not message.author.bot:
embed = Embed(title="Message deletion",
description=f"Action by {message.author.display_name}.",
colour=message.author.colour,
timestamp=datetime.utcnow())
fields = [("Content", message.content, False)]
for name, value, inline in fields:
embed.add_field(name=name, value=value, inline=inline)
await self.log_channel.send(embed=embed)
由于初始 msg(附加了 img)不包含值,它引发“HTTPException:400 Bad Request”,这也触发了我的错误处理程序。 您可以在以下链接中查看整个错误日志和我的错误处理程序:bin
我一直在努力寻找一种方法来阻止我的on_message_delete 启动,但我什么也没得到。我真的不在乎删除的附件是否不会在我的日志中报告。我只是想防止错误被填充。
任何建议/想法都将受到高度赞赏。 提前致谢
【问题讨论】:
-
您可以添加另一个 if 语句来检查该邮件是否有附件?如果问题是消息没有内容,只需添加一个 if 语句来检查。例如。
if message.content == None: message_content = "No Content" -
如果邮件被删除,
message.content是一个空字符串,而不是None。非常感谢您的回答
标签: python error-handling discord.py