diff --git a/app/agent/tools/impl/get_recommendations.py b/app/agent/tools/impl/get_recommendations.py index 0707d18d..300b08ba 100644 --- a/app/agent/tools/impl/get_recommendations.py +++ b/app/agent/tools/impl/get_recommendations.py @@ -50,11 +50,6 @@ class GetRecommendationsTool(MoviePilotTool): media_type: Optional[str] = "all", limit: Optional[int] = 20, **kwargs) -> str: logger.info(f"执行工具: {self.name}, 参数: source={source}, media_type={media_type}, limit={limit}") try: - name_dicts = { - "tmdb_trending": "TMDB 热门推荐", - "douban_hot": "豆瓣热门推荐", - "bangumi_calendar": "番组计划推荐" - } recommend_chain = RecommendChain() results = [] if source == "tmdb_trending": diff --git a/app/agent/tools/impl/query_transfer_history.py b/app/agent/tools/impl/query_transfer_history.py index 006d7c64..baf964bb 100644 --- a/app/agent/tools/impl/query_transfer_history.py +++ b/app/agent/tools/impl/query_transfer_history.py @@ -5,7 +5,6 @@ from typing import Optional, Type import jieba from pydantic import BaseModel, Field -from sqlalchemy.ext.asyncio import AsyncSession from app.agent.tools.base import MoviePilotTool from app.db import AsyncSessionFactory @@ -17,7 +16,8 @@ class QueryTransferHistoryInput(BaseModel): """查询整理历史记录工具的输入参数模型""" explanation: str = Field(..., description="Clear explanation of why this tool is being used in the current context") title: Optional[str] = Field(None, description="Search by title (optional, supports partial match)") - status: Optional[str] = Field("all", description="Filter by status: 'success' for successful transfers, 'failed' for failed transfers, 'all' for all records (default: 'all')") + status: Optional[str] = Field("all", + description="Filter by status: 'success' for successful transfers, 'failed' for failed transfers, 'all' for all records (default: 'all')") page: Optional[int] = Field(1, description="Page number for pagination (default: 1, each page contains 30 records)") @@ -31,9 +31,9 @@ class QueryTransferHistoryTool(MoviePilotTool): title = kwargs.get("title") status = kwargs.get("status", "all") page = kwargs.get("page", 1) - + parts = ["正在查询整理历史"] - + if title: parts.append(f"标题: {title}") if status != "all": @@ -41,7 +41,7 @@ class QueryTransferHistoryTool(MoviePilotTool): parts.append(f"状态: {status_map.get(status, status)}") if page > 1: parts.append(f"第{page}页") - + return " | ".join(parts) if len(parts) > 1 else parts[0] async def run(self, title: Optional[str] = None, @@ -56,14 +56,14 @@ class QueryTransferHistoryTool(MoviePilotTool): status_bool = True elif status == "failed": status_bool = False - + # 处理页码参数 if page is None or page < 1: page = 1 - + # 每页记录数 count = 30 - + # 获取数据库会话 async with AsyncSessionFactory() as db: # 处理标题搜索 @@ -84,10 +84,10 @@ class QueryTransferHistoryTool(MoviePilotTool): db, page=page, count=count, status=status_bool ) total = await TransferHistory.async_count(db, status=status_bool) - + if not result: return "未找到相关整理历史记录" - + # 转换为字典格式,只保留关键信息 simplified_records = [] for record in result: @@ -118,17 +118,16 @@ class QueryTransferHistoryTool(MoviePilotTool): if record.doubanid: simplified["doubanid"] = record.doubanid simplified_records.append(simplified) - + result_json = json.dumps(simplified_records, ensure_ascii=False, indent=2) - + # 计算总页数 total_pages = (total + count - 1) // count if total > 0 else 1 - + # 构建分页信息 pagination_info = f"第 {page}/{total_pages} 页,共 {total} 条记录(每页 {count} 条)" - + return f"{pagination_info}\n\n{result_json}" except Exception as e: logger.error(f"查询整理历史记录失败: {e}", exc_info=True) return f"查询整理历史记录时发生错误: {str(e)}" - diff --git a/version.py b/version.py index c5ab9732..6c859fc6 100644 --- a/version.py +++ b/version.py @@ -1,2 +1,2 @@ -APP_VERSION = 'v2.8.2' -FRONTEND_VERSION = 'v2.8.2' +APP_VERSION = 'v2.8.3' +FRONTEND_VERSION = 'v2.8.3'