feat: 添加搜索功能 (#16)
- 新增 SearchFeeds 服务方法,支持关键词搜索小红书内容 - 添加 search_feeds MCP 工具,提供搜索接口 - 新增 /api/v1/feeds/search API 端点 - 实现搜索页面的浏览器自动化操作 - 优化 MCP 协议支持,处理 notifications/initialized 和 notifications/cancelled 通知 - 更新文档,添加搜索功能说明和使用示例 - 重构类型定义,优化数据结构 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -13,8 +13,8 @@ type FeedsListAction struct {
|
||||
page *rod.Page
|
||||
}
|
||||
|
||||
// InitialState 定义页面初始状态结构
|
||||
type InitialState struct {
|
||||
// FeedsResult 定义页面初始状态结构
|
||||
type FeedsResult struct {
|
||||
Feed FeedData `json:"feed"`
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ func NewFeedsListAction(page *rod.Page) *FeedsListAction {
|
||||
pp := page.Timeout(60 * time.Second)
|
||||
|
||||
pp.MustNavigate("https://www.xiaohongshu.com")
|
||||
pp.MustWaitLoad()
|
||||
pp.MustWaitStable()
|
||||
pp.MustWait(`() => window.__INITIAL_STATE__ !== undefined`)
|
||||
|
||||
return &FeedsListAction{page: pp}
|
||||
@@ -45,7 +45,7 @@ func (f *FeedsListAction) GetFeedsList(ctx context.Context) ([]Feed, error) {
|
||||
}
|
||||
|
||||
// 解析完整的 InitialState
|
||||
var state InitialState
|
||||
var state FeedsResult
|
||||
if err := json.Unmarshal([]byte(result), &state); err != nil {
|
||||
return nil, fmt.Errorf("failed to unmarshal __INITIAL_STATE__: %w", err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user