from aiogram.types import Message, CallbackQuery # Настройка экспорта в модули __all__ = ('username',) # Функция получения юзера или ID пользователя def username(message: Message | CallbackQuery) -> str: """ Возвращает юзернейм пользователя из сообщения, или ID, если юзернейм не указан. :param message: Объект сообщения из aiogram. :return: Строка с юзернеймом пользователя или его ID. :raises ValueError: Если в сообщении отсутствует информация о пользователе. """ try: if message.from_user: return f"@{message.from_user.username}" if message.from_user.username else f"@{message.from_user.id}" raise ValueError("Информация о пользователе отсутствует в сообщении.") except ValueError as e: # Перебрасываем ошибку выше для дальнейшей обработки raise e