Fix import resolution for direct execution

This commit is contained in:
2026-08-14 19:21:52 +05:00
parent 41722c0ffc
commit de8501045f
9 changed files with 60 additions and 30 deletions
+4 -2
View File
@@ -4,8 +4,10 @@ import asyncio
from datetime import datetime from datetime import datetime
from typing import Any, Optional from typing import Any, Optional
from aiogram import Bot from aiogram import Bot
from loguru import logger try:
from .config import settings from .config import settings
except (ImportError, ValueError):
from config import settings
class AdminNotifier: class AdminNotifier:
+6 -3
View File
@@ -4,9 +4,12 @@ import asyncio
import os import os
import time import time
from pathlib import Path from pathlib import Path
from loguru import logger try:
from .config import settings from .config import settings
from .media_processor import is_path_active 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: async def cleanup_stale_cache(max_age_minutes: Optional[int] = None) -> int:
+4 -2
View File
@@ -4,8 +4,10 @@ import json
from datetime import datetime from datetime import datetime
from typing import Any, Optional from typing import Any, Optional
import aiosqlite import aiosqlite
from loguru import logger try:
from .config import settings from .config import settings
except (ImportError, ValueError):
from config import settings
class Database: class Database:
+18 -9
View File
@@ -5,15 +5,24 @@ import os
import signal import signal
import sys import sys
from typing import Any, Optional from typing import Any, Optional
from loguru import logger try:
from .admin_notifier import AdminNotifier from .admin_notifier import AdminNotifier
from .cleaner import cleanup_stale_cache, run_cleaner_loop from .cleaner import cleanup_stale_cache, run_cleaner_loop
from .config import settings from .config import settings
from .database import Database from .database import Database
from .max_poster import MAXPoster from .max_poster import MAXPoster
from .media_processor import MediaProcessor from .media_processor import MediaProcessor
from .tg_poster import TelegramPoster from .tg_poster import TelegramPoster
from .vk_client import VKClient, VKPost 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: class ServiceApp:
+8 -4
View File
@@ -7,10 +7,14 @@ from pathlib import Path
from typing import Any, Optional from typing import Any, Optional
from urllib.parse import quote from urllib.parse import quote
import aiohttp import aiohttp
from loguru import logger try:
from .config import settings from .config import settings
from .media_processor import ProcessedMedia from .media_processor import ProcessedMedia
from .text_formatter import format_post_text, split_message_chunks 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_MESSAGE_LIMIT = 4000
MAX_MEDIA_ITEMS = 10 MAX_MEDIA_ITEMS = 10
+4 -2
View File
@@ -9,8 +9,10 @@ from dataclasses import dataclass
from pathlib import Path from pathlib import Path
from typing import Any, Optional, Set from typing import Any, Optional, Set
import aiohttp import aiohttp
from loguru import logger try:
from .config import settings from .config import settings
except (ImportError, ValueError):
from config import settings
# Global registry of paths currently being written / downloaded / processed # Global registry of paths currently being written / downloaded / processed
+4 -2
View File
@@ -2,8 +2,10 @@ from __future__ import annotations
import html import html
import re import re
from typing import Optional try:
from .config import settings from .config import settings
except (ImportError, ValueError):
from config import settings
def split_message_chunks(text: str, limit: int = 4000) -> list[str]: def split_message_chunks(text: str, limit: int = 4000) -> list[str]:
+8 -4
View File
@@ -11,10 +11,14 @@ from aiogram.client.session.aiohttp import AiohttpSession
from aiogram.client.telegram import TelegramAPIServer from aiogram.client.telegram import TelegramAPIServer
from aiogram.exceptions import TelegramRetryAfter from aiogram.exceptions import TelegramRetryAfter
from aiogram.types import FSInputFile, InputMediaPhoto, InputMediaVideo from aiogram.types import FSInputFile, InputMediaPhoto, InputMediaVideo
from loguru import logger try:
from .config import settings from .config import settings
from .media_processor import ProcessedMedia from .media_processor import ProcessedMedia
from .text_formatter import format_post_text, split_message_chunks 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_MEDIA_GROUP = 10
MAX_RICH_MEDIA = 50 MAX_RICH_MEDIA = 50
+4 -2
View File
@@ -6,8 +6,10 @@ import time
from dataclasses import dataclass from dataclasses import dataclass
from typing import Any, Optional from typing import Any, Optional
import aiohttp import aiohttp
from loguru import logger try:
from .config import settings from .config import settings
except (ImportError, ValueError):
from config import settings
class VKAPIError(RuntimeError): class VKAPIError(RuntimeError):