Как в discord.py добавить смайл на сервер?

Я хочу при использовании команды добавлять смайл на сервер

@client.command
async def добавить(ctx):
  with open("check-mark-microsoft") as img:
    img_byte = img.read()
    await ctx.guild.create_custom_emoji(name = ("ok"), image = img_byte)

Пока только так... В чём ошибка?

Если что пишу на replit


Ответы (1 шт):

Автор решения: Universall

Ошибка в открытии файла. Вам нужен байт-код, значит в аргументах в with open() нужно указать режим "rb". Как-то так:

@bot.command()
async def create_emoji(ctx: commands.Context, filename: str, name: str):
    with open(filename, "rb") as image:
        img_byte = image.read()
    await ctx.guild.create_custom_emoji(name=name, image=img_byte)

Чтобы удалить смайл можно воспользоваться await ctx.guild.delete_custom_emoji(guild id, emoji id)

@bot.command()
async def delete_emoji(ctx: commands.Context, emoji: discord.Emoji):
    await ctx.guild.delete_custom_emoji(ctx.guild.id, emoji.id)
→ Ссылка