fix 按对象名称组织代码文件

This commit is contained in:
jxxghp
2024-10-12 12:14:49 +08:00
parent 603ab97665
commit 0d139851af
23 changed files with 71 additions and 94 deletions
-1
View File
@@ -1,4 +1,3 @@
import json
from typing import List, Any from typing import List, Any
from fastapi import APIRouter, Depends from fastapi import APIRouter, Depends
-1
View File
@@ -1,4 +1,3 @@
import json
from datetime import timedelta from datetime import timedelta
from typing import Any, List from typing import Any, List
+1 -1
View File
@@ -14,7 +14,7 @@ from app.db import get_db
from app.db.models import User from app.db.models import User
from app.db.models.message import Message from app.db.models.message import Message
from app.db.user_oper import get_current_active_superuser from app.db.user_oper import get_current_active_superuser
from app.helper.serviceconfig import ServiceConfigHelper from app.helper.service import ServiceConfigHelper
from app.log import logger from app.log import logger
from app.modules.wechat.WXBizMsgCrypt3 import WXBizMsgCrypt from app.modules.wechat.WXBizMsgCrypt3 import WXBizMsgCrypt
from app.schemas.types import MessageChannel from app.schemas.types import MessageChannel
-1
View File
@@ -1,4 +1,3 @@
import json
from pathlib import Path from pathlib import Path
from typing import Any, Optional from typing import Any, Optional
+1 -1
View File
@@ -17,7 +17,7 @@ from app.core.module import ModuleManager
from app.db.message_oper import MessageOper from app.db.message_oper import MessageOper
from app.db.user_oper import UserOper from app.db.user_oper import UserOper
from app.helper.message import MessageHelper from app.helper.message import MessageHelper
from app.helper.serviceconfig import ServiceConfigHelper from app.helper.service import ServiceConfigHelper
from app.log import logger from app.log import logger
from app.schemas import TransferInfo, TransferTorrent, ExistMediaInfo, DownloadingTorrent, CommingMessage, Notification, \ from app.schemas import TransferInfo, TransferTorrent, ExistMediaInfo, DownloadingTorrent, CommingMessage, Notification, \
WebhookEventInfo, TmdbEpisode, MediaPerson, FileItem WebhookEventInfo, TmdbEpisode, MediaPerson, FileItem
+1 -2
View File
@@ -1,11 +1,10 @@
import json
import threading import threading
from typing import List, Union, Optional, Generator from typing import List, Union, Optional, Generator
from app import schemas from app import schemas
from app.chain import ChainBase from app.chain import ChainBase
from app.db.mediaserver_oper import MediaServerOper from app.db.mediaserver_oper import MediaServerOper
from app.helper.serviceconfig import ServiceConfigHelper from app.helper.service import ServiceConfigHelper
from app.log import logger from app.log import logger
lock = threading.Lock() lock = threading.Lock()
-1
View File
@@ -1,5 +1,4 @@
import copy import copy
import json
import re import re
from typing import Any, Optional, Dict, Union from typing import Any, Optional, Dict, Union
-1
View File
@@ -1,4 +1,3 @@
import json
from typing import Optional from typing import Optional
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
-2
View File
@@ -1,9 +1,7 @@
import json
from typing import Any from typing import Any
from app.db import DbOper from app.db import DbOper
from app.db.models.plugindata import PluginData from app.db.models.plugindata import PluginData
from app.utils.object import ObjectUtils
class PluginDataOper(DbOper): class PluginDataOper(DbOper):
-1
View File
@@ -1,4 +1,3 @@
import json
from datetime import datetime from datetime import datetime
from typing import Tuple, List from typing import Tuple, List
-2
View File
@@ -1,10 +1,8 @@
import json
from typing import Any, Union from typing import Any, Union
from app.db import DbOper from app.db import DbOper
from app.db.models.systemconfig import SystemConfig from app.db.models.systemconfig import SystemConfig
from app.schemas.types import SystemConfigKey from app.schemas.types import SystemConfigKey
from app.utils.object import ObjectUtils
from app.utils.singleton import Singleton from app.utils.singleton import Singleton
-1
View File
@@ -1,4 +1,3 @@
import json
import time import time
from typing import Any, List from typing import Any, List
-1
View File
@@ -1,4 +1,3 @@
import json
from typing import Optional from typing import Optional
from fastapi import Depends, HTTPException from fastapi import Depends, HTTPException
-2
View File
@@ -1,10 +1,8 @@
import json
from typing import Any, Union, Dict, Optional from typing import Any, Union, Dict, Optional
from app.db import DbOper from app.db import DbOper
from app.db.models.userconfig import UserConfig from app.db.models.userconfig import UserConfig
from app.schemas.types import UserConfigKey from app.schemas.types import UserConfigKey
from app.utils.object import ObjectUtils
from app.utils.singleton import Singleton from app.utils.singleton import Singleton
+1 -1
View File
@@ -1,6 +1,6 @@
from typing import Optional from typing import Optional
from app.helper.servicebase import ServiceBaseHelper from app.helper.service import ServiceBaseHelper
from app.schemas import DownloaderConf, ServiceInfo from app.schemas import DownloaderConf, ServiceInfo
from app.schemas.types import SystemConfigKey, ModuleType from app.schemas.types import SystemConfigKey, ModuleType
+1 -1
View File
@@ -1,6 +1,6 @@
from typing import Optional from typing import Optional
from app.helper.servicebase import ServiceBaseHelper from app.helper.service import ServiceBaseHelper
from app.schemas import MediaServerConf, ServiceInfo from app.schemas import MediaServerConf, ServiceInfo
from app.schemas.types import SystemConfigKey, ModuleType from app.schemas.types import SystemConfigKey, ModuleType
+1 -1
View File
@@ -1,6 +1,6 @@
from typing import Optional from typing import Optional
from app.helper.servicebase import ServiceBaseHelper from app.helper.service import ServiceBaseHelper
from app.schemas import NotificationConf, ServiceInfo from app.schemas import NotificationConf, ServiceInfo
from app.schemas.types import SystemConfigKey, ModuleType from app.schemas.types import SystemConfigKey, ModuleType
@@ -1,13 +1,73 @@
from typing import Dict, List, Optional, Type, TypeVar, Generic, Iterator from typing import Dict, List, Optional, Type, TypeVar, Generic, Iterator
from app.core.module import ModuleManager from app.core.module import ModuleManager
from app.helper.serviceconfig import ServiceConfigHelper from app.db.systemconfig_oper import SystemConfigOper
from app.schemas import ServiceInfo from app.schemas import DownloaderConf, MediaServerConf, NotificationConf, NotificationSwitchConf, ServiceInfo
from app.schemas.types import SystemConfigKey, ModuleType from app.schemas.types import NotificationType, SystemConfigKey, ModuleType
TConf = TypeVar("TConf") TConf = TypeVar("TConf")
class ServiceConfigHelper:
"""
配置帮助类获取不同类型的服务配置
"""
@staticmethod
def get_configs(config_key: SystemConfigKey, conf_type: Type) -> List:
"""
通用获取配置的方法根据 config_key 获取相应的配置并返回指定类型的配置列表
:param config_key: 系统配置的 key
:param conf_type: 用于实例化配置对象的类类型
:return: 配置对象列表
"""
config_data = SystemConfigOper().get(config_key)
if not config_data:
return []
# 直接使用 conf_type 来实例化配置对象
return [conf_type(**conf) for conf in config_data]
@staticmethod
def get_downloader_configs() -> List[DownloaderConf]:
"""
获取下载器的配置
"""
return ServiceConfigHelper.get_configs(SystemConfigKey.Downloaders, DownloaderConf)
@staticmethod
def get_mediaserver_configs() -> List[MediaServerConf]:
"""
获取媒体服务器的配置
"""
return ServiceConfigHelper.get_configs(SystemConfigKey.MediaServers, MediaServerConf)
@staticmethod
def get_notification_configs() -> List[NotificationConf]:
"""
获取消息通知渠道的配置
"""
return ServiceConfigHelper.get_configs(SystemConfigKey.Notifications, NotificationConf)
@staticmethod
def get_notification_switches() -> List[NotificationSwitchConf]:
"""
获取消息通知场景的开关
"""
return ServiceConfigHelper.get_configs(SystemConfigKey.NotificationSwitchs, NotificationSwitchConf)
@staticmethod
def get_notification_switch(mtype: NotificationType) -> Optional[str]:
"""
获取指定类型的消息通知场景的开关
"""
switchs = ServiceConfigHelper.get_notification_switches()
for switch in switchs:
if switch.type == mtype.value:
return switch.action
return None
class ServiceBaseHelper(Generic[TConf]): class ServiceBaseHelper(Generic[TConf]):
""" """
通用服务帮助类抽象获取配置和服务实例的通用逻辑 通用服务帮助类抽象获取配置和服务实例的通用逻辑
@@ -84,7 +144,7 @@ class ServiceBaseHelper(Generic[TConf]):
if service_info.config and ( if service_info.config and (
type_filter is None or service_info.type == type_filter type_filter is None or service_info.type == type_filter
) and ( ) and (
name_filters_set is None or service_info.name in name_filters_set) name_filters_set is None or service_info.name in name_filters_set)
} }
def get_service(self, name: str, type_filter: Optional[str] = None) -> Optional[ServiceInfo]: def get_service(self, name: str, type_filter: Optional[str] = None) -> Optional[ServiceInfo]:
-65
View File
@@ -1,65 +0,0 @@
from typing import List, Type, Optional
from app.db.systemconfig_oper import SystemConfigOper
from app.schemas import DownloaderConf, MediaServerConf, NotificationConf, NotificationSwitchConf
from app.schemas.types import SystemConfigKey, NotificationType
class ServiceConfigHelper:
"""
配置帮助类,获取不同类型的服务配置
"""
@staticmethod
def get_configs(config_key: SystemConfigKey, conf_type: Type) -> List:
"""
通用获取配置的方法,根据 config_key 获取相应的配置并返回指定类型的配置列表
:param config_key: 系统配置的 key
:param conf_type: 用于实例化配置对象的类类型
:return: 配置对象列表
"""
config_data = SystemConfigOper().get(config_key)
if not config_data:
return []
# 直接使用 conf_type 来实例化配置对象
return [conf_type(**conf) for conf in config_data]
@staticmethod
def get_downloader_configs() -> List[DownloaderConf]:
"""
获取下载器的配置
"""
return ServiceConfigHelper.get_configs(SystemConfigKey.Downloaders, DownloaderConf)
@staticmethod
def get_mediaserver_configs() -> List[MediaServerConf]:
"""
获取媒体服务器的配置
"""
return ServiceConfigHelper.get_configs(SystemConfigKey.MediaServers, MediaServerConf)
@staticmethod
def get_notification_configs() -> List[NotificationConf]:
"""
获取消息通知渠道的配置
"""
return ServiceConfigHelper.get_configs(SystemConfigKey.Notifications, NotificationConf)
@staticmethod
def get_notification_switches() -> List[NotificationSwitchConf]:
"""
获取消息通知场景的开关
"""
return ServiceConfigHelper.get_configs(SystemConfigKey.NotificationSwitchs, NotificationSwitchConf)
@staticmethod
def get_notification_switch(mtype: NotificationType) -> Optional[str]:
"""
获取指定类型的消息通知场景的开关
"""
switchs = ServiceConfigHelper.get_notification_switches()
for switch in switchs:
if switch.type == mtype.value:
return switch.action
return None
+1 -1
View File
@@ -1,7 +1,7 @@
from abc import abstractmethod, ABCMeta from abc import abstractmethod, ABCMeta
from typing import Generic, Tuple, Union, TypeVar, Type, Dict, Optional, Callable, Any from typing import Generic, Tuple, Union, TypeVar, Type, Dict, Optional, Callable, Any
from app.helper.serviceconfig import ServiceConfigHelper from app.helper.service import ServiceConfigHelper
from app.schemas import Notification, MessageChannel, NotificationConf, MediaServerConf, DownloaderConf from app.schemas import Notification, MessageChannel, NotificationConf, MediaServerConf, DownloaderConf
from app.schemas.types import ModuleType from app.schemas.types import ModuleType
-1
View File
@@ -2,7 +2,6 @@ import json
import re import re
from typing import Optional, Union, List, Tuple, Any from typing import Optional, Union, List, Tuple, Any
from app.core.config import settings
from app.core.context import MediaInfo, Context from app.core.context import MediaInfo, Context
from app.log import logger from app.log import logger
from app.modules import _ModuleBase, _MessageBase from app.modules import _ModuleBase, _MessageBase
-1
View File
@@ -1,7 +1,6 @@
import json import json
from typing import Optional, Union, List, Tuple, Any, Dict from typing import Optional, Union, List, Tuple, Any, Dict
from app.core.config import settings
from app.core.context import MediaInfo, Context from app.core.context import MediaInfo, Context
from app.log import logger from app.log import logger
from app.modules import _ModuleBase, _MessageBase from app.modules import _ModuleBase, _MessageBase
-1
View File
@@ -1,7 +1,6 @@
import json import json
from typing import Optional, Union, List, Tuple, Any, Dict from typing import Optional, Union, List, Tuple, Any, Dict
from app.core.config import settings
from app.core.context import Context, MediaInfo from app.core.context import Context, MediaInfo
from app.log import logger from app.log import logger
from app.modules import _ModuleBase, _MessageBase from app.modules import _ModuleBase, _MessageBase