Сделал код на пайтон, а он косо работает (Discord.py) - вопрос №5488240
Помогите пж, сделал код для бота в Discord. он должен отправлять embed message, он делает это, но фотки не вставляет. Код ниже
@bot.command()
async def esay(ctx, *, args=None):
embed = discord.Embed()
content = None
if args:
arg_dict = {}
for arg in args.split('&'):
split_arg = arg.split('=')
if len(split_arg) == 2:
arg_dict[split_arg[0]] = split_arg[1]
if 't' in arg_dict:
embed.title = arg_dict['t']
if 'd' in arg_dict:
embed.description = arg_dict['d']
if 'im' in arg_dict:
# Преобразуем значение параметра «im» в URL-адрес
image_url = str(arg_dict['im'])
embed.set_image(url=image_url)
if 'ch' in arg_dict:
channel = bot.get_channel(int(arg_dict['ch']))
if channel:
await channel.send(content, embed=embed)
if 'co' in arg_dict:
embed.color = int(arg_dict['co'][1:], 16)
if 'c' in arg_dict:
content = arg_dict['c']
await ctx.message.delete()
if content:
await ctx.send(content)
else:
await ctx.send(embed=embed)
Код выглядит правильным, но, вероятно, проблема может быть в некоторых деталях, связанных с асинхронным выполнением или неверными URL-адресами изображений.
Убедитесь, что URL изображения является корректным и доступным. Попробуйте использовать URL-адрес изображения напрямую в коде для тестирования.
Убедитесь, что бот правильно обрабатывает асинхронные операции. Проверьте, есть ли ошибки в логе, которые могут помочь найти причину проблемы.
Убедитесь, что вы правильно используете метод set_image и передаете корректный URL.
if args:
arg_dict = {}
for arg in args.split('&'):
split_arg = arg.split('=')
if len(split_arg) == 2:
arg_dict[split_arg[0]] = split_arg[1]
if 't' in arg_dict:
embed.title = arg_dict['t']
if 'd' in arg_dict:
embed.description = arg_dict['d']
if 'im' in arg_dict:
# Преобразуем значение параметра «im» в URL-адрес
image_url = str(arg_dict['im'])
# Добавим отладочное сообщение
print(f«Image URL: {image_url}»)
embed.set_image(url=image_url)
if 'ch' in arg_dict:
channel = bot.get_channel(int(arg_dict['ch']))
if channel:
await channel.send(content, embed=embed)
if 'co' in arg_dict:
embed.color = int(arg_dict['co'][1:], 16)
if 'c' in arg_dict:
content = arg_dict['c']
await ctx.message.delete()
if content:
await ctx.send(content)
else:
await ctx.send(embed=embed)
# Запуск бота с вашим токеном
bot.run('YOUR_BOT_TOKEN')
Добавлено отладочное сообщение print(f"Image URL: {image_url}"), которое выводит URL изображения. Это поможет убедиться, что URL правильно передается.Убедитесь, что ваш бот запущен с правильным токеном.
Если изображение по-прежнему не отображается, попробуйте протестировать с другим URL-адресом изображения, например: