api_recent_edit_request.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. package route
  2. import (
  3. "database/sql"
  4. "encoding/json"
  5. "fmt"
  6. "opennamu/route/tool"
  7. "strconv"
  8. )
  9. func Api_recent_edit_request(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. db := tool.DB_connect(db_set)
  15. if db == nil {
  16. return
  17. }
  18. defer db.Close()
  19. limit_int, err := strconv.Atoi(other_set["limit"])
  20. if err != nil {
  21. return
  22. }
  23. if limit_int > 50 || limit_int < 0 {
  24. limit_int = 50
  25. }
  26. stmt, err := db.Prepare(tool.DB_change(db_set, "select doc_name, doc_rev, set_data from data_set where set_name = 'edit_request_doing' order by set_data desc limit ?"))
  27. if err != nil {
  28. return
  29. }
  30. defer stmt.Close()
  31. rows, err := stmt.Query(limit_int)
  32. if err != nil {
  33. return
  34. }
  35. defer rows.Close()
  36. var doc_name string
  37. var doc_rev string
  38. var date string
  39. var data_list [][]string
  40. for rows.Next() {
  41. err := rows.Scan(&doc_name, &doc_rev, &date)
  42. if err != nil {
  43. return
  44. }
  45. var ip string
  46. var send string
  47. var leng string
  48. stmt, err := db.Prepare(tool.DB_change(db_set, "select set_data from data_set where set_name = 'edit_request_user' and doc_rev = ? and doc_name = ?"))
  49. if err != nil {
  50. return
  51. }
  52. defer stmt.Close()
  53. err = stmt.QueryRow(doc_rev, doc_name).Scan(&ip)
  54. if err != nil {
  55. if err == sql.ErrNoRows {
  56. ip = ""
  57. } else {
  58. return
  59. }
  60. }
  61. stmt, err = db.Prepare(tool.DB_change(db_set, "select set_data from data_set where set_name = 'edit_request_send' and doc_rev = ? and doc_name = ?"))
  62. if err != nil {
  63. return
  64. }
  65. defer stmt.Close()
  66. err = stmt.QueryRow(doc_rev, doc_name).Scan(&send)
  67. if err != nil {
  68. if err == sql.ErrNoRows {
  69. send = ""
  70. } else {
  71. return
  72. }
  73. }
  74. stmt, err = db.Prepare(tool.DB_change(db_set, "select set_data from data_set where set_name = 'edit_request_leng' and doc_rev = ? and doc_name = ?"))
  75. if err != nil {
  76. return
  77. }
  78. defer stmt.Close()
  79. err = stmt.QueryRow(doc_rev, doc_name).Scan(&leng)
  80. if err != nil {
  81. if err == sql.ErrNoRows {
  82. leng = ""
  83. } else {
  84. return
  85. }
  86. }
  87. data_list = append(data_list, []string{
  88. doc_name,
  89. doc_rev,
  90. date,
  91. tool.IP_preprocess(db, db_set, ip, other_set["ip"])[0],
  92. send,
  93. leng,
  94. tool.IP_parser(db, db_set, ip, other_set["ip"]),
  95. })
  96. }
  97. if len(data_list) == 0 {
  98. fmt.Print("{}")
  99. } else {
  100. json_data, _ := json.Marshal(data_list)
  101. fmt.Print(string(json_data))
  102. }
  103. }