view_bbs_main.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. package route
  2. import (
  3. "opennamu/route/tool"
  4. "strconv"
  5. )
  6. func Get_bbs_list_ui(config tool.Config, bbs_all_data []map[string]string, bbs_id_to_name map[string]string) string {
  7. count := 0
  8. data_html := ""
  9. for _, in_data := range bbs_all_data {
  10. count_str := strconv.Itoa(count)
  11. count += 1
  12. bbs_title := in_data["title"]
  13. bbs_id := in_data["set_id"]
  14. bbs_code := in_data["set_code"]
  15. bbs_date := in_data["date"]
  16. bbs_user_id := in_data["user_id_render"]
  17. bbs_comment_length_api := Api_bbs_w_comment(config, "length", bbs_id + "-" + bbs_code)
  18. bbs_comment_length := bbs_comment_length_api["data"].(int)
  19. bbs_comment_length_str := strconv.Itoa(bbs_comment_length)
  20. bbs_view_count := "0"
  21. if _, ok := in_data["view_count"]; ok {
  22. bbs_view_count = in_data["view_count"]
  23. }
  24. bbs_name := ""
  25. if len(bbs_id_to_name) != 0 {
  26. bbs_name = bbs_id_to_name[bbs_id]
  27. }
  28. left := ""
  29. left += `<a href="/bbs/w/` + bbs_id + `/` + bbs_code + `">` + tool.HTML_escape(bbs_title) + `</a>`
  30. if bbs_name != "" {
  31. left += ` <a href="/bbs/in/` + bbs_id + `">(` + bbs_name + `)</a>`
  32. }
  33. left += ` [` + bbs_comment_length_str + `]`
  34. right := ""
  35. right += `<span id="opennamu_bbs_comment_` + count_str + `"></span>`
  36. right += bbs_view_count + " | "
  37. right += bbs_user_id + " | "
  38. right += bbs_date
  39. data_html += tool.Get_list_ui(left, right, "", "")
  40. }
  41. return data_html
  42. }
  43. func View_bbs_main(config tool.Config, page string) string {
  44. db := tool.DB_connect()
  45. defer tool.DB_close(db)
  46. bbs_list_api_data := Api_bbs_list(config)
  47. bbs_id_to_name := map[string]string{}
  48. data_html := "<ul>"
  49. for _, in_data := range bbs_list_api_data["data"].([][]string) {
  50. bbs_name := in_data[0]
  51. bbs_id := in_data[1]
  52. bbs_type := in_data[2]
  53. bbs_date := in_data[3]
  54. bbs_id_to_name[bbs_id] = bbs_name
  55. data_html += "<li>"
  56. data_html += "<a href=\"/bbs/in/" + tool.Url_parser(bbs_id) + "\">"
  57. data_html += tool.HTML_escape(bbs_name)
  58. data_html += "</a>"
  59. if bbs_type == "comment" {
  60. data_html += " (" + tool.Get_language(db, "comment_base", false) + ")"
  61. } else {
  62. data_html += " (" + tool.Get_language(db, "thread_base", false) + ")"
  63. }
  64. if bbs_date != "" {
  65. data_html += " (" + bbs_date + ")"
  66. }
  67. data_html += "</li>"
  68. }
  69. data_html += "</ul><hr class=\"main_hr\">"
  70. bbs_api_data := Api_bbs(config, "", page)
  71. data_html += Get_bbs_list_ui(config, bbs_api_data["data"].([]map[string]string), bbs_id_to_name)
  72. out := tool.Get_template(
  73. db,
  74. config,
  75. tool.Get_language(db, "bbs_main", true),
  76. data_html,
  77. []any{},
  78. [][]any{
  79. { "other", tool.Get_language(db, "other_tool", false) },
  80. { "bbs/make", tool.Get_language(db, "add", false) },
  81. },
  82. map[string]string{},
  83. )
  84. return out
  85. }