mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-08-21 16:23:34 +08:00
refactor backend module architecture
This commit is contained in:
@@ -20,7 +20,8 @@ from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from app import schemas
|
||||
from app.api.response import ResponseAPIRouter
|
||||
from app.agent import MoviePilotAgent, ReplyMode, StreamingHandler, agent_manager
|
||||
from app.agent.callback import StreamingHandler
|
||||
from app.agent.orchestrator import MoviePilotAgent, ReplyMode, agent_manager
|
||||
from app.agent.llm.capability import AgentCapabilityManager
|
||||
from app.agent.mcp import agent_mcp_manager
|
||||
from app.chain.message import MessageChain
|
||||
@@ -28,17 +29,17 @@ from app.chain.site import site_interaction_manager
|
||||
from app.chain.skills import skills_interaction_manager
|
||||
from app.chain.subscribe import subscribe_interaction_manager
|
||||
from app.command import Command
|
||||
from app.core.config import global_vars, settings
|
||||
from app.core.event import Event, EventManager
|
||||
from app.platform.config import global_vars, settings
|
||||
from app.platform.events import Event, EventManager
|
||||
from app.db import get_async_db
|
||||
from app.db.agentchat_oper import AgentChatOper
|
||||
from app.db.models import User
|
||||
from app.db.models.agentchat import AgentChat
|
||||
from app.db.user_oper import UserOper, get_current_active_user
|
||||
from app.helper.agent import attach_web_agent_edit_queue, detach_web_agent_edit_queue
|
||||
from app.helper.interaction import agent_interaction_manager, media_interaction_manager
|
||||
from app.helper.locale import LocaleHelper
|
||||
from app.log import logger
|
||||
from app.messaging.agent import attach_web_agent_edit_queue, detach_web_agent_edit_queue
|
||||
from app.messaging.interaction import agent_interaction_manager, media_interaction_manager
|
||||
from app.platform.localization import LocaleHelper
|
||||
from app.platform.log import logger
|
||||
from app.schemas.types import EventType, MessageChannel
|
||||
|
||||
router = ResponseAPIRouter()
|
||||
|
||||
@@ -5,8 +5,8 @@ from fastapi import Depends, Query
|
||||
from app import schemas
|
||||
from app.api.response import ResponseAPIRouter
|
||||
from app.chain.anilist import AniListChain
|
||||
from app.core.context import MediaInfo
|
||||
from app.core.security import verify_token
|
||||
from app.domain.context import MediaInfo
|
||||
from app.security.access import verify_token
|
||||
|
||||
router = ResponseAPIRouter()
|
||||
|
||||
|
||||
@@ -16,8 +16,8 @@ from app.api.openai_utils import (
|
||||
build_prompt,
|
||||
build_session_id,
|
||||
)
|
||||
from app.core.config import settings
|
||||
from app.core.security import anthropic_api_key_header
|
||||
from app.platform.config import settings
|
||||
from app.security.access import anthropic_api_key_header
|
||||
from app.schemas.types import MessageChannel
|
||||
|
||||
ANTHROPIC_ERROR_RESPONSES = {
|
||||
|
||||
@@ -5,8 +5,8 @@ from pydantic import BaseModel
|
||||
|
||||
from app import schemas
|
||||
from app.api.response import RAW_RESPONSE_OPENAPI_KEY, ResponseAPIRouter
|
||||
from app.core.auth import build_token_response, consume_plugin_auth_ticket
|
||||
from app.core.plugin import PluginManager
|
||||
from app.security.auth import build_token_response, consume_plugin_auth_ticket
|
||||
from app.extensions.plugin_manager import PluginManager
|
||||
from app.db.models.passkey import PassKey
|
||||
from app.db.models.user import User
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@ from fastapi import Depends
|
||||
from app import schemas
|
||||
from app.api.response import ResponseAPIRouter
|
||||
from app.chain.bangumi import BangumiChain
|
||||
from app.core.context import MediaInfo
|
||||
from app.core.security import verify_token
|
||||
from app.domain.context import MediaInfo
|
||||
from app.security.access import verify_token
|
||||
|
||||
router = ResponseAPIRouter()
|
||||
|
||||
|
||||
@@ -8,14 +8,14 @@ from app import schemas
|
||||
from app.api.response import ResponseAPIRouter
|
||||
from app.chain.dashboard import DashboardChain
|
||||
from app.chain.storage import StorageChain
|
||||
from app.core.config import settings
|
||||
from app.core.security import verify_apitoken
|
||||
from app.platform.config import settings
|
||||
from app.security.access import verify_apitoken
|
||||
from app.db import get_db
|
||||
from app.db.models.transferhistory import TransferHistory
|
||||
from app.db.user_oper import get_current_active_superuser
|
||||
from app.helper.directory import DirectoryHelper
|
||||
from app.services.directory import DirectoryHelper
|
||||
from app.scheduler import Scheduler
|
||||
from app.utils.system import SystemUtils
|
||||
from app.infrastructure.system import SystemUtils
|
||||
|
||||
router = ResponseAPIRouter()
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@ from app.api.response import ResponseAPIRouter
|
||||
from app.chain.bangumi import BangumiChain
|
||||
from app.chain.douban import DoubanChain
|
||||
from app.chain.tmdb import TmdbChain
|
||||
from app.core.event import eventmanager
|
||||
from app.core.security import verify_token
|
||||
from app.platform.events import eventmanager
|
||||
from app.security.access import verify_token
|
||||
from app.schemas import DiscoverSourceEventData
|
||||
from app.schemas.types import ChainEventType, MediaType
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@ from fastapi import Depends
|
||||
from app import schemas
|
||||
from app.api.response import ResponseAPIRouter
|
||||
from app.chain.douban import DoubanChain
|
||||
from app.core.context import MediaInfo
|
||||
from app.core.security import verify_token
|
||||
from app.domain.context import MediaInfo
|
||||
from app.security.access import verify_token
|
||||
from app.schemas import MediaType
|
||||
|
||||
router = ResponseAPIRouter()
|
||||
|
||||
@@ -6,15 +6,15 @@ from app import schemas
|
||||
from app.api.response import ResponseAPIRouter
|
||||
from app.chain.download import DownloadChain
|
||||
from app.chain.media import MediaChain
|
||||
from app.core.context import Context, MediaInfo, MusicInfo, SubtitleInfo, TorrentInfo
|
||||
from app.core.meta import MetaMusic
|
||||
from app.core.metainfo import MetaInfo
|
||||
from app.core.security import verify_token
|
||||
from app.domain.context import Context, MediaInfo, MusicInfo, SubtitleInfo, TorrentInfo
|
||||
from app.domain.meta.metamusic import MetaMusic
|
||||
from app.domain.metainfo import MetaInfo
|
||||
from app.security.access import verify_token
|
||||
from app.db.models.user import User
|
||||
from app.db.site_oper import SiteOper
|
||||
from app.db.systemconfig_oper import SystemConfigOper
|
||||
from app.db.user_oper import get_current_active_user
|
||||
from app.helper.directory import DirectoryHelper
|
||||
from app.services.directory import DirectoryHelper
|
||||
from app.schemas.types import (
|
||||
MUSIC_ENTITY_RECORDING,
|
||||
MediaSource,
|
||||
@@ -22,8 +22,8 @@ from app.schemas.types import (
|
||||
MusicTargetEntityType,
|
||||
SystemConfigKey,
|
||||
)
|
||||
from app.utils.media import is_music_media_source, normalize_music_type
|
||||
from app.utils.security import SecurityUtils
|
||||
from app.domain.media import is_music_media_source, normalize_music_type
|
||||
from app.security.url import SecurityUtils
|
||||
|
||||
router = ResponseAPIRouter()
|
||||
|
||||
|
||||
@@ -9,15 +9,15 @@ from sqlalchemy.orm import Session
|
||||
|
||||
from app import schemas
|
||||
from app.api.response import ResponseAPIRouter
|
||||
from app.agent import ReplyMode, agent_manager
|
||||
from app.agent.orchestrator import ReplyMode, agent_manager
|
||||
from app.agent.prompt.transfer_redo import (
|
||||
build_batch_manual_redo_prompt,
|
||||
build_manual_redo_prompt,
|
||||
)
|
||||
from app.chain.storage import StorageChain
|
||||
from app.core.config import settings, global_vars
|
||||
from app.core.event import eventmanager
|
||||
from app.core.security import verify_token
|
||||
from app.platform.config import settings, global_vars
|
||||
from app.platform.events import eventmanager
|
||||
from app.security.access import verify_token
|
||||
from app.db import get_async_db, get_db
|
||||
from app.db.models import User
|
||||
from app.db.models.downloadhistory import DownloadHistory, DownloadFiles
|
||||
@@ -27,10 +27,10 @@ from app.db.user_oper import (
|
||||
get_current_active_superuser,
|
||||
get_current_active_superuser_async,
|
||||
)
|
||||
from app.helper.progress import ProgressHelper
|
||||
from app.helper.transferhistory import clear_transfer_failures
|
||||
from app.platform.progress import ProgressHelper
|
||||
from app.services.history import clear_transfer_failures
|
||||
from app.schemas.types import EventType
|
||||
from app.utils.jieba import cut as jieba_cut
|
||||
from app.foundation.jieba import cut as jieba_cut
|
||||
|
||||
router = ResponseAPIRouter()
|
||||
|
||||
|
||||
@@ -13,13 +13,13 @@ from app.agent.llm import (
|
||||
LLMTestTimeout,
|
||||
render_auth_result_html,
|
||||
)
|
||||
from app.core.config import settings
|
||||
from app.platform.config import settings
|
||||
from app.db.models import User
|
||||
from app.db.user_oper import (
|
||||
get_current_active_superuser_async,
|
||||
get_current_active_user_async,
|
||||
)
|
||||
from app.log import logger
|
||||
from app.platform.log import logger
|
||||
|
||||
router = ResponseAPIRouter()
|
||||
|
||||
|
||||
@@ -8,11 +8,11 @@ from fastapi.responses import JSONResponse
|
||||
from app import schemas
|
||||
from app.api.response import RAW_RESPONSE_OPENAPI_KEY, ResponseAPIRouter
|
||||
from app.chain.user import MfaRequired, UserChain
|
||||
from app.core import security
|
||||
from app.core.config import settings
|
||||
from app.security import access as security
|
||||
from app.platform.config import settings
|
||||
from app.db.systemconfig_oper import SystemConfigOper
|
||||
from app.helper.sites import SitesHelper # noqa
|
||||
from app.helper.image import WallpaperHelper
|
||||
from app.infrastructure.sites import SitesHelper # noqa
|
||||
from app.services.image import WallpaperHelper
|
||||
from app.schemas.types import SystemConfigKey
|
||||
|
||||
router = ResponseAPIRouter()
|
||||
|
||||
@@ -6,8 +6,8 @@ from fastapi.responses import JSONResponse, Response
|
||||
from app import schemas
|
||||
from app.api.response import RAW_RESPONSE_OPENAPI_KEY, ResponseAPIRouter
|
||||
from app.agent.tools.manager import moviepilot_tool_manager
|
||||
from app.core.security import verify_apikey
|
||||
from app.log import logger
|
||||
from app.security.access import verify_apikey
|
||||
from app.platform.log import logger
|
||||
|
||||
# 导入版本号
|
||||
try:
|
||||
|
||||
@@ -10,17 +10,18 @@ from app.api.response import ResponseAPIRouter
|
||||
from app.chain.media import MediaChain
|
||||
from app.chain.scraping import ScrapingChain
|
||||
from app.chain.tmdb import TmdbChain
|
||||
from app.core.config import settings
|
||||
from app.core.context import Context, MusicInfo
|
||||
from app.core.meta import MetaBase, MetaMusic
|
||||
from app.core.metainfo import MetaInfo, MetaInfoPath
|
||||
from app.core.security import verify_token, verify_apitoken
|
||||
from app.platform.config import settings
|
||||
from app.domain.context import Context, MusicInfo
|
||||
from app.domain.meta.metabase import MetaBase
|
||||
from app.domain.meta.metamusic import MetaMusic
|
||||
from app.domain.metainfo import MetaInfo, MetaInfoPath
|
||||
from app.security.access import verify_token, verify_apitoken
|
||||
from app.db.models import User
|
||||
from app.db.user_oper import get_current_active_user, get_current_active_superuser
|
||||
from app.schemas import MediaType
|
||||
from app.schemas.category import CategoryConfig
|
||||
from app.schemas.types import MUSIC_ENTITY_RECORDING, MediaSource
|
||||
from app.utils.media import (
|
||||
from app.domain.media import (
|
||||
is_music_media_source,
|
||||
normalize_media_source,
|
||||
normalize_music_type,
|
||||
|
||||
@@ -7,17 +7,17 @@ from app import schemas
|
||||
from app.api.response import ResponseAPIRouter
|
||||
from app.chain.download import DownloadChain
|
||||
from app.chain.mediaserver import MediaServerChain
|
||||
from app.core.context import MediaInfo
|
||||
from app.core.metainfo import MetaInfo
|
||||
from app.core.security import verify_token
|
||||
from app.domain.context import MediaInfo
|
||||
from app.domain.metainfo import MetaInfo
|
||||
from app.security.access import verify_token
|
||||
from app.db import get_async_db
|
||||
from app.db.mediaserver_oper import MediaServerOper
|
||||
from app.db.models import MediaServerItem
|
||||
from app.db.systemconfig_oper import SystemConfigOper
|
||||
from app.helper.mediaserver import MediaServerHelper
|
||||
from app.services.mediaserver import MediaServerHelper
|
||||
from app.schemas import MediaType, NotExistMediaInfo
|
||||
from app.schemas.types import MediaSource, SystemConfigKey
|
||||
from app.utils.media import build_media_key, resolve_media_identity
|
||||
from app.domain.media import build_media_key, resolve_media_identity
|
||||
|
||||
router = ResponseAPIRouter()
|
||||
|
||||
|
||||
@@ -10,21 +10,48 @@ from starlette.responses import PlainTextResponse
|
||||
from app import schemas
|
||||
from app.api.response import ResponseAPIRouter
|
||||
from app.chain.message import MessageChain
|
||||
from app.core.config import settings, global_vars
|
||||
from app.core.security import verify_token, verify_apitoken
|
||||
from app.platform.config import settings, global_vars
|
||||
from app.security.access import verify_token, verify_apitoken
|
||||
from app.db import get_async_db
|
||||
from app.db.models import User
|
||||
from app.db.message_oper import MessageOper
|
||||
from app.db.systemconfig_oper import SystemConfigOper
|
||||
from app.db.user_oper import get_current_active_superuser
|
||||
from app.helper.service import ServiceConfigHelper
|
||||
from app.helper.webpush import is_webpush_subscription_gone, webpush_options_for_endpoint
|
||||
from app.log import logger
|
||||
from app.extensions.service_registry import ServiceConfigHelper
|
||||
from app.platform.log import logger
|
||||
from app.modules.wechat.WXBizMsgCrypt3 import WXBizMsgCrypt
|
||||
from app.schemas.types import MessageChannel, SystemConfigKey
|
||||
|
||||
router = ResponseAPIRouter()
|
||||
|
||||
_WNS_DEFAULT_TTL = 86400
|
||||
|
||||
|
||||
def is_webpush_subscription_gone(error: WebPushException) -> bool:
|
||||
"""判断 Web Push 订阅是否已在浏览器或推送服务侧失效。"""
|
||||
response: Any = getattr(error, "response", None)
|
||||
status_code = getattr(response, "status_code", None) or getattr(
|
||||
response,
|
||||
"status",
|
||||
None,
|
||||
)
|
||||
return status_code in {404, 410}
|
||||
|
||||
|
||||
def is_wns_endpoint(endpoint: str | None) -> bool:
|
||||
"""判断是否为 Microsoft WNS 推送端点。"""
|
||||
return bool(endpoint and "notify.windows.com" in endpoint)
|
||||
|
||||
|
||||
def webpush_options_for_endpoint(endpoint: str | None) -> dict[str, Any]:
|
||||
"""返回指定推送端点需要的 pywebpush 附加参数。"""
|
||||
if not is_wns_endpoint(endpoint):
|
||||
return {}
|
||||
return {
|
||||
"ttl": _WNS_DEFAULT_TTL,
|
||||
"headers": {"X-WNS-Cache-Policy": "cache"},
|
||||
}
|
||||
|
||||
|
||||
def _normalize_notification_clear_timestamp(value: Any) -> int:
|
||||
"""
|
||||
|
||||
@@ -7,28 +7,28 @@ import json
|
||||
from datetime import timedelta
|
||||
from typing import Any, Annotated, Optional
|
||||
|
||||
from app.helper.sites import SitesHelper
|
||||
from app.infrastructure.sites import SitesHelper
|
||||
from fastapi import Depends, HTTPException, Body, Request, Response
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from app import schemas
|
||||
from app.api.response import RAW_RESPONSE_OPENAPI_KEY, ResponseAPIRouter
|
||||
from app.core import security
|
||||
from app.core.config import settings
|
||||
from app.security import access as security
|
||||
from app.platform.config import settings
|
||||
from app.db import get_async_db
|
||||
from app.db.models.passkey import PassKey
|
||||
from app.db.models.user import User
|
||||
from app.db.systemconfig_oper import SystemConfigOper
|
||||
from app.db.user_oper import get_current_active_user, get_current_active_user_async
|
||||
from app.helper.passkey import (
|
||||
from app.security.passkey import (
|
||||
PassKeyHelper,
|
||||
PassKeyRegistrationOriginMismatchError,
|
||||
PassKeyRegistrationVerificationError,
|
||||
PasskeyChallengeStore,
|
||||
)
|
||||
from app.log import logger
|
||||
from app.platform.log import logger
|
||||
from app.schemas.types import SystemConfigKey
|
||||
from app.utils.otp import OtpUtils
|
||||
from app.security.otp import OtpUtils
|
||||
|
||||
router = ResponseAPIRouter()
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@ from app.api.response import ResponseAPIRouter
|
||||
from app.chain.media import MediaChain
|
||||
from app.chain.recommend import RecommendChain
|
||||
from app.schemas.types import MediaSource, MediaType
|
||||
from app.core.context import MusicAlbumInfo, MusicArtistInfo, MusicInfo
|
||||
from app.core.security import verify_token
|
||||
from app.domain.context import MusicAlbumInfo, MusicArtistInfo, MusicInfo
|
||||
from app.security.access import verify_token
|
||||
from app.db.models.user import User
|
||||
from app.db.user_oper import get_current_active_superuser_async
|
||||
from app.modules.listenbrainz import (
|
||||
|
||||
@@ -4,7 +4,7 @@ from fastapi import Depends
|
||||
|
||||
from app import schemas
|
||||
from app.api.response import ResponseAPIRouter
|
||||
from app.core.module import ModuleManager
|
||||
from app.extensions.module_manager import ModuleManager
|
||||
from app.db.models import User
|
||||
from app.db.user_oper import get_current_active_superuser
|
||||
from app.modules.wechatclawbot.wechatclawbot import WechatClawBot
|
||||
|
||||
@@ -15,9 +15,10 @@ from app.api.openai_utils import (
|
||||
build_responses_input,
|
||||
build_session_id,
|
||||
)
|
||||
from app.agent import MoviePilotAgent, StreamingHandler
|
||||
from app.core.config import settings
|
||||
from app.core.security import openai_bearer_scheme
|
||||
from app.agent.callback import StreamingHandler
|
||||
from app.agent.orchestrator import MoviePilotAgent
|
||||
from app.platform.config import settings
|
||||
from app.security.access import openai_bearer_scheme
|
||||
from app.schemas.types import MessageChannel
|
||||
|
||||
OPENAI_ERROR_RESPONSES = {
|
||||
|
||||
@@ -13,11 +13,11 @@ from starlette.responses import StreamingResponse
|
||||
from app import schemas
|
||||
from app.api.response import ResponseAPIRouter
|
||||
from app.command import Command
|
||||
from app.core.cache import async_fresh
|
||||
from app.core.config import settings
|
||||
from app.core.event import eventmanager
|
||||
from app.core.plugin import PluginManager
|
||||
from app.core.security import (
|
||||
from app.platform.cache import async_fresh
|
||||
from app.platform.config import settings
|
||||
from app.platform.events import eventmanager
|
||||
from app.extensions.plugin_manager import PluginManager
|
||||
from app.security.access import (
|
||||
resource_token_cookie,
|
||||
verify_apikey,
|
||||
verify_resource_token,
|
||||
@@ -30,9 +30,9 @@ from app.db.user_oper import (
|
||||
get_current_active_superuser_async,
|
||||
)
|
||||
from app.factory import app
|
||||
from app.helper.server import MoviePilotServerHelper
|
||||
from app.helper.plugin import PluginHelper
|
||||
from app.log import logger
|
||||
from app.integrations.server import MoviePilotServerHelper
|
||||
from app.integrations.market import PluginHelper
|
||||
from app.platform.log import logger
|
||||
from app.scheduler import Scheduler
|
||||
from app.schemas.event import PluginDataResetEventData
|
||||
from app.schemas.types import ChainEventType, SystemConfigKey
|
||||
|
||||
@@ -5,8 +5,8 @@ from fastapi import Depends, HTTPException, status
|
||||
from app import schemas
|
||||
from app.api.response import ResponseAPIRouter
|
||||
from app.chain.recommend import RecommendChain
|
||||
from app.core.event import eventmanager
|
||||
from app.core.security import verify_token
|
||||
from app.platform.events import eventmanager
|
||||
from app.security.access import verify_token
|
||||
from app.modules.themoviedb.tmdbv3api.exceptions import TMDbException
|
||||
from app.schemas import RecommendSourceEventData
|
||||
from app.schemas.types import ChainEventType
|
||||
|
||||
@@ -10,12 +10,12 @@ from fastapi.responses import StreamingResponse
|
||||
from app import schemas
|
||||
from app.api.response import ResponseAPIRouter
|
||||
from app.chain.search import SearchChain
|
||||
from app.core.security import verify_resource_token, verify_token
|
||||
from app.helper.locale import LocaleHelper
|
||||
from app.log import logger
|
||||
from app.security.access import verify_resource_token, verify_token
|
||||
from app.platform.localization import LocaleHelper
|
||||
from app.platform.log import logger
|
||||
from app.schemas.types import MediaSource, MediaType
|
||||
from app.utils.media import normalize_music_type, resolve_media_identity
|
||||
from app.utils.security import SecurityUtils
|
||||
from app.domain.media import normalize_music_type, resolve_media_identity
|
||||
from app.security.url import SecurityUtils
|
||||
|
||||
router = ResponseAPIRouter()
|
||||
|
||||
|
||||
@@ -11,9 +11,9 @@ from app.api.endpoints.plugin import register_plugin_api
|
||||
from app.chain.site import SiteChain
|
||||
from app.chain.torrents import TorrentsChain
|
||||
from app.command import Command
|
||||
from app.core.event import eventmanager
|
||||
from app.core.plugin import PluginManager
|
||||
from app.core.security import verify_token
|
||||
from app.platform.events import eventmanager
|
||||
from app.extensions.plugin_manager import PluginManager
|
||||
from app.security.access import verify_token
|
||||
from app.db import get_db, get_async_db
|
||||
from app.db.models import User
|
||||
from app.db.models.site import Site
|
||||
@@ -28,11 +28,11 @@ from app.db.user_oper import (
|
||||
get_current_active_superuser,
|
||||
get_current_active_superuser_async,
|
||||
)
|
||||
from app.helper.sites import SitesHelper # noqa
|
||||
from app.log import logger
|
||||
from app.infrastructure.sites import SitesHelper # noqa
|
||||
from app.platform.log import logger
|
||||
from app.scheduler import Scheduler
|
||||
from app.schemas.types import SystemConfigKey, EventType, MediaType
|
||||
from app.utils.string import StringUtils
|
||||
from app.domain.string import StringUtils
|
||||
|
||||
router = ResponseAPIRouter()
|
||||
|
||||
|
||||
@@ -12,17 +12,17 @@ from app.api.response import ResponseAPIRouter
|
||||
from app.chain.media import MediaChain
|
||||
from app.chain.storage import StorageChain
|
||||
from app.chain.transfer import TransferChain
|
||||
from app.core.config import settings
|
||||
from app.core.security import verify_token
|
||||
from app.platform.config import settings
|
||||
from app.security.access import verify_token
|
||||
from app.db.models import User
|
||||
from app.db.user_oper import (
|
||||
get_current_active_manage_user,
|
||||
get_current_active_superuser,
|
||||
get_current_active_superuser_async,
|
||||
)
|
||||
from app.helper.progress import ProgressHelper
|
||||
from app.platform.progress import ProgressHelper
|
||||
from app.schemas.types import ProgressKey
|
||||
from app.utils.string import StringUtils
|
||||
from app.domain.string import StringUtils
|
||||
|
||||
router = ResponseAPIRouter()
|
||||
|
||||
|
||||
@@ -8,19 +8,19 @@ from sqlalchemy.orm import Session
|
||||
from app import schemas
|
||||
from app.api.response import ResponseAPIRouter
|
||||
from app.chain.subscribe import SubscribeChain
|
||||
from app.core.config import settings
|
||||
from app.core.context import MediaInfo
|
||||
from app.core.event import eventmanager
|
||||
from app.core.metainfo import MetaInfo
|
||||
from app.core.security import verify_token, verify_apitoken
|
||||
from app.platform.config import settings
|
||||
from app.domain.context import MediaInfo
|
||||
from app.platform.events import eventmanager
|
||||
from app.domain.metainfo import MetaInfo
|
||||
from app.security.access import verify_token, verify_apitoken
|
||||
from app.db import get_async_db, get_db
|
||||
from app.db.models.subscribe import Subscribe
|
||||
from app.db.models.subscribehistory import SubscribeHistory
|
||||
from app.db.models.user import User
|
||||
from app.db.systemconfig_oper import SystemConfigOper
|
||||
from app.db.user_oper import get_current_active_user, get_current_active_user_async
|
||||
from app.helper.server import MoviePilotServerHelper
|
||||
from app.log import logger
|
||||
from app.integrations.server import MoviePilotServerHelper
|
||||
from app.platform.log import logger
|
||||
from app.scheduler import Scheduler
|
||||
from app.schemas.event import SubscribeModifiedEventData
|
||||
from app.schemas.types import (
|
||||
@@ -31,7 +31,7 @@ from app.schemas.types import (
|
||||
EventType,
|
||||
SystemConfigKey,
|
||||
)
|
||||
from app.utils.media import normalize_media_source, resolve_media_identity
|
||||
from app.domain.media import normalize_media_source, resolve_media_identity
|
||||
|
||||
router = ResponseAPIRouter()
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ import aiofiles
|
||||
import anyio
|
||||
import pillow_avif # noqa 用于自动注册AVIF支持
|
||||
from anyio import Path as AsyncPath
|
||||
from app.helper.sites import SitesHelper # noqa # noqa
|
||||
from app.infrastructure.sites import SitesHelper # noqa # noqa
|
||||
from fastapi import Body, Depends, HTTPException, Header, Request, Response
|
||||
from fastapi.responses import StreamingResponse
|
||||
|
||||
@@ -23,11 +23,11 @@ from app.chain.media import MediaChain
|
||||
from app.chain.mediaserver import MediaServerChain
|
||||
from app.chain.search import SearchChain
|
||||
from app.chain.system import SystemChain
|
||||
from app.core.config import global_vars, settings
|
||||
from app.core.event import eventmanager
|
||||
from app.core.metainfo import MetaInfo
|
||||
from app.core.module import ModuleManager
|
||||
from app.core.security import verify_apitoken, verify_resource_token, verify_token
|
||||
from app.platform.config import global_vars, settings
|
||||
from app.platform.events import eventmanager
|
||||
from app.domain.metainfo import MetaInfo
|
||||
from app.extensions.module_manager import ModuleManager
|
||||
from app.security.access import verify_apitoken, verify_resource_token, verify_token
|
||||
from app.db.models import User
|
||||
from app.db.systemconfig_oper import SystemConfigOper
|
||||
from app.db.user_oper import (
|
||||
@@ -35,28 +35,28 @@ from app.db.user_oper import (
|
||||
get_current_active_superuser_async,
|
||||
get_current_active_user_async,
|
||||
)
|
||||
from app.helper.image import ImageHelper
|
||||
from app.helper.locale import LocaleHelper
|
||||
from app.helper.market import (
|
||||
from app.services.image import ImageHelper
|
||||
from app.platform.localization import LocaleHelper
|
||||
from app.integrations.market import (
|
||||
PLUGIN_MARKET_WIKI_URL,
|
||||
extract_plugin_market_repos_from_wiki,
|
||||
merge_plugin_market_repos,
|
||||
split_plugin_market_repo_urls,
|
||||
)
|
||||
from app.helper.message import MessageHelper
|
||||
from app.helper.progress import ProgressHelper
|
||||
from app.helper.rule import RuleHelper
|
||||
from app.helper.server import MoviePilotServerHelper
|
||||
from app.helper.system import SystemHelper
|
||||
from app.log import logger
|
||||
from app.messaging.message import MessageHelper
|
||||
from app.platform.progress import ProgressHelper
|
||||
from app.services.filter import RuleHelper
|
||||
from app.integrations.server import MoviePilotServerHelper
|
||||
from app.platform.runtime import SystemHelper
|
||||
from app.platform.log import logger
|
||||
from app.scheduler import Scheduler
|
||||
from app.schemas import ConfigChangeEventData
|
||||
from app.schemas.types import SystemConfigKey, EventType
|
||||
from app.utils.crypto import HashUtils
|
||||
from app.utils.http import RequestUtils, AsyncRequestUtils
|
||||
from app.utils import rust_accel
|
||||
from app.utils.security import SecurityUtils
|
||||
from app.utils.url import UrlUtils
|
||||
from app.foundation.crypto import HashUtils
|
||||
from app.foundation.http import RequestUtils, AsyncRequestUtils
|
||||
from app.infrastructure import rust as rust_accel
|
||||
from app.security.url import SecurityUtils
|
||||
from app.foundation.url import UrlUtils
|
||||
from version import APP_VERSION
|
||||
|
||||
router = ResponseAPIRouter()
|
||||
|
||||
@@ -5,8 +5,8 @@ from fastapi import Depends
|
||||
from app import schemas
|
||||
from app.api.response import ResponseAPIRouter
|
||||
from app.chain.tmdb import TmdbChain
|
||||
from app.core.config import settings
|
||||
from app.core.security import verify_token
|
||||
from app.platform.config import settings
|
||||
from app.security.access import verify_token
|
||||
from app.db.models.user import User
|
||||
from app.db.systemconfig_oper import SystemConfigOper
|
||||
from app.db.user_oper import get_current_active_superuser_async
|
||||
|
||||
@@ -6,10 +6,10 @@ from app import schemas
|
||||
from app.api.response import ResponseAPIRouter
|
||||
from app.chain.media import MediaChain
|
||||
from app.chain.torrents import TorrentsChain
|
||||
from app.core.config import settings
|
||||
from app.core.context import MediaInfo, MusicInfo
|
||||
from app.core.meta import MetaMusic
|
||||
from app.core.metainfo import MetaInfo
|
||||
from app.platform.config import settings
|
||||
from app.domain.context import MediaInfo, MusicInfo
|
||||
from app.domain.meta.metamusic import MetaMusic
|
||||
from app.domain.metainfo import MetaInfo
|
||||
from app.db.models import User
|
||||
from app.db.user_oper import (
|
||||
get_current_active_superuser,
|
||||
@@ -21,8 +21,8 @@ from app.schemas.types import (
|
||||
MediaType,
|
||||
MusicTargetEntityType,
|
||||
)
|
||||
from app.utils.crypto import HashUtils
|
||||
from app.utils.media import (
|
||||
from app.foundation.crypto import HashUtils
|
||||
from app.domain.media import (
|
||||
is_music_media_source,
|
||||
normalize_music_type,
|
||||
resolve_media_identity,
|
||||
|
||||
@@ -8,8 +8,8 @@ from app import schemas
|
||||
from app.api.response import ResponseAPIRouter
|
||||
from app.chain.media import MediaChain
|
||||
from app.chain.transfer import TransferChain
|
||||
from app.core.config import settings, global_vars
|
||||
from app.core.security import verify_token, verify_apitoken
|
||||
from app.platform.config import settings, global_vars
|
||||
from app.security.access import verify_token, verify_apitoken
|
||||
from app.db import get_db
|
||||
from app.db.models import User
|
||||
from app.db.models.transferhistory import TransferHistory
|
||||
@@ -17,8 +17,8 @@ from app.db.user_oper import (
|
||||
get_current_active_manage_user,
|
||||
get_current_active_superuser,
|
||||
)
|
||||
from app.helper.directory import DirectoryHelper
|
||||
from app.log import logger
|
||||
from app.services.directory import DirectoryHelper
|
||||
from app.platform.log import logger
|
||||
from app.schemas import (
|
||||
MediaType,
|
||||
FileItem,
|
||||
|
||||
@@ -7,7 +7,7 @@ from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from app import schemas
|
||||
from app.api.response import ResponseAPIRouter
|
||||
from app.core.security import get_password_hash
|
||||
from app.security.access import get_password_hash
|
||||
from app.db import get_async_db
|
||||
from app.db.models.user import User
|
||||
from app.db.user_oper import (
|
||||
|
||||
@@ -5,7 +5,7 @@ from fastapi import BackgroundTasks, Request, Depends
|
||||
from app import schemas
|
||||
from app.api.response import ResponseAPIRouter
|
||||
from app.chain.webhook import WebhookChain
|
||||
from app.core.security import verify_apitoken
|
||||
from app.security.access import verify_apitoken
|
||||
|
||||
router = ResponseAPIRouter()
|
||||
|
||||
|
||||
@@ -9,8 +9,8 @@ from sqlalchemy.orm import Session
|
||||
from app import schemas
|
||||
from app.api.response import ResponseAPIRouter
|
||||
from app.chain.workflow import WorkflowChain
|
||||
from app.core.config import global_vars
|
||||
from app.core.plugin import PluginManager
|
||||
from app.platform.config import global_vars
|
||||
from app.extensions.plugin_manager import PluginManager
|
||||
from app.workflow import WorkFlowManager
|
||||
from app.db import get_async_db, get_db
|
||||
from app.db.models import Workflow, User
|
||||
@@ -20,7 +20,7 @@ from app.db.user_oper import (
|
||||
get_current_active_manage_user_async,
|
||||
)
|
||||
from app.db.workflow_oper import WorkflowOper
|
||||
from app.helper.server import MoviePilotServerHelper
|
||||
from app.integrations.server import MoviePilotServerHelper
|
||||
from app.scheduler import Scheduler
|
||||
from app.schemas.types import EventType, EVENT_TYPE_NAMES
|
||||
|
||||
|
||||
@@ -9,8 +9,8 @@ from app.api.response import ERROR_RESPONSES
|
||||
from app.chain.media import MediaChain
|
||||
from app.chain.subscribe import SubscribeChain
|
||||
from app.chain.tvdb import TvdbChain
|
||||
from app.core.metainfo import MetaInfo
|
||||
from app.core.security import verify_apikey
|
||||
from app.domain.metainfo import MetaInfo
|
||||
from app.security.access import verify_apikey
|
||||
from app.db import get_db, get_async_db
|
||||
from app.db.models.subscribe import Subscribe
|
||||
from app.schemas import RadarrMovie, SonarrSeries
|
||||
|
||||
@@ -11,9 +11,9 @@ from fastapi.routing import APIRoute
|
||||
|
||||
from app import schemas
|
||||
from app.api.response import ERROR_RESPONSES
|
||||
from app.core.config import settings
|
||||
from app.log import logger
|
||||
from app.utils.crypto import CryptoJsUtils, HashUtils
|
||||
from app.platform.config import settings
|
||||
from app.platform.log import logger
|
||||
from app.foundation.crypto import CryptoJsUtils, HashUtils
|
||||
|
||||
|
||||
class GzipRequest(Request):
|
||||
|
||||
Reference in New Issue
Block a user