refactor(logging): add detailed debug logs

This commit is contained in:
2026-08-02 00:44:16 +05:00
parent a74e2eb328
commit 60d67b613a
4 changed files with 172 additions and 83 deletions
+32 -16
View File
@@ -17,6 +17,7 @@ logger = logging.getLogger(__name__)
class TDATA:
def __init__(self, path: Path, temp_path: Path):
logger.debug(f"Инициализация TDATA с путем: {path}")
try:
self.path = path
self.temp_path = temp_path
@@ -27,21 +28,26 @@ class TDATA:
self.desktop = None
self.telethon = None
self.api = API.TelegramDesktop
logger.debug("Загрузка TDesktop")
self.desktop = self.__get_telegram_desktop()
logger.debug(f"TDATA инициализирована с путем: {self.path}")
if self.desktop:
logger.debug("TDesktop успешно загружен")
except Exception as e:
logger.error(f"Не удалось инициализировать TDATA: {e}")
raise
def __get_telegram_desktop(self) -> TDesktop | None:
logger.debug("Попытка загрузки TDesktop")
try:
if self.desktop:
return self.desktop
return TDesktop(self.path.absolute(), api=self.api)
desktop = TDesktop(self.path.absolute(), api=self.api)
logger.debug("TDesktop создан успешно")
return desktop
except TFileNotFound as e:
logger.warning(f"Файлы TDATA не найдены или неполные: {e}")
@@ -52,27 +58,35 @@ class TDATA:
raise
def __gen_session_path(self) -> str:
logger.debug("Генерация пути сессии")
logger.debug("Генерация уникального пути для сессии")
tempPath = f"temp/{uuid4()}.session"
while Path(tempPath).exists():
logger.debug(f"Путь сессии '{tempPath}' существует, генерация нового")
logger.debug(f"Путь сессии '{tempPath}' уже существует, генерация нового")
tempPath = f"temp/{uuid4()}.session"
logger.debug(f"Сгенерирован путь сессии: {tempPath}")
return tempPath
async def validate(self) -> bool:
logger.debug("Валидация TDATA")
if self.desktop is None:
logger.warning("TDesktop не инициализирован, TDATA невалидна")
logger.warning("TDesktop не инициализирован")
return False
return self.desktop.isLoaded()
is_loaded = self.desktop.isLoaded()
if is_loaded:
logger.debug("TDATA содержит загруженные аккаунты")
else:
logger.warning("TDATA не содержит загруженных аккаунтов")
async def valid(self, client: TelegramClient, disconnect: bool = True) -> bool:
return is_loaded
async def is_valid(self, client: TelegramClient, disconnect: bool = True) -> bool:
logger.debug("Проверка авторизации Telethon клиента")
try:
logger.debug("Проверка авторизации клиента Telethon")
await client.connect()
logger.debug("Подключение к Telegram установлено")
authorized = await client.is_user_authorized()
@@ -84,8 +98,8 @@ class TDATA:
self.telethon = client
return True
except:
logger.exception("Не удалось валидировать клиент")
except Exception as e:
logger.error(f"Не удалось валидировать клиент: {e}")
return False
finally:
@@ -94,26 +108,28 @@ class TDATA:
await client.disconnect()
async def convert(self) -> TelegramClient:
logger.debug("Конвертация TDATA в сессию Telethon")
logger.debug("Начало конвертации TDATA в Telethon сессию")
if not await self.validate():
logger.error("TDATA невалидна, конвертация невозможна")
raise TDesktopNotLoaded("TDATA невалидна или не авторизована")
tempPath = self.__gen_session_path()
try:
logger.debug(f"Создание сессии Telethon по пути '{tempPath}'")
logger.debug(f"Создание Telethon сессии по пути '{tempPath}'")
client = await self.desktop.ToTelethon(
session=tempPath, flag=UseCurrentSession, api=self.api
)
valid_status = await self.valid(client, disconnect=False)
logger.debug("Валидация созданной сессии")
valid_status = await self.is_valid(client, disconnect=False)
if not valid_status:
logger.error("Созданная сессия невалидна")
raise TDesktopUnauthorized("TDATA невалидна или не авторизована")
logger.debug(f"Успешно конвертировано в сессию: {tempPath}")
logger.debug(f"Конвертация успешна: {tempPath}")
return self.telethon
except Exception as e:
logger.exception(f"Не удалось конвертировать TDATA: {e}")
logger.error(f"Не удалось конвертировать TDATA: {e}")
raise