api_bbs_list.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package route
  2. import (
  3. "database/sql"
  4. "encoding/json"
  5. "log"
  6. "opennamu/route/tool"
  7. )
  8. func bbs_list(db *sql.DB) map[string]string {
  9. rows, err := db.Query(tool.DB_change("select set_data, set_id from bbs_set where set_name = 'bbs_name'"))
  10. if err != nil {
  11. log.Fatal(err)
  12. }
  13. defer rows.Close()
  14. data_list := map[string]string{}
  15. for rows.Next() {
  16. var name string
  17. var id string
  18. err := rows.Scan(&name, &id)
  19. if err != nil {
  20. log.Fatal(err)
  21. }
  22. data_list[name] = id
  23. }
  24. return data_list
  25. }
  26. func Api_bbs_list(call_arg []string) string {
  27. db := tool.DB_connect()
  28. defer db.Close()
  29. data_list := bbs_list(db)
  30. data_list_sub := map[string][]string{}
  31. for k, v := range data_list {
  32. stmt, err := db.Prepare(tool.DB_change("select set_data from bbs_set where set_name = 'bbs_type' and set_id = ?"))
  33. if err != nil {
  34. log.Fatal(err)
  35. }
  36. defer stmt.Close()
  37. var bbs_type string
  38. err = stmt.QueryRow(v).Scan(&bbs_type)
  39. if err != nil {
  40. if err == sql.ErrNoRows {
  41. bbs_type = ""
  42. } else {
  43. log.Fatal(err)
  44. }
  45. }
  46. stmt, err = db.Prepare(tool.DB_change("select set_data from bbs_data where set_id = ? and set_name = 'date' order by set_code + 0 desc limit 1"))
  47. if err != nil {
  48. log.Fatal(err)
  49. }
  50. defer stmt.Close()
  51. var bbs_date string
  52. err = stmt.QueryRow(v).Scan(&bbs_date)
  53. if err != nil {
  54. if err == sql.ErrNoRows {
  55. bbs_date = ""
  56. } else {
  57. log.Fatal(err)
  58. }
  59. }
  60. data_list_sub[k] = []string{v, bbs_type, bbs_date}
  61. }
  62. return_data := make(map[string]interface{})
  63. return_data["language"] = map[string]string{
  64. "thread_base": tool.Get_language(db, "thread_base", false),
  65. "comment_base": tool.Get_language(db, "comment_base", false),
  66. }
  67. return_data["data"] = data_list_sub
  68. json_data, _ := json.Marshal(return_data)
  69. return string(json_data)
  70. }