Получение @имя_пользователя в телеграмм для команды /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")
результат:
