api_search.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. package route
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "strconv"
  6. "opennamu/route/tool"
  7. )
  8. func Api_search(call_arg []string) {
  9. db_set := map[string]string{}
  10. json.Unmarshal([]byte(call_arg[0]), &db_set)
  11. other_set := map[string]string{}
  12. json.Unmarshal([]byte(call_arg[1]), &other_set)
  13. page, _ := strconv.Atoi(other_set["num"])
  14. num := 0
  15. if page*50 > 0 {
  16. num = page*50 - 50
  17. }
  18. db := tool.DB_connect(db_set)
  19. if db == nil {
  20. return
  21. }
  22. defer db.Close()
  23. if other_set["search_type"] == "title" {
  24. stmt, err := db.Prepare(tool.DB_change(db_set, "select title from data where title collate nocase like ? order by title limit ?, 50"))
  25. if err != nil {
  26. return
  27. }
  28. defer stmt.Close()
  29. var title string
  30. var title_list []string
  31. rows, err := stmt.Query("%"+other_set["name"]+"%", num)
  32. if err != nil {
  33. return
  34. }
  35. defer rows.Close()
  36. for rows.Next() {
  37. err := rows.Scan(&title)
  38. if err != nil {
  39. return
  40. }
  41. title_list = append(title_list, title)
  42. }
  43. if len(title_list) == 0 {
  44. fmt.Print("{}")
  45. } else {
  46. json_data, _ := json.Marshal(title_list)
  47. fmt.Print(string(json_data))
  48. }
  49. } else {
  50. stmt, err := db.Prepare(tool.DB_change(db_set, "select title from data where data collate nocase like ? order by title limit ?, 50"))
  51. if err != nil {
  52. return
  53. }
  54. defer stmt.Close()
  55. var title string
  56. var title_list []string
  57. rows, err := stmt.Query("%"+other_set["name"]+"%", num)
  58. if err != nil {
  59. return
  60. }
  61. defer rows.Close()
  62. for rows.Next() {
  63. err := rows.Scan(&title)
  64. if err != nil {
  65. return
  66. }
  67. title_list = append(title_list, title)
  68. }
  69. if len(title_list) == 0 {
  70. fmt.Print("{}")
  71. } else {
  72. json_data, _ := json.Marshal(title_list)
  73. fmt.Print(string(json_data))
  74. }
  75. }
  76. }