Skip to content

Commit

Permalink
fix 按对象名称组织代码文件
Browse files Browse the repository at this point in the history
  • Loading branch information
jxxghp committed Oct 12, 2024
1 parent 603ab97 commit 0d13985
Show file tree
Hide file tree
Showing 23 changed files with 71 additions and 94 deletions.
1 change: 0 additions & 1 deletion app/api/endpoints/history.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import json
from typing import List, Any

from fastapi import APIRouter, Depends
Expand Down
1 change: 0 additions & 1 deletion app/api/endpoints/login.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import json
from datetime import timedelta
from typing import Any, List

Expand Down
2 changes: 1 addition & 1 deletion app/api/endpoints/message.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
from app.db.models import User
from app.db.models.message import Message
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.modules.wechat.WXBizMsgCrypt3 import WXBizMsgCrypt
from app.schemas.types import MessageChannel
Expand Down
1 change: 0 additions & 1 deletion app/api/endpoints/transfer.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import json
from pathlib import Path
from typing import Any, Optional

Expand Down
2 changes: 1 addition & 1 deletion app/chain/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
from app.db.message_oper import MessageOper
from app.db.user_oper import UserOper
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.schemas import TransferInfo, TransferTorrent, ExistMediaInfo, DownloadingTorrent, CommingMessage, Notification, \
WebhookEventInfo, TmdbEpisode, MediaPerson, FileItem
Expand Down
3 changes: 1 addition & 2 deletions app/chain/mediaserver.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import json
import threading
from typing import List, Union, Optional, Generator

from app import schemas
from app.chain import ChainBase
from app.db.mediaserver_oper import MediaServerOper
from app.helper.serviceconfig import ServiceConfigHelper
from app.helper.service import ServiceConfigHelper
from app.log import logger

lock = threading.Lock()
Expand Down
1 change: 0 additions & 1 deletion app/chain/message.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import copy
import json
import re
from typing import Any, Optional, Dict, Union

Expand Down
1 change: 0 additions & 1 deletion app/db/mediaserver_oper.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import json
from typing import Optional

from sqlalchemy.orm import Session
Expand Down
2 changes: 0 additions & 2 deletions app/db/plugindata_oper.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
import json
from typing import Any

from app.db import DbOper
from app.db.models.plugindata import PluginData
from app.utils.object import ObjectUtils


class PluginDataOper(DbOper):
Expand Down
1 change: 0 additions & 1 deletion app/db/site_oper.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import json
from datetime import datetime
from typing import Tuple, List

Expand Down
2 changes: 0 additions & 2 deletions app/db/systemconfig_oper.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
import json
from typing import Any, Union

from app.db import DbOper
from app.db.models.systemconfig import SystemConfig
from app.schemas.types import SystemConfigKey
from app.utils.object import ObjectUtils
from app.utils.singleton import Singleton


Expand Down
1 change: 0 additions & 1 deletion app/db/transferhistory_oper.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import json
import time
from typing import Any, List

Expand Down
1 change: 0 additions & 1 deletion app/db/user_oper.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import json
from typing import Optional

from fastapi import Depends, HTTPException
Expand Down
2 changes: 0 additions & 2 deletions app/db/userconfig_oper.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
import json
from typing import Any, Union, Dict, Optional

from app.db import DbOper
from app.db.models.userconfig import UserConfig
from app.schemas.types import UserConfigKey
from app.utils.object import ObjectUtils
from app.utils.singleton import Singleton


Expand Down
2 changes: 1 addition & 1 deletion app/helper/downloader.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
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.types import SystemConfigKey, ModuleType

Expand Down
2 changes: 1 addition & 1 deletion app/helper/mediaserver.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
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.types import SystemConfigKey, ModuleType

Expand Down
2 changes: 1 addition & 1 deletion app/helper/notification.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
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.types import SystemConfigKey, ModuleType

Expand Down
68 changes: 64 additions & 4 deletions app/helper/servicebase.py → app/helper/service.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,73 @@
from typing import Dict, List, Optional, Type, TypeVar, Generic, Iterator

from app.core.module import ModuleManager
from app.helper.serviceconfig import ServiceConfigHelper
from app.schemas import ServiceInfo
from app.schemas.types import SystemConfigKey, ModuleType
from app.db.systemconfig_oper import SystemConfigOper
from app.schemas import DownloaderConf, MediaServerConf, NotificationConf, NotificationSwitchConf, ServiceInfo
from app.schemas.types import NotificationType, SystemConfigKey, ModuleType

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]):
"""
通用服务帮助类,抽象获取配置和服务实例的通用逻辑
Expand Down Expand Up @@ -84,7 +144,7 @@ def get_services(self, type_filter: Optional[str] = None, name_filters: Optional
if service_info.config and (
type_filter is None or service_info.type == type_filter
) 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]:
Expand Down
65 changes: 0 additions & 65 deletions app/helper/serviceconfig.py

This file was deleted.

2 changes: 1 addition & 1 deletion app/modules/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from abc import abstractmethod, ABCMeta
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.types import ModuleType

Expand Down
1 change: 0 additions & 1 deletion app/modules/slack/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
import re
from typing import Optional, Union, List, Tuple, Any

from app.core.config import settings
from app.core.context import MediaInfo, Context
from app.log import logger
from app.modules import _ModuleBase, _MessageBase
Expand Down
1 change: 0 additions & 1 deletion app/modules/telegram/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import json
from typing import Optional, Union, List, Tuple, Any, Dict

from app.core.config import settings
from app.core.context import MediaInfo, Context
from app.log import logger
from app.modules import _ModuleBase, _MessageBase
Expand Down
1 change: 0 additions & 1 deletion app/modules/vocechat/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import json
from typing import Optional, Union, List, Tuple, Any, Dict

from app.core.config import settings
from app.core.context import Context, MediaInfo
from app.log import logger
from app.modules import _ModuleBase, _MessageBase
Expand Down

0 comments on commit 0d13985

Please sign in to comment.