api_list_recent_change.go 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package route
  2. import (
  3. "opennamu/route/tool"
  4. )
  5. func Api_list_recent_change(config tool.Config, set_type string, limit string, num string) map[string]any {
  6. db := tool.DB_connect()
  7. defer tool.DB_close(db)
  8. if set_type == "edit" {
  9. set_type = ""
  10. }
  11. limit_int := tool.Str_to_int(limit)
  12. if limit_int > 50 || limit_int < 0 {
  13. limit_int = 50
  14. }
  15. page_int := tool.Str_to_int(num)
  16. if page_int > 0 {
  17. page_int = (page_int * limit_int) - limit_int
  18. } else {
  19. page_int = 0
  20. }
  21. rows := tool.Query_DB(
  22. db,
  23. "select id, title from rc where type = ? order by date desc limit ?, ?",
  24. set_type,
  25. page_int,
  26. limit_int,
  27. )
  28. defer rows.Close()
  29. data_list := [][]string{}
  30. admin_auth := tool.Check_acl(db, "", "", "hidel_auth", config.IP)
  31. ip_parser_temp := map[string][]string{}
  32. for rows.Next() {
  33. var id string
  34. var title string
  35. err := rows.Scan(&id, &title)
  36. if err != nil {
  37. panic(err)
  38. }
  39. date := ""
  40. ip := ""
  41. send := ""
  42. leng := ""
  43. hide := ""
  44. type_data := ""
  45. tool.QueryRow_DB(
  46. db,
  47. "select date, ip, send, leng, hide, type from history where id = ? and title = ?",
  48. []any{ &date, &ip, &send, &leng, &hide, &type_data },
  49. id, title,
  50. )
  51. var ip_pre string
  52. var ip_render string
  53. if _, ok := ip_parser_temp[ip]; ok {
  54. ip_pre = ip_parser_temp[ip][0]
  55. ip_render = ip_parser_temp[ip][1]
  56. } else {
  57. ip_pre = tool.IP_preprocess(db, ip, config.IP)[0]
  58. ip_render = tool.IP_parser(db, ip, config.IP)
  59. ip_parser_temp[ip] = []string{ip_pre, ip_render}
  60. }
  61. if hide == "" || admin_auth {
  62. data_list = append(data_list, []string{
  63. id,
  64. title,
  65. date,
  66. ip_pre,
  67. send,
  68. leng,
  69. hide,
  70. ip_render,
  71. type_data,
  72. })
  73. } else {
  74. data_list = append(data_list, []string{"", "", "", "", "", "", hide, "", ""})
  75. }
  76. }
  77. return_data := make(map[string]any)
  78. return_data["response"] = "ok"
  79. return_data["data"] = data_list
  80. return return_data
  81. }