diff --git a/src/admin_notifier.py b/src/admin_notifier.py index 5e137f8..b550291 100644 --- a/src/admin_notifier.py +++ b/src/admin_notifier.py @@ -4,8 +4,10 @@ import asyncio from datetime import datetime from typing import Any, Optional from aiogram import Bot -from loguru import logger -from .config import settings +try: + from .config import settings +except (ImportError, ValueError): + from config import settings class AdminNotifier: diff --git a/src/cleaner.py b/src/cleaner.py index 0346884..0f76cee 100644 --- a/src/cleaner.py +++ b/src/cleaner.py @@ -4,9 +4,12 @@ import asyncio import os import time from pathlib import Path -from loguru import logger -from .config import settings -from .media_processor import is_path_active +try: + from .config import settings + from .media_processor import is_path_active +except (ImportError, ValueError): + from config import settings + from media_processor import is_path_active async def cleanup_stale_cache(max_age_minutes: Optional[int] = None) -> int: diff --git a/src/database.py b/src/database.py index 0ea7ca4..f255ce2 100644 --- a/src/database.py +++ b/src/database.py @@ -4,8 +4,10 @@ import json from datetime import datetime from typing import Any, Optional import aiosqlite -from loguru import logger -from .config import settings +try: + from .config import settings +except (ImportError, ValueError): + from config import settings class Database: diff --git a/src/main.py b/src/main.py index 4ce6d16..115c68c 100644 --- a/src/main.py +++ b/src/main.py @@ -5,15 +5,24 @@ import os import signal import sys from typing import Any, Optional -from loguru import logger -from .admin_notifier import AdminNotifier -from .cleaner import cleanup_stale_cache, run_cleaner_loop -from .config import settings -from .database import Database -from .max_poster import MAXPoster -from .media_processor import MediaProcessor -from .tg_poster import TelegramPoster -from .vk_client import VKClient, VKPost +try: + from .admin_notifier import AdminNotifier + from .cleaner import cleanup_stale_cache, run_cleaner_loop + from .config import settings + from .database import Database + from .max_poster import MAXPoster + from .media_processor import MediaProcessor + from .tg_poster import TelegramPoster + from .vk_client import VKClient, VKPost +except (ImportError, ValueError): + from admin_notifier import AdminNotifier + from cleaner import cleanup_stale_cache, run_cleaner_loop + from config import settings + from database import Database + from max_poster import MAXPoster + from media_processor import MediaProcessor + from tg_poster import TelegramPoster + from vk_client import VKClient, VKPost class ServiceApp: diff --git a/src/max_poster.py b/src/max_poster.py index 1bde739..79845bc 100644 --- a/src/max_poster.py +++ b/src/max_poster.py @@ -7,10 +7,14 @@ from pathlib import Path from typing import Any, Optional from urllib.parse import quote import aiohttp -from loguru import logger -from .config import settings -from .media_processor import ProcessedMedia -from .text_formatter import format_post_text, split_message_chunks +try: + from .config import settings + from .media_processor import ProcessedMedia + from .text_formatter import format_post_text, split_message_chunks +except (ImportError, ValueError): + from config import settings + from media_processor import ProcessedMedia + from text_formatter import format_post_text, split_message_chunks MAX_MESSAGE_LIMIT = 4000 MAX_MEDIA_ITEMS = 10 diff --git a/src/media_processor.py b/src/media_processor.py index dca50cb..369d321 100644 --- a/src/media_processor.py +++ b/src/media_processor.py @@ -9,8 +9,10 @@ from dataclasses import dataclass from pathlib import Path from typing import Any, Optional, Set import aiohttp -from loguru import logger -from .config import settings +try: + from .config import settings +except (ImportError, ValueError): + from config import settings # Global registry of paths currently being written / downloaded / processed diff --git a/src/text_formatter.py b/src/text_formatter.py index dcda956..a2e3543 100644 --- a/src/text_formatter.py +++ b/src/text_formatter.py @@ -2,8 +2,10 @@ from __future__ import annotations import html import re -from typing import Optional -from .config import settings +try: + from .config import settings +except (ImportError, ValueError): + from config import settings def split_message_chunks(text: str, limit: int = 4000) -> list[str]: diff --git a/src/tg_poster.py b/src/tg_poster.py index 346d06d..1987576 100644 --- a/src/tg_poster.py +++ b/src/tg_poster.py @@ -11,10 +11,14 @@ from aiogram.client.session.aiohttp import AiohttpSession from aiogram.client.telegram import TelegramAPIServer from aiogram.exceptions import TelegramRetryAfter from aiogram.types import FSInputFile, InputMediaPhoto, InputMediaVideo -from loguru import logger -from .config import settings -from .media_processor import ProcessedMedia -from .text_formatter import format_post_text, split_message_chunks +try: + from .config import settings + from .media_processor import ProcessedMedia + from .text_formatter import format_post_text, split_message_chunks +except (ImportError, ValueError): + from config import settings + from media_processor import ProcessedMedia + from text_formatter import format_post_text, split_message_chunks MAX_MEDIA_GROUP = 10 MAX_RICH_MEDIA = 50 diff --git a/src/vk_client.py b/src/vk_client.py index 329ff52..03f37ae 100644 --- a/src/vk_client.py +++ b/src/vk_client.py @@ -6,8 +6,10 @@ import time from dataclasses import dataclass from typing import Any, Optional import aiohttp -from loguru import logger -from .config import settings +try: + from .config import settings +except (ImportError, ValueError): + from config import settings class VKAPIError(RuntimeError):