feat: 新增 YouTube/Bilibili/XHS 搜索 CLI 命令 + 修复 B站搜索
- cli.py: 新增 search-youtube / search-bilibili / search-xhs 子命令 - core.py: 新增 search_youtube / search_bilibili / search_xhs 方法 - bilibili.py: 搜索策略改为 yt-dlp → Exa fallback(服务器 IP 被 B站 412) - 本地机器走 yt-dlp bilisearch(有 title/uploader) - 服务器自动 fallback 到 Exa site:bilibili.com - 修复 mcporter 输出解析(Title:/URL: 格式) 测试结果: 15/15 全通(8 read + 7 search)
This commit is contained in:
@@ -83,6 +83,24 @@ class AgentReach:
|
||||
results = await ch.search(query, config=self.config, limit=limit)
|
||||
return [r.to_dict() for r in results]
|
||||
|
||||
async def search_youtube(self, query: str, limit: int = 5) -> List[Dict[str, Any]]:
|
||||
"""Search YouTube via yt-dlp."""
|
||||
ch = get_channel("youtube")
|
||||
results = await ch.search(query, config=self.config, limit=limit)
|
||||
return [r.to_dict() for r in results]
|
||||
|
||||
async def search_bilibili(self, query: str, limit: int = 5) -> List[Dict[str, Any]]:
|
||||
"""Search Bilibili. Tries yt-dlp first, falls back to Exa."""
|
||||
ch = get_channel("bilibili")
|
||||
results = await ch.search(query, config=self.config, limit=limit)
|
||||
return [r.to_dict() for r in results]
|
||||
|
||||
async def search_xhs(self, query: str, limit: int = 10) -> List[Dict[str, Any]]:
|
||||
"""Search XiaoHongShu via mcporter."""
|
||||
ch = get_channel("xiaohongshu")
|
||||
results = await ch.search(query, config=self.config, limit=limit)
|
||||
return [r.to_dict() for r in results]
|
||||
|
||||
# ── Health ──────────────────────────────────────────
|
||||
|
||||
def doctor(self) -> Dict[str, dict]:
|
||||
|
||||
Reference in New Issue
Block a user