mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-03-20 03:57:30 +08:00
fix agent tools
This commit is contained in:
@@ -38,6 +38,12 @@ class MoviePilotTool(BaseTool, metaclass=ABCMeta):
|
||||
agent_message = await self._callback_handler.get_message()
|
||||
if agent_message:
|
||||
await self.send_tool_message(agent_message)
|
||||
# 发送执行工具说明
|
||||
explanation = kwargs.get("explanation")
|
||||
if explanation:
|
||||
if not explanation.startswith("正在"):
|
||||
explanation = "正在" + explanation
|
||||
await self.send_tool_message(f"{explanation} ...")
|
||||
return await self.run(**kwargs)
|
||||
|
||||
@abstractmethod
|
||||
|
||||
@@ -37,14 +37,9 @@ class AddDownloadTool(MoviePilotTool):
|
||||
logger.info(
|
||||
f"执行工具: {self.name}, 参数: torrent_title={torrent_title}, torrent_url={torrent_url}, downloader={downloader}, save_path={save_path}, labels={labels}")
|
||||
|
||||
# 发送工具执行说明
|
||||
await self.send_tool_message(f"正在添加下载任务: {torrent_title}", title="添加下载")
|
||||
|
||||
try:
|
||||
if not torrent_title or not torrent_url:
|
||||
error_message = "错误:必须提供种子标题和下载链接"
|
||||
await self.send_tool_message(error_message, title="下载失败")
|
||||
return error_message
|
||||
return "错误:必须提供种子标题和下载链接"
|
||||
|
||||
# 使用DownloadChain添加下载
|
||||
download_chain = DownloadChain()
|
||||
@@ -67,15 +62,9 @@ class AddDownloadTool(MoviePilotTool):
|
||||
label=labels
|
||||
)
|
||||
if did:
|
||||
success_message = f"成功添加下载任务:{torrent_title}"
|
||||
await self.send_tool_message(success_message, title="下载成功")
|
||||
return success_message
|
||||
return f"成功添加下载任务:{torrent_title}"
|
||||
else:
|
||||
error_message = "添加下载任务失败"
|
||||
await self.send_tool_message(error_message, title="下载失败")
|
||||
return error_message
|
||||
return "添加下载任务失败"
|
||||
except Exception as e:
|
||||
error_message = f"添加下载任务时发生错误: {str(e)}"
|
||||
logger.error(f"添加下载任务失败: {e}", exc_info=True)
|
||||
await self.send_tool_message(error_message, title="下载失败")
|
||||
return error_message
|
||||
return f"添加下载任务时发生错误: {str(e)}"
|
||||
|
||||
@@ -33,9 +33,6 @@ class AddSubscribeTool(MoviePilotTool):
|
||||
logger.info(
|
||||
f"执行工具: {self.name}, 参数: title={title}, year={year}, media_type={media_type}, season={season}, tmdb_id={tmdb_id}")
|
||||
|
||||
# 发送工具执行说明
|
||||
await self.send_tool_message(f"正在添加订阅: {title} ({year}) - {media_type}", title="添加订阅")
|
||||
|
||||
try:
|
||||
subscribe_chain = SubscribeChain()
|
||||
# 转换 tmdb_id 为整数
|
||||
@@ -55,15 +52,9 @@ class AddSubscribeTool(MoviePilotTool):
|
||||
username=self._user_id
|
||||
)
|
||||
if sid:
|
||||
success_message = f"成功添加订阅:{title} ({year})"
|
||||
await self.send_tool_message(success_message, title="订阅成功")
|
||||
return success_message
|
||||
return f"成功添加订阅:{title} ({year})"
|
||||
else:
|
||||
error_message = f"添加订阅失败:{message}"
|
||||
await self.send_tool_message(error_message, title="订阅失败")
|
||||
return error_message
|
||||
return f"添加订阅失败:{message}"
|
||||
except Exception as e:
|
||||
error_message = f"添加订阅时发生错误: {str(e)}"
|
||||
logger.error(f"添加订阅失败: {e}", exc_info=True)
|
||||
await self.send_tool_message(error_message, title="订阅失败")
|
||||
return error_message
|
||||
return f"添加订阅时发生错误: {str(e)}"
|
||||
|
||||
@@ -30,6 +30,11 @@ 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":
|
||||
|
||||
@@ -32,9 +32,6 @@ class SearchMediaTool(MoviePilotTool):
|
||||
logger.info(
|
||||
f"执行工具: {self.name}, 参数: title={title}, year={year}, media_type={media_type}, season={season}")
|
||||
|
||||
# 发送工具执行说明
|
||||
await self.send_tool_message(f"正在搜索媒体资源: {title}" + (f" ({year})" if year else ""), title="搜索中")
|
||||
|
||||
try:
|
||||
media_chain = MediaChain()
|
||||
# 构建搜索标题
|
||||
|
||||
@@ -36,9 +36,6 @@ class SearchTorrentsTool(MoviePilotTool):
|
||||
logger.info(
|
||||
f"执行工具: {self.name}, 参数: title={title}, year={year}, media_type={media_type}, season={season}, sites={sites}")
|
||||
|
||||
# 发送工具执行说明
|
||||
await self.send_tool_message(f"正在搜索种子资源: {title}" + (f" ({year})" if year else ""), title="搜索种子")
|
||||
|
||||
try:
|
||||
search_chain = SearchChain()
|
||||
torrents = search_chain.search_by_title(title=title, sites=sites)
|
||||
|
||||
@@ -25,7 +25,7 @@ class SendMessageTool(MoviePilotTool):
|
||||
logger.info(f"执行工具: {self.name}, 参数: message={message}, message_type={message_type}")
|
||||
try:
|
||||
await self.send_tool_message(message, title=message_type)
|
||||
return "消息已发送。"
|
||||
return "消息已发送"
|
||||
except Exception as e:
|
||||
logger.error(f"发送消息失败: {e}")
|
||||
return f"发送消息时发生错误: {str(e)}"
|
||||
|
||||
Reference in New Issue
Block a user