Получать сообщения от пользователя и отвечать ему. Проблема с получением username'а пользователя. Telebot (feedbackbot)

Использую данного бота. Он меня полностью устраивает, но хотелось бы сделать так, чтобы при получении сообщения от пользователя, также отображался его username, а не только ID в виде циферок.

В файле user_message.py пробую поменять вот это:

sync def user_text_message(message: Message, bot: AsyncTeleBot):
    """
    Handles messages sent by user.
    Then sends the message to models.Admin.ADMIN.
    This handler only detects text messages.
    """
    await bot.send_message(
        chat_id=Admin.ADMIN.value, text=f'#{str(message.chat.id)}\nMessage: {message.text}')

На это:

async def user_text_message(message: Message, bot: AsyncTeleBot):
    """
    Handles messages sent by user.
    Then sends the message to models.Admin.ADMIN.
    This handler only detects text messages.
    """
    # Get the user's username
    username = message.from_user.username
    # Send the message to the recipient, along with the user's username and ID
    await bot.send_message(
        chat_id=Admin.ADMIN.value, 
        text=formatting.format_text(
            f'From @{username} ({message.chat.id})',
            'Message:',
            formatting.hitalic(message.text)
        ),
        parse_mode='HTML'
    )

Но в результате после получения от пользователя не могу ему ответить через reply, хотя сообщение и приходит уже с указанием его юзернейма. Получаю отбивку 'Please reply to a user's message'уже из файла admin.py.

from tgbot.utils.extract_id import extract_id

async def admin_user(message: Message, bot: AsyncTeleBot):
    """
    Send the message to the admin.
    """
    user_id = extract_id(message.reply_to_message.text if message.reply_to_message.text else message.reply_to_message.caption)
    if not user_id:
        await bot.reply_to(
            message,
            text='Please reply to a user\'s message.'

Как убрать зависимость от message.chat.id, ну или просто добавить username поользователя, чтобы взлетело?


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