api_list_history.go 2.4 KB

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