Files
xiaohongshu-mcp/types.go
haikow 66aa36b48c feat: add like and favorite functionality for feeds (#207)
* feat: add like and favorite functionality for feeds

- Implemented handleLikeFeed and handleFavoriteFeed methods in mcp_handlers.go to manage liking and favoriting feeds.
- Added LikeFavoriteArgs struct in mcp_server.go for handling parameters.
- Registered new MCP tools for liking and favoriting feeds in registerTools function.
- Introduced LikeFeed and FavoriteFeed methods in XiaohongshuService to interact with the respective actions.
- Created LikeFavoriteAction in a new file to encapsulate the logic for liking and favoriting feeds on the Xiaohongshu platform.

* "Fix-build-errors"

* refactor: streamline like and favorite actions in LikeFavoriteAction

- Introduced a generic method `performInteractAction` to handle both liking and favoriting feeds, reducing code duplication.
- Updated logging to reflect the action type being performed (like or favorite).
- Enhanced state verification after interaction to ensure accurate feedback on success or failure.
- Removed the `clickLastMatch` function, simplifying the interaction logic.

* "Add-unlike-and-unfavorite-functionality"

* "Refactor-performInteractAction-function"

* "Refactor-split-LikeFavoriteAction-into-separate-actions"

---------

Co-authored-by: chekayo <9827969+chekayo@user.noreply.gitee.com>
2025-10-08 11:40:45 +08:00

73 lines
1.9 KiB
Go

package main
// HTTP API 响应类型
// ErrorResponse 错误响应
type ErrorResponse struct {
Error string `json:"error"`
Code string `json:"code"`
Details any `json:"details,omitempty"`
}
// SuccessResponse 成功响应
type SuccessResponse struct {
Success bool `json:"success"`
Data any `json:"data"`
Message string `json:"message,omitempty"`
}
// MCP 相关类型(用于内部转换)
// MCPToolResult MCP 工具结果(内部使用)
type MCPToolResult struct {
Content []MCPContent `json:"content"`
IsError bool `json:"isError,omitempty"`
}
// MCPContent MCP 内容(内部使用)
type MCPContent struct {
Type string `json:"type"`
Text string `json:"text"`
MimeType string `json:"mimeType"`
Data string `json:"data"`
}
// FeedDetailRequest Feed详情请求
type FeedDetailRequest struct {
FeedID string `json:"feed_id" binding:"required"`
XsecToken string `json:"xsec_token" binding:"required"`
}
// FeedDetailResponse Feed详情响应
type FeedDetailResponse struct {
FeedID string `json:"feed_id"`
Data any `json:"data"`
}
// PostCommentRequest 发表评论请求
type PostCommentRequest struct {
FeedID string `json:"feed_id" binding:"required"`
XsecToken string `json:"xsec_token" binding:"required"`
Content string `json:"content" binding:"required"`
}
// PostCommentResponse 发表评论响应
type PostCommentResponse struct {
FeedID string `json:"feed_id"`
Success bool `json:"success"`
Message string `json:"message"`
}
// UserProfileRequest 用户主页请求
type UserProfileRequest struct {
UserID string `json:"user_id" binding:"required"`
XsecToken string `json:"xsec_token" binding:"required"`
}
// ActionResult 通用动作响应(点赞/收藏等)
type ActionResult struct {
FeedID string `json:"feed_id"`
Success bool `json:"success"`
Message string `json:"message"`
}