Merge pull request #2821 from InfinityPacer/feature/module

This commit is contained in:
jxxghp
2024-10-09 06:43:35 +08:00
committed by GitHub
3 changed files with 16 additions and 9 deletions
+5 -5
View File
@@ -1,6 +1,6 @@
from typing import Any, List from typing import Any, List
from fastapi import APIRouter, Depends from fastapi import APIRouter, Depends, Body
from app import schemas from app import schemas
from app.chain.download import DownloadChain from app.chain.download import DownloadChain
@@ -28,8 +28,8 @@ def list(
def download( def download(
media_in: schemas.MediaInfo, media_in: schemas.MediaInfo,
torrent_in: schemas.TorrentInfo, torrent_in: schemas.TorrentInfo,
downloader: str = None, downloader: str = Body(None),
save_path: str = None, save_path: str = Body(None),
current_user: User = Depends(get_current_active_user)) -> Any: current_user: User = Depends(get_current_active_user)) -> Any:
""" """
添加下载任务(含媒体信息) 添加下载任务(含媒体信息)
@@ -60,8 +60,8 @@ def download(
@router.post("/add", summary="添加下载(不含媒体信息)", response_model=schemas.Response) @router.post("/add", summary="添加下载(不含媒体信息)", response_model=schemas.Response)
def add( def add(
torrent_in: schemas.TorrentInfo, torrent_in: schemas.TorrentInfo,
downloader: str = None, downloader: str = Body(None),
save_path: str = None, save_path: str = Body(None),
current_user: User = Depends(get_current_active_user)) -> Any: current_user: User = Depends(get_current_active_user)) -> Any:
""" """
添加下载任务(不含媒体信息) 添加下载任务(不含媒体信息)
+2 -1
View File
@@ -354,7 +354,8 @@ class DownloadChain(ChainBase):
self.eventmanager.send_event(EventType.DownloadAdded, { self.eventmanager.send_event(EventType.DownloadAdded, {
"hash": _hash, "hash": _hash,
"context": context, "context": context,
"username": username "username": username,
"downloader": _downloader
}) })
else: else:
# 下载失败 # 下载失败
+9 -3
View File
@@ -67,17 +67,23 @@ class ServiceBaseHelper(Generic[TConf]):
) )
yield service_info yield service_info
def get_services(self, type_filter: Optional[str] = None) -> Dict[str, ServiceInfo]: def get_services(self, type_filter: Optional[str] = None, name_filters: Optional[List[str]] = None) \
-> Dict[str, ServiceInfo]:
""" """
获取服务信息列表,并根据类型过滤 获取服务信息列表,并根据类型和名称列表进行过滤
:param type_filter: 需要过滤的服务类型 :param type_filter: 需要过滤的服务类型
:param name_filters: 需要过滤的服务名称列表
:return: 过滤后的服务信息字典 :return: 过滤后的服务信息字典
""" """
name_filters_set = set(name_filters) if name_filters else None
return { return {
service_info.name: service_info service_info.name: service_info
for service_info in self.iterate_module_instances() for service_info in self.iterate_module_instances()
if service_info.config and (type_filter is None or service_info.type == type_filter) 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)
} }
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]: