2
0

api_func_search.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package route
  2. import (
  3. "opennamu/route/tool"
  4. )
  5. func Api_func_search(config tool.Config, keyword string, num_str string, search_type string) map[string]any {
  6. db := tool.DB_connect()
  7. defer tool.DB_close(db)
  8. page := tool.Str_to_int(num_str)
  9. num := 0
  10. if page * 50 > 0 {
  11. num = page * 50 - 50
  12. }
  13. name := keyword
  14. query := ""
  15. if search_type == "title" {
  16. name = tool.Do_remove_spaces(name)
  17. query = "select title from data where replace(title, ' ', '') collate nocase like ? order by title limit ?, 50"
  18. } else {
  19. query = "select title from data where data collate nocase like ? order by title limit ?, 50"
  20. }
  21. title_list := []string{}
  22. rows := tool.Query_DB(
  23. db,
  24. query,
  25. "%" + name + "%", num,
  26. )
  27. defer rows.Close()
  28. for rows.Next() {
  29. var title string
  30. err := rows.Scan(&title)
  31. if err != nil {
  32. panic(err)
  33. }
  34. title_list = append(title_list, title)
  35. }
  36. return_data := make(map[string]any)
  37. return_data["response"] = "ok"
  38. return_data["data"] = title_list
  39. return return_data
  40. }