refactor: reorganize backend module boundaries

This commit is contained in:
jxxghp
2026-08-14 19:53:33 +08:00
parent fe0b444ceb
commit 369d7d6448
584 changed files with 2423 additions and 2275 deletions

View File

@@ -5,14 +5,14 @@ from threading import Lock
from typing import Any, Dict, List, Optional, Tuple
from app.chain.transfer import TransferChain
from app.platform.cache import TTLCache
from app.platform.config import settings
from app.runtime.cache import TTLCache
from app.runtime.config import settings
from app.db.transferhistory_oper import TransferHistoryOper
from app.services.directory import DirectoryHelper
from app.services.history import (HistoryGateAction, describe_history_gate,
from app.application.directory import DirectoryHelper
from app.application.history import (HistoryGateAction, describe_history_gate,
evaluate_history_gate, is_skip_action,
max_failed_retries, resolve_history)
from app.platform.log import logger
from app.runtime.log import logger
from app.modules.filemanager.fsproxy import fsproxy
from app.schemas import FileItem
from app.schemas.types import MediaType
@@ -92,7 +92,7 @@ class TransferDispatcher:
"""
依据整理历史判断本次是否跳过整理。
判定策略由 app/services/history.py 统一提供,整理链的计划整理段使用
判定策略由 app/application/history.py 统一提供,整理链的计划整理段使用
同一套判定,避免此处放行的文件在下游被另一套「存在记录即拦」的策略收回。
:param storage: 存储
:param src_path: 整理记录使用的源路径

View File

@@ -7,10 +7,10 @@ from typing import Any, Callable, Dict, List, Optional, Tuple
from apscheduler.schedulers.background import BackgroundScheduler
from app.platform.config import settings
from app.services.directory import DirectoryHelper
from app.messaging.message import MessageHelper
from app.platform.log import logger
from app.runtime.config import settings
from app.application.directory import DirectoryHelper
from app.application.messaging.message import MessageHelper
from app.runtime.log import logger
from app.monitor.dispatcher import TransferDispatcher
from app.monitor.poller import RemotePoller
from app.monitor.recovery import RecoveryExecutor, RecoveryState, probe_path
@@ -18,9 +18,9 @@ from app.monitor.snapshot import SnapshotStore
from app.monitor.syslimits import decide_monitor_mode, get_system_optimization_tips
from app.monitor.watcher import LocalDirectoryWatcher
from app.schemas.types import SystemConfigKey
from app.platform.reload import ConfigReloadMixin
from app.runtime.reload import ConfigReloadMixin
from app.foundation.singleton import SingletonClass
from app.infrastructure.system import SystemUtils
from app.adapters.system.host import SystemUtils
class Monitor(ConfigReloadMixin, metaclass=SingletonClass):

View File

@@ -4,7 +4,7 @@ from threading import Lock
from typing import Callable, Dict, List, Optional
from app.chain.storage import StorageChain
from app.platform.log import logger
from app.runtime.log import logger
from app.monitor.dispatcher import TransferDispatcher
from app.monitor.snapshot import SnapshotStore

View File

@@ -24,7 +24,7 @@ from enum import Enum
from pathlib import Path
from typing import Callable, Dict, Optional
from app.platform.log import logger
from app.runtime.log import logger
# 探测子进程执行的脚本:只对目标路径做一次 stat成功退出 0失败退出非 0。
# 用 sys.executable 而不是 test/stat 等外部命令,避免依赖发行版的 coreutils 布局。

View File

@@ -2,9 +2,9 @@ import json
import time
from typing import Dict, List, Optional, Tuple
from app.platform.cache import FileCache
from app.platform.config import settings
from app.platform.log import logger
from app.runtime.cache import FileCache
from app.runtime.config import settings
from app.runtime.log import logger
class SnapshotStore:

View File

@@ -3,9 +3,9 @@ import platform
from pathlib import Path
from typing import Any, Dict, List, Optional, Tuple
from app.platform.config import settings
from app.platform.log import logger
from app.infrastructure.system import SystemUtils
from app.runtime.config import settings
from app.runtime.log import logger
from app.adapters.system.host import SystemUtils
def count_directory_entries(directory: Path, max_check: int = 10000) -> Tuple[int, int]:

View File

@@ -7,8 +7,8 @@ from typing import Any, Optional
from watchfiles import Change, DefaultFilter, watch
from app.platform.config import settings
from app.platform.log import logger
from app.runtime.config import settings
from app.runtime.log import logger
@dataclass(frozen=True)