api_search.go 1.8 KB

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