#python #discord #discord.py
#python #Discord #discord.py
Вопрос:
В моем боте discord у меня есть функция, которая собирает удаленные сообщения и отправляет их в канал на отдельном сервере. Это отлично работает для текста, но отказывается работать для изображений. У кого-нибудь есть какие-либо советы о том, как я мог бы заставить это работать с изображениями?
Вот что у меня есть в моем событии:
@commands.Cog.listener()
async def on_message_delete(self, message):
#print(f"{message.author} deleted a message in #{message.channel}: {message.content}") #Tells the Console about the deleted message
if message.author == self.client.user:
return
elif message.author.bot == True:
return
now = datetime.now() #Grabs the current time
current_time=now.strftime("%H:%M:%S") #Formats the current time into a readable form.
current_date=now.strftime("%d/%m/%Y") #Formats the current date into a readable form.
delete_embed=discord.Embed(title = f"Message Deleted", description= f'**User:** <@{message.author.id}>n**Channel:** <#{message.channel.id}>n**Server:** {message.guild}n**Message:** n{message.content}', color=0xbf0404)
delete_embed.set_footer(text=f"Message ID: {message.id}nDate: {current_date} • Time: {current_time}")
delete_embed.set_author(name =f"{message.author}", icon_url=f"{message.author.avatar_url}")
archive_delete=self.client.get_channel(789080972309168139) #Grabs the ID of the Deleted Messages Channel where the archive is to be stored.
try:
delete_embed.set_image(url=message.attachments[0].url)
except IndexError:
pass
await archive_delete.send(embed=delete_embed)
files=open("DeletedMessages.txt", "a") #Open the text file containing a backup of the deleted messages.
files.write(f"{message.author}'s message in #{message.channel} in {message.guild} was deleted at {current_time}: '{message.content}'n")
Ответ №1:
Попробуйте использовать .proxy_url
вместо .url
:
delete_embed.set_image(url=message.attachments[0].proxy_url)
Ссылки:
Attachment.proxy_url
— «При удалении сообщения этот URL-адрес может быть действительным в течение нескольких минут или вообще недействительным».
Комментарии:
1. Это единственная реальная возможность, в противном случае вам нужно было бы архивировать изображения сообщений самостоятельно.