Сделал код на пайтон, а он косо работает (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)

вот код, не работает параметр im, бот игнорит

Ответы

Код выглядит правильным, но, вероятно, проблема может быть в некоторых деталях, связанных с асинхронным выполнением или неверными URL-адресами изображений.

Убедитесь, что URL изображения является корректным и доступным. Попробуйте использовать URL-адрес изображения напрямую в коде для тестирования.

Убедитесь, что бот правильно обрабатывает асинхронные операции. Проверьте, есть ли ошибки в логе, которые могут помочь найти причину проблемы.

Убедитесь, что вы правильно используете метод set_image и передаете корректный URL.


24.05.24
Вот немного модифицированный код с добавлением отладочных сообщений, которые помогут понять, в чем может быть проблема:

import discord
from discord.ext import commands

bot = commands.Bot(command_prefix='!')

@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'])
# Добавим отладочное сообщение
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')
24.05.24
Добавлено отладочное сообщение print(f"Image URL: {image_url}"), которое выводит URL изображения. Это поможет убедиться, что URL правильно передается.Убедитесь, что ваш бот запущен с правильным токеном.

Если изображение по-прежнему не отображается, попробуйте протестировать с другим URL-адресом изображения, например:

image_url = «example.com/test_image.jpg»

24.05.24

Глеб Черняк

Читать ответы
Посмотреть всех экспертов из раздела Технологии > Тестирование
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store