Аргументы в командах discord
Делаю небольшого бота-переводчика для дискорда. Проблема в том, что он принимает на вход только первое слово, остальное просто пропускает. Каким образом можно сделать, чтобы он принимал все предложение в один аргумент, а не только первое слово?
async def text(self, ctx, arg):
if arg == '':
await ctx.send('Использование: "!!text <текст>"')
else:
translate = translate_req + '&' + 'text=' + arg + '&' + 'lang=' + self.lang
response = requests.get(translate)
if response:
json_response = response.json()
await ctx.send(json_response['text'][0])
Ответы (2 шт):
Автор решения: python_noob
→ Ссылка
Нашел решение сам. Что бы получить несколько слов через пробел как один аргумент, можно использовать " " в начале и в конце аргумента. Так же есть "args", который является списком и его можно превратить в строку методом join
Автор решения: kiberg
→ Ссылка
Можно еще написать так:
async def text(self, ctx, *, arg):
получает полное сообщение