2.0 Да я ебал это все рассписывать но тут типо новая система логгирования
This commit is contained in:
@@ -1,24 +1,25 @@
|
||||
# BotLibrary/validators/email_validators.py
|
||||
# Создание валидации почты для проекта
|
||||
|
||||
from email_validator import validate_email, EmailNotValidError
|
||||
from typing import Optional
|
||||
from email_validator import validate_email, EmailNotValidError
|
||||
|
||||
# Настройка экспорта из этого модуля
|
||||
__all__ = ("valid_email",)
|
||||
|
||||
# Функция проверки почты на корректность
|
||||
def valid_email(text: str) -> Optional[str]:
|
||||
"""
|
||||
Проверяет корректность почтового адреса.
|
||||
|
||||
:param text: Почтовый адрес в виде строки.
|
||||
# Функция проверки почты на корректность
|
||||
def valid_email(email: str) -> Optional[str]:
|
||||
"""
|
||||
Делает почтовый адрес корректным.
|
||||
|
||||
:param email: Почтовый адрес в виде строки.
|
||||
:return: Нормализованный почтовый адрес, если он валиден, иначе None.
|
||||
"""
|
||||
try:
|
||||
# Проверка и нормализация email
|
||||
email = validate_email(text)
|
||||
return email.normalized
|
||||
except EmailNotValidError:
|
||||
# Если email невалиден, можно добавить логирование или обработку ошибок
|
||||
return None
|
||||
return validate_email(email).normalized
|
||||
except EmailNotValidError as e:
|
||||
# Импортируем Logs внутри функции, чтобы избежать циклического импорта
|
||||
from ..loggers.custom_loggers import Logs
|
||||
Logs.error(text=f"Ошибка в нормализировании почты: {e}", log_type="NormalEmail")
|
||||
return None
|
||||
@@ -1,5 +1,20 @@
|
||||
# BotLibrary/validators/normal_word.py
|
||||
# Нормализирует вид слова автоматически
|
||||
|
||||
async def normal_words(word : str = "Тестовое слово") -> str:
|
||||
return word.lower().capitalize()
|
||||
# Настройка экспорта из этого модуля
|
||||
__all__ = ("normal_words",)
|
||||
|
||||
async def normal_words(word: str) -> str:
|
||||
"""
|
||||
Делает слово корректного вида.
|
||||
|
||||
:param word: Слово, которое будет приводиться к виду (Тесты).
|
||||
:return: Нормализованное слово
|
||||
"""
|
||||
try:
|
||||
return word.lower().capitalize()
|
||||
except Exception as e:
|
||||
# Импортируем Logs внутри функции, чтобы избежать циклического импорта
|
||||
from ..loggers.custom_loggers import Logs
|
||||
Logs.error(text=f"Ошибка в нормализировании слова: {e}", log_type="NormalWord")
|
||||
return word
|
||||
@@ -25,5 +25,27 @@ def valid_url(url: str) -> bool:
|
||||
|
||||
|
||||
# Функция, что дает тексту ссылку на HTML
|
||||
def url_to_text(text: str = "Тест", url: str = "www.google.com") -> str:
|
||||
return f'<b><a href="{url}">{text}</a></b>'
|
||||
def url_to_text(text: str, url: str) -> str:
|
||||
"""
|
||||
Преобразует текст в HTML ссылку с указанным URL.
|
||||
|
||||
Эта функция генерирует HTML-ссылку с переданным текстом и URL, используя тег `<а>`, и делает ссылку жирной.
|
||||
|
||||
:param text: Текст, который будет отображаться для ссылки.
|
||||
:param url: URL, который будет привязан к тексту.
|
||||
:return: Строка с HTML кодом для ссылки, если URL валиден.
|
||||
:raises ValueError: Если URL невалиден.
|
||||
"""
|
||||
try:
|
||||
if not valid_url(url): # Проверяем, является ли URL валидным
|
||||
raise ValueError(f"Переданный URL '{url}' невалиден.")
|
||||
|
||||
# Генерация HTML-ссылки
|
||||
return f'<b><a href="{url}">{text}</a></b>'
|
||||
|
||||
except ValueError as e:
|
||||
# Импортируем Logs внутри функции, чтобы избежать циклического импорта
|
||||
from ..loggers.custom_loggers import Logs
|
||||
# Логируем ошибку с использованием Logs.error, как указано
|
||||
Logs.error(text=f"Ошибка при создании ссылки: {e}", log_type="InvalidURL")
|
||||
raise e # Перебрасываем ошибку выше для дальнейшей обработки или уведомления
|
||||
@@ -6,6 +6,7 @@ from aiogram.types import Message
|
||||
# Настройка экспорта из модуля
|
||||
__all__ = ("username", "username_to_text")
|
||||
|
||||
|
||||
# Функция получения юзера или ID пользователя
|
||||
def username(message: Message) -> str:
|
||||
"""
|
||||
@@ -13,12 +14,32 @@ def username(message: Message) -> str:
|
||||
|
||||
:param message: Объект сообщения из aiogram.
|
||||
:return: Строка с юзернеймом пользователя или его ID.
|
||||
:raises ValueError: Если в сообщении отсутствует информация о пользователе.
|
||||
"""
|
||||
if message.from_user:
|
||||
return f"@{message.from_user.username}" if message.from_user.username else f"@{message.from_user.id}"
|
||||
return "@Unknown_User" # Если from_user отсутствует
|
||||
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:
|
||||
return f'<b><a href="tg://user?id={message.from_user.id}">{message.from_user.full_name}</a></b>'
|
||||
"""
|
||||
Преобразует информацию о пользователе в строку с 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 # Перебрасываем ошибку выше для дальнейшей обработки
|
||||
|
||||
Reference in New Issue
Block a user