mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-04 23:17:20 +08:00
refactor: reorganize backend module boundaries
This commit is contained in:
+11
-11
@@ -12,21 +12,21 @@ from fastapi.concurrency import run_in_threadpool
|
||||
from qbittorrentapi import TorrentFilesList
|
||||
from transmission_rpc import File
|
||||
|
||||
from app.platform.cache import FileCache, AsyncFileCache, fresh, async_fresh
|
||||
from app.platform.config import settings
|
||||
from app.runtime.cache import FileCache, AsyncFileCache, fresh, async_fresh
|
||||
from app.runtime.config import settings
|
||||
from app.domain.context import Context, MediaInfo, MusicInfo, SubtitleInfo, TorrentInfo
|
||||
from app.platform.events import Event, EventManager
|
||||
from app.runtime.events import Event, EventManager
|
||||
from app.domain.meta.metabase import MetaBase
|
||||
from app.domain.meta.metamusic import MetaMusic
|
||||
from app.extensions.module_manager import ModuleManager
|
||||
from app.extensions.plugin_manager import PluginManager
|
||||
from app.runtime.extensions.module_manager import ModuleManager
|
||||
from app.runtime.extensions.plugin_manager import PluginManager
|
||||
from app.db.message_oper import MessageOper
|
||||
from app.db.systemconfig_oper import SystemConfigOper
|
||||
from app.db.user_oper import UserOper
|
||||
from app.messaging.message import MessageHelper, MessageQueueManager, MessageTemplateHelper
|
||||
from app.integrations.server import MoviePilotServerHelper
|
||||
from app.extensions.service_registry import ServiceConfigHelper
|
||||
from app.platform.log import logger
|
||||
from app.application.messaging.message import MessageHelper, MessageQueueManager, MessageTemplateHelper
|
||||
from app.adapters.external.server import MoviePilotServerHelper
|
||||
from app.runtime.extensions.service_registry import ServiceConfigHelper
|
||||
from app.runtime.log import logger
|
||||
from app.schemas import (
|
||||
RateLimitExceededException,
|
||||
TransferInfo,
|
||||
@@ -56,7 +56,7 @@ from app.schemas.types import (
|
||||
MediaSource,
|
||||
SystemConfigKey,
|
||||
)
|
||||
from app.foundation.object import ObjectUtils
|
||||
from app.foundation.reflection import ObjectUtils
|
||||
|
||||
|
||||
class ChainBase(metaclass=ABCMeta):
|
||||
@@ -2089,7 +2089,7 @@ class ChainBase(metaclass=ABCMeta):
|
||||
"""
|
||||
if channel == MessageChannel.WebAgent:
|
||||
try:
|
||||
from app.messaging.agent import edit_web_agent_message
|
||||
from app.application.messaging.agent import edit_web_agent_message
|
||||
|
||||
return edit_web_agent_message(
|
||||
user_id=str((metadata or {}).get("userid") or ""),
|
||||
|
||||
@@ -13,8 +13,8 @@ from app import schemas
|
||||
from app.chain import ChainBase
|
||||
from app.chain.media import MediaChain
|
||||
from app.chain.storage import StorageChain
|
||||
from app.platform.cache import FileCache
|
||||
from app.platform.config import settings, global_vars
|
||||
from app.runtime.cache import FileCache
|
||||
from app.runtime.config import settings, global_vars
|
||||
from app.domain.context import (
|
||||
Context,
|
||||
MediaInfo,
|
||||
@@ -22,25 +22,25 @@ from app.domain.context import (
|
||||
SubtitleInfo,
|
||||
TorrentInfo,
|
||||
)
|
||||
from app.platform.events import eventmanager, Event
|
||||
from app.runtime.events import eventmanager, Event
|
||||
from app.domain.meta.metabase import MetaBase
|
||||
from app.domain.meta.metamusic import MetaMusic
|
||||
from app.domain.metainfo import MetaInfo
|
||||
from app.db.downloadfailure_oper import DownloadFailureOper
|
||||
from app.db.downloadhistory_oper import DownloadHistoryOper
|
||||
from app.db.mediaserver_oper import MediaServerOper
|
||||
from app.services.directory import DirectoryHelper, validate_download_save_path
|
||||
from app.platform.thread import ThreadHelper
|
||||
from app.services.torrent import TorrentHelper
|
||||
from app.platform.log import logger
|
||||
from app.application.directory import DirectoryHelper, validate_download_save_path
|
||||
from app.runtime.thread import ThreadHelper
|
||||
from app.application.torrent import TorrentHelper
|
||||
from app.runtime.log import logger
|
||||
from app.schemas import ExistMediaInfo, FileURI, NotExistMediaInfo, DownloaderTorrent, Notification, ResourceSelectionEventData, \
|
||||
ResourceDownloadEventData
|
||||
from app.schemas.types import MUSIC_ENTITY_ALBUM, MediaSource, MediaType, TorrentStatus, EventType, MessageChannel, NotificationType, ContentType, \
|
||||
ChainEventType
|
||||
from app.foundation.http import RequestUtils
|
||||
from app.adapters.network.http import RequestUtils
|
||||
from app.domain.media import build_media_key, resolve_media_identity
|
||||
from app.domain.string import StringUtils
|
||||
from app.infrastructure.system import SystemUtils
|
||||
from app.adapters.system.host import SystemUtils
|
||||
|
||||
|
||||
DOWNLOAD_FAILURE_RESOURCE_TTL_SECONDS = 24 * 60 * 60
|
||||
|
||||
+5
-5
@@ -12,8 +12,8 @@ from app.chain.acoustid import AcoustIdChain
|
||||
from app.chain.douban import DoubanChain
|
||||
from app.chain.musicbrainz import MusicBrainzChain, _MusicMetadataSourceChain
|
||||
from app.chain.theaudiodb import TheAudioDbChain
|
||||
from app.platform.cache import async_fresh, fresh
|
||||
from app.platform.config import settings
|
||||
from app.runtime.cache import async_fresh, fresh
|
||||
from app.runtime.config import settings
|
||||
from app.domain.context import (
|
||||
Context,
|
||||
MediaInfo,
|
||||
@@ -21,12 +21,12 @@ from app.domain.context import (
|
||||
MusicArtistInfo,
|
||||
MusicInfo,
|
||||
)
|
||||
from app.platform.events import eventmanager, Event
|
||||
from app.runtime.events import eventmanager, Event
|
||||
from app.domain.meta.metabase import MetaBase
|
||||
from app.domain.meta.metamusic import MetaMusic
|
||||
from app.domain.metainfo import MetaInfo, MetaInfoPath
|
||||
from app.services.audio import AudioMetadataHelper
|
||||
from app.platform.log import logger
|
||||
from app.application.audio import AudioMetadataHelper
|
||||
from app.runtime.log import logger
|
||||
from app.schemas import FileItem
|
||||
from app.schemas.types import (
|
||||
MUSIC_ENTITY_ALBUM,
|
||||
|
||||
@@ -3,13 +3,13 @@ from datetime import datetime
|
||||
from typing import Callable, Dict, List, Union, Optional, Generator, Any
|
||||
|
||||
from app.chain import ChainBase
|
||||
from app.platform.config import global_vars
|
||||
from app.runtime.config import global_vars
|
||||
from app.db.mediaserver_oper import MediaServerOper
|
||||
from app.extensions.service_registry import ServiceConfigHelper
|
||||
from app.platform.log import logger
|
||||
from app.runtime.extensions.service_registry import ServiceConfigHelper
|
||||
from app.runtime.log import logger
|
||||
from app.schemas import MediaServerLibrary, MediaServerItem, MediaServerSeasonInfo, MediaServerPlayItem
|
||||
from app.schemas.types import MediaType
|
||||
from app.security.url import SecurityUtils
|
||||
from app.application.security.url import SecurityUtils
|
||||
|
||||
lock = threading.Lock()
|
||||
|
||||
|
||||
@@ -22,26 +22,26 @@ from app.chain.site import SiteChain, site_interaction_manager
|
||||
from app.chain.skills import SkillsChain, skills_interaction_manager
|
||||
from app.chain.subscribe import SubscribeChain, subscribe_interaction_manager
|
||||
from app.chain.transfer import TransferChain
|
||||
from app.platform.config import settings, global_vars
|
||||
from app.runtime.config import settings, global_vars
|
||||
from app.domain.context import MediaInfo, Context
|
||||
from app.domain.meta.metabase import MetaBase
|
||||
from app.db.models import TransferHistory
|
||||
from app.db.transferhistory_oper import TransferHistoryOper
|
||||
from app.db.user_oper import UserOper
|
||||
from app.services.directory import DirectoryHelper
|
||||
from app.messaging.interaction import (
|
||||
from app.application.directory import DirectoryHelper
|
||||
from app.application.messaging.interaction import (
|
||||
agent_interaction_manager,
|
||||
media_interaction_manager,
|
||||
plugin_input_interaction_manager,
|
||||
PendingMediaInteraction,
|
||||
)
|
||||
from app.services.torrent import TorrentHelper
|
||||
from app.platform.log import logger
|
||||
from app.application.torrent import TorrentHelper
|
||||
from app.runtime.log import logger
|
||||
from app.schemas import CommingMessage, DownloadDirectory, FileURI, NotExistMediaInfo, Notification
|
||||
from app.schemas.message import ChannelCapabilityManager, ChannelCapability
|
||||
from app.schemas.system import TransferDirectoryConf
|
||||
from app.schemas.types import EventType, MessageChannel, MediaType
|
||||
from app.foundation.http import RequestUtils
|
||||
from app.adapters.network.http import RequestUtils
|
||||
from app.domain.media import build_media_key, resolve_media_identity
|
||||
from app.domain.string import StringUtils
|
||||
|
||||
|
||||
@@ -7,18 +7,18 @@ from app.chain.bangumi import BangumiChain
|
||||
from app.chain.douban import DoubanChain
|
||||
from app.chain.listenbrainz import ListenBrainzChain
|
||||
from app.chain.tmdb import TmdbChain
|
||||
from app.platform.cache import cached, fresh
|
||||
from app.platform.config import settings, global_vars
|
||||
from app.runtime.cache import cached, fresh
|
||||
from app.runtime.config import settings, global_vars
|
||||
from app.domain.context import MusicInfo
|
||||
from app.services.image import ImageHelper
|
||||
from app.platform.log import logger
|
||||
from app.application.image import ImageHelper
|
||||
from app.runtime.log import logger
|
||||
from app.schemas import MediaType
|
||||
from app.schemas.types import (
|
||||
MUSIC_ENTITY_ALBUM,
|
||||
MUSIC_ENTITY_RECORDING,
|
||||
MediaSource,
|
||||
)
|
||||
from app.platform.execution import log_execution_time
|
||||
from app.runtime.execution import log_execution_time
|
||||
from app.domain.media import normalize_media_source
|
||||
from app.foundation.singleton import Singleton
|
||||
|
||||
|
||||
@@ -13,8 +13,8 @@ from app import schemas
|
||||
from app.chain import ChainBase
|
||||
from app.chain.lrclib import LrclibChain
|
||||
from app.chain.storage import StorageChain
|
||||
from app.platform.cache import async_fresh, cached, fresh
|
||||
from app.platform.config import settings
|
||||
from app.runtime.cache import async_fresh, cached, fresh
|
||||
from app.runtime.config import settings
|
||||
from app.domain.context import (
|
||||
Context,
|
||||
MediaInfo,
|
||||
@@ -22,13 +22,13 @@ from app.domain.context import (
|
||||
MusicInfo,
|
||||
MusicLyrics,
|
||||
)
|
||||
from app.platform.events import eventmanager, Event
|
||||
from app.runtime.events import eventmanager, Event
|
||||
from app.domain.meta.metabase import MetaBase
|
||||
from app.domain.meta.metamusic import MetaMusic
|
||||
from app.domain.metainfo import MetaInfo, MetaInfoPath
|
||||
from app.db.systemconfig_oper import SystemConfigOper
|
||||
from app.services.audio import AudioMetadataHelper
|
||||
from app.platform.log import logger
|
||||
from app.application.audio import AudioMetadataHelper
|
||||
from app.runtime.log import logger
|
||||
from app.schemas import FileItem
|
||||
from app.schemas.types import (
|
||||
MUSIC_ENTITY_ALBUM,
|
||||
@@ -42,13 +42,13 @@ from app.schemas.types import (
|
||||
ScrapingPolicy,
|
||||
SystemConfigKey,
|
||||
)
|
||||
from app.foundation.http import RequestUtils
|
||||
from app.adapters.network.http import RequestUtils
|
||||
from app.domain.media import (
|
||||
is_music_media_source,
|
||||
normalize_media_source,
|
||||
resolve_media_identity,
|
||||
)
|
||||
from app.platform.reload import ConfigReloadMixin
|
||||
from app.runtime.reload import ConfigReloadMixin
|
||||
from app.foundation.singleton import Singleton
|
||||
from app.domain.string import StringUtils
|
||||
|
||||
|
||||
+7
-7
@@ -14,18 +14,18 @@ from fastapi.concurrency import run_in_threadpool
|
||||
|
||||
from app.chain import ChainBase
|
||||
from app.chain.media import MediaChain
|
||||
from app.platform.config import global_vars, settings
|
||||
from app.runtime.config import global_vars, settings
|
||||
from app.domain.context import Context
|
||||
from app.domain.context import MediaInfo, SubtitleInfo, TorrentInfo
|
||||
from app.platform.events import eventmanager, Event
|
||||
from app.runtime.events import eventmanager, Event
|
||||
from app.domain.meta.metamusic import MetaMusic
|
||||
from app.domain.metainfo import MetaInfo
|
||||
from app.domain.context import MusicInfo
|
||||
from app.db.systemconfig_oper import SystemConfigOper
|
||||
from app.platform.progress import ProgressHelper
|
||||
from app.infrastructure.sites import SitesHelper # noqa
|
||||
from app.services.torrent import TorrentHelper
|
||||
from app.platform.log import logger
|
||||
from app.runtime.progress import ProgressHelper
|
||||
from app.application.site.sites import SitesHelper # pylint: disable=no-name-in-module
|
||||
from app.application.torrent import TorrentHelper
|
||||
from app.runtime.log import logger
|
||||
from app.schemas import NotExistMediaInfo
|
||||
from app.schemas.types import (
|
||||
MUSIC_ENTITY_ALBUM,
|
||||
@@ -41,7 +41,7 @@ from app.domain.media import (
|
||||
resolve_media_identity,
|
||||
)
|
||||
from app.domain.string import StringUtils
|
||||
from app.foundation.zhconv import convert as zhconv_convert
|
||||
from app.foundation.text import convert as zhconv_convert
|
||||
|
||||
|
||||
class SearchChain(ChainBase):
|
||||
|
||||
+11
-11
@@ -4,20 +4,20 @@ from datetime import datetime
|
||||
from typing import Callable, List, Optional, Tuple, Union, Dict
|
||||
from urllib.parse import urljoin
|
||||
|
||||
from app.infrastructure.sites import SitesHelper # noqa
|
||||
from app.application.site.sites import SitesHelper # pylint: disable=no-name-in-module
|
||||
from lxml import etree
|
||||
|
||||
from app.chain import ChainBase
|
||||
from app.platform.config import global_vars, settings
|
||||
from app.platform.events import Event, eventmanager
|
||||
from app.runtime.config import global_vars, settings
|
||||
from app.runtime.events import Event, eventmanager
|
||||
from app.db.models.site import Site
|
||||
from app.db.site_oper import SiteOper
|
||||
from app.db.systemconfig_oper import SystemConfigOper
|
||||
from app.infrastructure.browser import PlaywrightHelper
|
||||
from app.infrastructure.cloudflare import under_challenge
|
||||
from app.security.cookie import CookieHelper
|
||||
from app.integrations.cookiecloud import CookieCloudHelper
|
||||
from app.messaging.interaction import (
|
||||
from app.adapters.network.browser import PlaywrightHelper
|
||||
from app.adapters.network.cloudflare import under_challenge
|
||||
from app.application.security.cookie import CookieHelper
|
||||
from app.adapters.external.cookiecloud import CookieCloudHelper
|
||||
from app.application.messaging.interaction import (
|
||||
SlashInteractionManager,
|
||||
build_navigation_buttons,
|
||||
format_markdown_table,
|
||||
@@ -26,11 +26,11 @@ from app.messaging.interaction import (
|
||||
supports_markdown,
|
||||
update_or_post_message,
|
||||
)
|
||||
from app.infrastructure.rss import RssHelper
|
||||
from app.platform.log import logger
|
||||
from app.application.rss import RssHelper
|
||||
from app.runtime.log import logger
|
||||
from app.schemas import MessageChannel, Notification, SiteUserData
|
||||
from app.schemas.types import EventType, NotificationType
|
||||
from app.foundation.http import RequestUtils
|
||||
from app.adapters.network.http import RequestUtils
|
||||
from app.domain.site import SiteUtils
|
||||
from app.domain.string import StringUtils
|
||||
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@ import re
|
||||
from typing import List, Optional, Tuple, Union
|
||||
|
||||
from app.chain import ChainBase
|
||||
from app.messaging.interaction import (
|
||||
from app.application.messaging.interaction import (
|
||||
build_navigation_buttons,
|
||||
page_items,
|
||||
supports_interaction_buttons,
|
||||
|
||||
@@ -3,9 +3,9 @@ from typing import Optional, Tuple, List, Dict
|
||||
|
||||
from app import schemas
|
||||
from app.chain import ChainBase
|
||||
from app.platform.config import settings
|
||||
from app.services.directory import DirectoryHelper
|
||||
from app.platform.log import logger
|
||||
from app.runtime.config import settings
|
||||
from app.application.directory import DirectoryHelper
|
||||
from app.runtime.log import logger
|
||||
|
||||
|
||||
class StorageChain(ChainBase):
|
||||
|
||||
@@ -15,14 +15,14 @@ from app.chain.mediaserver import MediaServerChain
|
||||
from app.chain.search import SearchChain
|
||||
from app.chain.tmdb import TmdbChain
|
||||
from app.chain.torrents import TorrentsChain
|
||||
from app.platform.config import settings, global_vars
|
||||
from app.runtime.config import settings, global_vars
|
||||
from app.domain.context import (
|
||||
Context,
|
||||
MediaInfo,
|
||||
MusicInfo,
|
||||
TorrentInfo,
|
||||
)
|
||||
from app.platform.events import eventmanager, Event
|
||||
from app.runtime.events import eventmanager, Event
|
||||
from app.domain.meta.metabase import MetaBase
|
||||
from app.domain.meta.metamusic import MetaMusic
|
||||
from app.domain.meta.words import WordsMatcher
|
||||
@@ -32,7 +32,7 @@ from app.db.models.subscribe import Subscribe
|
||||
from app.db.site_oper import SiteOper
|
||||
from app.db.subscribe_oper import SubscribeOper
|
||||
from app.db.systemconfig_oper import SystemConfigOper
|
||||
from app.messaging.interaction import (
|
||||
from app.application.messaging.interaction import (
|
||||
SlashInteractionManager,
|
||||
build_navigation_buttons,
|
||||
format_markdown_table,
|
||||
@@ -41,10 +41,10 @@ from app.messaging.interaction import (
|
||||
supports_markdown,
|
||||
update_or_post_message,
|
||||
)
|
||||
from app.services.mediaserver import MediaServerHelper
|
||||
from app.integrations.server import MoviePilotServerHelper
|
||||
from app.services.torrent import TorrentHelper
|
||||
from app.platform.log import logger
|
||||
from app.application.mediaserver import MediaServerHelper
|
||||
from app.adapters.external.server import MoviePilotServerHelper
|
||||
from app.application.torrent import TorrentHelper
|
||||
from app.runtime.log import logger
|
||||
from app.schemas import (SubscribeEpisodesRefreshEventData,
|
||||
SubscribeCompletionCheckEventData)
|
||||
from app.schemas.types import MUSIC_ENTITY_ALBUM, MUSIC_ENTITY_RECORDING, MediaSource, MediaType, SystemConfigKey, MessageChannel, NotificationType, EventType, ChainEventType, \
|
||||
|
||||
+6
-6
@@ -5,13 +5,13 @@ from pathlib import Path
|
||||
from typing import Union, Optional
|
||||
|
||||
from app.chain import ChainBase
|
||||
from app.platform.config import settings
|
||||
from app.extensions.plugin_manager import PluginManager
|
||||
from app.platform.runtime import SystemHelper
|
||||
from app.platform.log import logger
|
||||
from app.runtime.config import settings
|
||||
from app.runtime.extensions.plugin_manager import PluginManager
|
||||
from app.runtime.state import SystemHelper
|
||||
from app.runtime.log import logger
|
||||
from app.schemas import Notification, MessageChannel
|
||||
from app.foundation.http import RequestUtils
|
||||
from app.infrastructure.system import SystemUtils
|
||||
from app.adapters.network.http import RequestUtils
|
||||
from app.adapters.system.host import SystemUtils
|
||||
from version import FRONTEND_VERSION, APP_VERSION
|
||||
|
||||
|
||||
|
||||
@@ -3,20 +3,20 @@ import re
|
||||
import traceback
|
||||
from typing import Callable, Dict, List, Union, Optional
|
||||
|
||||
from app.infrastructure.sites import SitesHelper # noqa
|
||||
from app.application.site.sites import SitesHelper # pylint: disable=no-name-in-module
|
||||
|
||||
from app.chain import ChainBase
|
||||
from app.chain.media import MediaChain
|
||||
from app.platform.config import settings, global_vars
|
||||
from app.runtime.config import settings, global_vars
|
||||
from app.domain.context import TorrentInfo, Context, MediaInfo
|
||||
from app.domain.context import MusicInfo
|
||||
from app.domain.meta.metamusic import MetaMusic
|
||||
from app.domain.metainfo import MetaInfo
|
||||
from app.db.site_oper import SiteOper
|
||||
from app.db.systemconfig_oper import SystemConfigOper
|
||||
from app.infrastructure.rss import RssHelper
|
||||
from app.services.torrent import TorrentHelper
|
||||
from app.platform.log import logger
|
||||
from app.application.rss import RssHelper
|
||||
from app.application.torrent import TorrentHelper
|
||||
from app.runtime.log import logger
|
||||
from app.schemas import Notification
|
||||
from app.schemas.types import SystemConfigKey, MessageChannel, NotificationType, MediaType
|
||||
from app.domain.media import resolve_media_identity
|
||||
|
||||
+11
-11
@@ -16,9 +16,9 @@ from app.chain.media import MediaChain
|
||||
from app.chain.storage import StorageChain
|
||||
from app.chain.subscribe import SubscribeChain
|
||||
from app.chain.tmdb import TmdbChain
|
||||
from app.platform.config import settings, global_vars
|
||||
from app.runtime.config import settings, global_vars
|
||||
from app.domain.context import MediaInfo, MusicInfo
|
||||
from app.platform.events import eventmanager
|
||||
from app.runtime.events import eventmanager
|
||||
from app.domain.meta.metabase import MetaBase
|
||||
from app.domain.meta.metamusic import MetaMusic
|
||||
from app.domain.metainfo import MetaInfoPath
|
||||
@@ -28,14 +28,14 @@ from app.db.models.transferhistory import TransferHistory
|
||||
from app.db.systemconfig_oper import SystemConfigOper
|
||||
from app.db.transferpending_oper import TransferPendingOper
|
||||
from app.db.transferhistory_oper import TransferHistoryOper
|
||||
from app.services.directory import DirectoryHelper
|
||||
from app.services.audio import AudioMetadataHelper
|
||||
from app.services.formatting import EpisodeFormatRuleHelper, FormatParser
|
||||
from app.platform.progress import ProgressHelper
|
||||
from app.services.history import (clear_transfer_failures, describe_history_gate,
|
||||
from app.application.directory import DirectoryHelper
|
||||
from app.application.audio import AudioMetadataHelper
|
||||
from app.application.formatting import EpisodeFormatRuleHelper, FormatParser
|
||||
from app.runtime.progress import ProgressHelper
|
||||
from app.application.history import (clear_transfer_failures, describe_history_gate,
|
||||
evaluate_history_gate, is_skip_action,
|
||||
record_transfer_failure, resolve_history)
|
||||
from app.platform.log import logger
|
||||
from app.runtime.log import logger
|
||||
from app.schemas import StorageOperSelectionEventData
|
||||
from app.schemas import (
|
||||
TransferInfo,
|
||||
@@ -64,7 +64,7 @@ from app.schemas.types import (
|
||||
MUSIC_ENTITY_RECORDING,
|
||||
MediaSource,
|
||||
)
|
||||
from app.platform.reload import ConfigReloadMixin
|
||||
from app.runtime.reload import ConfigReloadMixin
|
||||
from app.domain.media import (
|
||||
normalize_media_source,
|
||||
normalize_music_type,
|
||||
@@ -72,7 +72,7 @@ from app.domain.media import (
|
||||
)
|
||||
from app.foundation.singleton import Singleton
|
||||
from app.domain.string import StringUtils
|
||||
from app.infrastructure.system import SystemUtils
|
||||
from app.adapters.system.host import SystemUtils
|
||||
|
||||
# 下载器锁
|
||||
downloader_lock = threading.Lock()
|
||||
@@ -4002,7 +4002,7 @@ class TransferChain(ChainBase, ConfigReloadMixin, metaclass=Singleton):
|
||||
raise OperationInterrupted()
|
||||
file_path = Path(file_item.path)
|
||||
|
||||
# 自动整理按 app/services/history.py 的统一判定去重(失败记录放行重试、
|
||||
# 自动整理按 app/application/history.py 的统一判定去重(失败记录放行重试、
|
||||
# 成功但源文件已变化放行交 overwrite_mode 决断);手动整理可清理失败记录,
|
||||
# 或按用户确认清理成功记录。
|
||||
if (not force or reorganize) and not preview:
|
||||
|
||||
+4
-4
@@ -3,14 +3,14 @@ from dataclasses import dataclass
|
||||
from typing import Literal, Optional, Tuple, Union
|
||||
|
||||
from app.chain import ChainBase
|
||||
from app.platform.config import settings
|
||||
from app.security.access import get_password_hash, verify_password
|
||||
from app.runtime.config import settings
|
||||
from app.application.security.access import get_password_hash, verify_password
|
||||
from app.db.models.user import User
|
||||
from app.db.user_oper import UserOper
|
||||
from app.platform.log import logger
|
||||
from app.runtime.log import logger
|
||||
from app.schemas import AuthCredentials, AuthInterceptCredentials
|
||||
from app.schemas.types import ChainEventType
|
||||
from app.security.otp import OtpUtils
|
||||
from app.application.security.otp import OtpUtils
|
||||
|
||||
PASSWORD_INVALID_CREDENTIALS_MESSAGE = "用户名、密码或验证码错误"
|
||||
|
||||
|
||||
@@ -13,11 +13,11 @@ from typing import Any, Callable, List, Optional, Tuple
|
||||
from pydantic import BaseModel
|
||||
|
||||
from app.chain import ChainBase
|
||||
from app.platform.config import global_vars
|
||||
from app.platform.events import Event, eventmanager
|
||||
from app.runtime.config import global_vars
|
||||
from app.runtime.events import Event, eventmanager
|
||||
from app.db.models import Workflow
|
||||
from app.db.workflow_oper import WorkflowOper
|
||||
from app.platform.log import logger
|
||||
from app.runtime.log import logger
|
||||
from app.schemas import ActionContext, ActionFlow, Action, ActionExecution, ActionResult
|
||||
from app.schemas.types import EventType
|
||||
from app.workflow import WorkFlowManager
|
||||
|
||||
Reference in New Issue
Block a user