Команда /hug, работает не правильно
у меня есть команда /hug @имя_пользователя. Работает почти отлично, но есть две проблемы.
При написании /hug и какого-то бреда, а не @имя_пользователя, бот выведет данный результат.

В поле имени даные скобочки и кавычки — [' ']
Код:
@dp.message_handler(commands=['hug', 'обнять', 'обнимашки', 'обнял'])
async def hugCommand(message):
hugtarget = extract_arguments(message.text)
your_id = message.from_user.id
your_name = message.from_user.username
hugimg = nekos.img('hug')
if not hugtarget:
await bot.send_message(message.chat.id, f'Введите /hug @имя_пользователя')
else:
await bot.send_animation(message.chat.id, hugimg, caption=f'[{hugtarget}], вас обнял [{your_name}](tg://user?id={str(your_id)})', parse_mode="Markdown")
Ответы (1 шт):
Уберите или замените скриншоты в вопросе, в качестве ника можно было и другое слово выбрать. А по вопросу, такой вариант для aiogram устроит? При вводе команды /hug - выдается ошибка/инструкция, при вводе /hug ник_участника - выводится "обнимашка" и к нику дописывается @, чтобы он стал кликабельным. Если пользователь пишет /hug @ник_участника, то выводится "обнимашка" с кликабельным ником:
@dp.message_handler(commands=['hug', 'обнять', 'обнимашки', 'обнял'])
async def send_hug(message: types.Message):
hugtarget = message.get_args().split()
your_id = message.from_user.id
your_name = message.from_user.username
hugimg = nekos.img('hug')
if not hugtarget:
await bot.send_message(message.chat.id, f'Введите /hug @имя_пользователя')
else:
if hugtarget[0][0] == '@':
await bot.send_animation(message.chat.id, hugimg, caption=f'[{hugtarget[0]}], вас обнял [{your_name}](tg://user?id={str(your_id)})', parse_mode="Markdown")
else:
await bot.send_animation(message.chat.id, hugimg, caption=f'[@{hugtarget[0]}], вас обнял [{your_name}](tg://user?id={str(your_id)})', parse_mode="Markdown")
Если необходимо, чтобы бот на пустой /hug или /hug текст без знака @ выводил ошибку/инструкцию, а при /hug @ник выводил "обнимашку" с кликабельным ником, то замени код на вот этот:
@dp.message_handler(commands=['hug', 'обнять', 'обнимашки', 'обнял'])
async def send_hug(message: types.Message):
hugtarget = message.get_args().split()
your_id = message.from_user.id
your_name = message.from_user.username
hugimg = nekos.img('hug')
if not hugtarget or hugtarget[0][0] != '@':
await bot.send_message(message.chat.id, f'Введите /hug @имя_пользователя')
else:
await bot.send_animation(message.chat.id, hugimg, caption=f'[{hugtarget[0]}], вас обнял [{your_name}](tg://user?id={str(your_id)})', parse_mode="Markdown")
