Files
PrimoWorldsBot/BotLibrary/validators/username.py
2025-04-13 06:50:23 +07:00

44 lines
2.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# BotLibrary/validators/username.py
# Получение юзера или ID пользователя
from aiogram.types import Message
# Настройка экспорта из модуля
__all__ = ("username", "username_to_text")
def username(message: Message) -> 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:
# Логируем ошибку с использованием Logs.error
raise e # Перебрасываем ошибку выше для дальнейшей обработки
def username_to_text(message: Message) -> str:
"""
Преобразует информацию о пользователе в строку с HTML-ссылкой.
:param message: Объект сообщения из aiogram.
:return: Строка с HTML-кодом для ссылки на пользователя.
:raises ValueError: Если в сообщении отсутствует информация о пользователе.
"""
try:
if message.from_user:
return f'<b><a href="tg://user?id={message.from_user.id}">{message.from_user.full_name}</a></b>'
raise ValueError("Информация о пользователе отсутствует в сообщении.")
except ValueError as e:
# Логируем ошибку с использованием Logs.error
raise e # Перебрасываем ошибку выше для дальнейшей обработки