mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-06 16:07:01 +08:00
Merge pull request #2821 from InfinityPacer/feature/module
This commit is contained in:
@@ -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:
|
||||||
"""
|
"""
|
||||||
添加下载任务(不含媒体信息)
|
添加下载任务(不含媒体信息)
|
||||||
|
|||||||
@@ -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:
|
||||||
# 下载失败
|
# 下载失败
|
||||||
|
|||||||
@@ -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]:
|
||||||
|
|||||||
Reference in New Issue
Block a user