MCPcopy
hub / github.com/fish2018/pansou / SearchHandler

Function SearchHandler

api/handler.go:26–207  ·  view source on GitHub ↗

SearchHandler 搜索处理函数

(c *gin.Context)

Source from the content-addressed store, hash-verified

24
25// SearchHandler 搜索处理函数
26func SearchHandler(c *gin.Context) {
27 var req model.SearchRequest
28 var err error
29
30 // 根据请求方法不同处理参数
31 if c.Request.Method == http.MethodGet {
32 // GET方式:从URL参数获取
33 // 获取keyword,必填参数
34 keyword := c.Query("kw")
35
36 // 处理channels参数,支持逗号分隔
37 channelsStr := c.Query("channels")
38 var channels []string
39 // 只有当参数非空时才处理
40 if channelsStr != "" && channelsStr != " " {
41 parts := strings.Split(channelsStr, ",")
42 for _, part := range parts {
43 trimmed := strings.TrimSpace(part)
44 if trimmed != "" {
45 channels = append(channels, trimmed)
46 }
47 }
48 }
49
50 // 处理并发数
51 concurrency := 0
52 concStr := c.Query("conc")
53 if concStr != "" && concStr != " " {
54 concurrency = util.StringToInt(concStr)
55 }
56
57 // 处理强制刷新
58 forceRefresh := false
59 refreshStr := c.Query("refresh")
60 if refreshStr != "" && refreshStr != " " && refreshStr == "true" {
61 forceRefresh = true
62 }
63
64 // 处理结果类型和来源类型
65 resultType := c.Query("res")
66 if resultType == "" || resultType == " " {
67 resultType = "merge" // 直接设置为默认值merge
68 }
69
70 sourceType := c.Query("src")
71 if sourceType == "" || sourceType == " " {
72 sourceType = "all" // 直接设置为默认值all
73 }
74
75 // 处理plugins参数,支持逗号分隔
76 var plugins []string
77 // 检查请求中是否存在plugins参数
78 if c.Request.URL.Query().Has("plugins") {
79 pluginsStr := c.Query("plugins")
80 // 判断参数是否非空
81 if pluginsStr != "" && pluginsStr != " " {
82 parts := strings.Split(pluginsStr, ",")
83 for _, part := range parts {

Callers

nothing calls this directly

Calls 5

StringToIntFunction · 0.92
NewErrorResponseFunction · 0.92
NewSuccessResponseFunction · 0.92
SearchMethod · 0.65
HasMethod · 0.45

Tested by

no test coverage detected