Может ли бот тегать 2 участников в сообщении?

Здраствуйте. Вот такой вопрос у меня появился. Я хочу сделать развлекательного бота для беседы со своими друзьями. Так вот, во многих ботах присутствует функция "Ролевых команд". К примеру участник пишет в ответ на сообщение другому участнику "обнять". А бот в свою очередь должен будет ответить

@ТегПервогоЮзера обнял @ТегВторогоЮзера

Я смог сделать первый тег, но не знаю как сделать второй. Вот мой код. Если есть вопросы, я готов ответить

def rrrr(message):
    if message.text.lower() == 'обнять':
        tag = message.from_user.username
        bot.send_message(message.chat.id, f"@{tag} обнял")```

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

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

Да, можно. Для того, чтобы сделать такую возможность пользователь должен ответить на сообщение того, к кому конкретное действие применяется.

Проблем в том, что у одного из пользователей юзернейм может быть не установлен, что делать в таком случае? :)

def rrrr(message):
    if message.text.lower() != 'обнять' or message.reply_to_message is None:
        return
    
    from_user = message.from_user # Тот, кто обнимает
    replied_user = message.reply_to_message.from_user # Тот, кого обняли

    if from_user.username is None:
        author = f"{from_user.first_name} {from_user.last_name}"
    else:
        author = f"@{from_user.username}"

    if replied_user.username is None:
        target = f"{replied_user.first_name} {replied_user.last_name}"
    else:
        target = f"@{replied_user.username}"

    bot.send_message(message.chat.id, f"{author} обнял {target}")

Можно придумать что-то лучше...

→ Ссылка