Получение @имя_пользователя в телеграмм для команды /hug

я создал команду /hug в своем телеграмм боте, чтобы кого-то обнять нужно вписать /hug @имя_пользователя. Но если написать просто /hug, бот напишет в чате, (тут ничего не будет) вас обнял @мой_ник.

А мне нужно чтобы он работал, если я напишу именно /hug @имя_пользователя Если просто /hug то бот выдаст Ошибка введите /hug @имя_пользователя.

@bot.message_handler(commands=['hug', 'обнять', 'обнимашки', 'обнял'])
def hugCommand(message):
    hugtarget = extract_arg(message.text)
    #chat_id = message.from_user.id
    #message_id = message.from_user.id
    username = message.from_user.username
    # Hug Image
    hugimg = nekos.img('hug')
    #bot.send_message(chat_id, '{hugtarget} вас обнял {username}')
   # bot.reply_to(message, f" ".join(hugtarget) + " вас обнял @" + username + f'\n{hugimg}')
    bot.send_animation(message.chat.id, hugimg, caption=f" ".join(hugtarget) + " вас обнял(а) @" + username)

Ну, если ещё можно чтобы я на ответ в сообщение просто написал /hug и бот написал ник того кому я ответил, если просто /hug не в ответ на сообщение то Ошибка введите /hug @имя_пользователя

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

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

upd:

import telebot
from telebot.util import extract_arguments
    
@bot.message_handler(commands=['hug', 'обнять', 'обнимашки', 'обнял'])
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:
      bot.send_message(message.chat.id, f'Введите /hug @имя_пользователя')
    else:
      bot.send_animation(message.chat.id, hugimg, caption=f'[{hugtarget}], вас обнял [{your_name}](tg://user?id={str(your_id)})', parse_mode="Markdown")

результат:

введите сюда описание изображения

→ Ссылка