feat: 更新下载工具和搜索结果工具的描述,添加可选展示过滤选项参数,优化SKILL.md

This commit is contained in:
PKC278
2026-03-18 16:30:31 +08:00
parent cedb0f565c
commit 4f3eaa12d5
5 changed files with 55 additions and 27 deletions

View File

@@ -17,6 +17,7 @@ class QuerySubscribesInput(BaseModel):
description="Filter subscriptions by status: 'R' for enabled subscriptions, 'S' for paused ones, 'all' for all subscriptions")
media_type: Optional[str] = Field("all",
description="Allowed values: movie, tv, all")
tmdb_id: Optional[int] = Field(None, description="Filter by TMDB ID to check if a specific media is already subscribed")
class QuerySubscribesTool(MoviePilotTool):
@@ -42,19 +43,23 @@ class QuerySubscribesTool(MoviePilotTool):
return " | ".join(parts) if len(parts) > 1 else parts[0]
async def run(self, status: Optional[str] = "all", media_type: Optional[str] = "all", **kwargs) -> str:
logger.info(f"执行工具: {self.name}, 参数: status={status}, media_type={media_type}")
async def run(self, status: Optional[str] = "all", media_type: Optional[str] = "all",
tmdb_id: Optional[int] = None, **kwargs) -> str:
logger.info(f"执行工具: {self.name}, 参数: status={status}, media_type={media_type}, tmdb_id={tmdb_id}")
try:
if media_type not in ["all", "movie", "tv"]:
return f"错误:无效的媒体类型 '{media_type}',支持的类型:'movie', 'tv', 'all'"
media_type_map = {"movie": "电影", "tv": "电视剧"}
subscribe_oper = SubscribeOper()
subscribes = await subscribe_oper.async_list()
filtered_subscribes = []
for sub in subscribes:
if status != "all" and sub.state != status:
continue
if media_type != "all" and sub.type != media_type:
if media_type != "all" and sub.type != media_type_map.get(media_type):
continue
if tmdb_id is not None and sub.tmdbid != tmdb_id:
continue
filtered_subscribes.append(sub)
if filtered_subscribes: