Как получить текст от пользователя

В чем заключается проблема, я хочу сделать так чтобы пользователь мог ввести команду /report "Сообщение" и данное сообщение приходило мне , но вся суть в том, что бот присылает мне часть сообщения , а точнее пока не встретил пробел, то есть если написать "hello world", бот пришлет мне только "hello". Надеюсь нормально объяснил.

  @commands.command()
  async def report(self,ctx,repmessage):
    await ctx.author.send(embed = discord.Embed(
        description = 
        f"**[REPORT]**" + '\n' +
        f"----------------------------------------------" + '\n' +
        f"Nick: {ctx.author}" + '\n' +
        f"ID: {ctx.author.id}" + '\n' +
        f"Сообщение: {repmessage}" + '\n' +
        "----------------------------------------------"))
 я пробовал делать async def report(self,ctx,repmessage:str):но бот тогда вообще ничего не присылал , 
 также пробовал async def report(self,ctx,repmessage: str = "None"): но в таком случае проблема оставалась,
 еще пробовал async def report(self,ctx, *,repmessage:str): но вновь бот ничего вообще не присылал.

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

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

Чтобы весь текст пришел с пробелами, пользователь должен заключить его в кавычки. Например: /report "hello world"

Если вы хотите обойтись без них, то тогда вам стоит обратиться к свойству `

ctx.message.content

В вашем случае это будет выглядеть так:

  @commands.command()
  async def report(self, ctx):
    await ctx.author.send(embed = discord.Embed(
        description = 
        f"**[REPORT]**" + '\n' +
        f"----------------------------------------------" + '\n' +
        f"Nick: {ctx.author}" + '\n' +
        f"ID: {ctx.author.id}" + '\n' +
        f"Сообщение: {ctx.message.content}" + '\n' +
        "----------------------------------------------"))

Только учтите, что в контент тогда попадет и командный префикс, который предварительно стоит удалить из строки. Убрать его можно, прописав например `

ctx.message.content[1:]

→ Ссылка