Может ли бот тегать 2 участников в сообщении?
Здраствуйте. Вот такой вопрос у меня появился. Я хочу сделать развлекательного бота для беседы со своими друзьями. Так вот, во многих ботах присутствует функция "Ролевых команд". К примеру участник пишет в ответ на сообщение другому участнику "обнять". А бот в свою очередь должен будет ответить
@ТегПервогоЮзера обнял @ТегВторогоЮзера
Я смог сделать первый тег, но не знаю как сделать второй. Вот мой код. Если есть вопросы, я готов ответить
def rrrr(message):
if message.text.lower() == 'обнять':
tag = message.from_user.username
bot.send_message(message.chat.id, f"@{tag} обнял")```
Ответы (1 шт):
Да, можно. Для того, чтобы сделать такую возможность пользователь должен ответить на сообщение того, к кому конкретное действие применяется.
Проблем в том, что у одного из пользователей юзернейм может быть не установлен, что делать в таком случае? :)
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}")
Можно придумать что-то лучше...