Не пойму, как нормально реализовать вывод текста? Disnake

Рейтинг: 0Ответов: 1Опубликовано: 08.03.2023

В общем, есть такой код:

async def report(inter: disnake.AppCmdInter, member: disnake.Member, text: str):
    report_channel = bot.get_channel()
    author = inter.author

    embed = disnake.Embed(
        title="** Жалоба на пользователя! **",
        description=f"**Жалоба от:** {author.mention}\n**Жалоба на:** {member.mention}\n\n**Описание жалобы:** \n" + " ".join(
            text),
        timestamp=timeNow,
        colour=disnake.Colour.from_rgb(255, 0, 0))

    await report_channel.send(embed=embed)

    await inter.send("Жалоба успешно отправлена!", ephemeral=True)
    await asyncio.sleep(1)

Когда в функции, для записи текста стоит *args, вместо text: str то работает всё идеально:

Жалоба на пользователя!
 
Жалоба от:
Жалоба на:

Описание жалобы:
hello world
Сегодня, в 22:42

В противном случае, при text: str:

Жалоба на пользователя! 

Жалоба от:
Жалоба на:

Описание жалобы:
h e l l o w o r l d
Сегодня, в 22:42

Что делать?

Ответы

▲ 0Принят

Я решил свою же проблему! Всего лишь-то, надо было вместо " ".join(text), написать text :)

Кому надо, система репортов на disnake:

import disnake
import asyncio
from disnake.ext import commands
from datetime import datetime

@bot.slash_command(name = "report", description = "Отправляет жалобу на участника")
async def report(inter:disnake.AppCmdInter, member: disnake.Member, text: str):
    await inter.channel.purge(limit = 1)
    
    report_channel = bot.get_channel(1083015900434796645) #id канала для репортов заменить на свой
    
    author = inter.author
    
    embed = disnake.Embed(
        title = "** Жалоба на пользователя! **",
        description = f"**Жалоба от:** {author.mention}\n**Жалоба на:** {member.mention}\n\n**Описание жалобы:** \n" + text,
        timestamp = timeNow,
        colour = disnake.Colour.from_rgb(255, 0, 0))
    
    
    await report_channel.send(embed = embed)
    
    await inter.send("Жалоба успешно отправлена!", ephemeral = True)
    await asyncio.sleep(1)