api_user_rankup.go 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package route
  2. import (
  3. "opennamu/route/tool"
  4. "strings"
  5. )
  6. func User_rankup_condition(data string) string {
  7. can_set := map[string]string{
  8. "edit": "int",
  9. "time": "int",
  10. }
  11. if val, ok := can_set[data]; ok {
  12. return val
  13. } else {
  14. return ""
  15. }
  16. }
  17. func Api_user_rankup(config tool.Config) string {
  18. db := tool.DB_connect()
  19. defer tool.DB_close(db)
  20. other_set := map[string]string{}
  21. json.Unmarshal([]byte(config.Other_set), &other_set)
  22. ip := config.IP
  23. if !tool.IP_or_user(ip) {
  24. coverage := ""
  25. if val, ok := other_set["rankup_name"]; ok {
  26. coverage = val
  27. }
  28. return_data_api := tool.Get_setting(db, "rankup_condition", coverage)
  29. end_data := make(map[string]any)
  30. if len(return_data_api) != 0 {
  31. for k := range return_data_api {
  32. rank_name := string(return_data_api[k][0])
  33. rank_data := string(return_data_api[k][1])
  34. split_data := strings.Split(rank_data, " ")
  35. if len(split_data) == 2 {
  36. type_data := User_rankup_condition(split_data[0])
  37. if type_data != "" {
  38. if _, ok := end_data[rank_name]; !ok {
  39. end_data[rank_name] = make(map[string]any)
  40. }
  41. if type_data == "int" {
  42. split_int := tool.Str_to_int(split_data[1])
  43. end_data[rank_name].(map[string]int)[split_data[0]] = split_int
  44. } else {
  45. end_data[rank_name].(map[string]string)[split_data[0]] = split_data[1]
  46. }
  47. }
  48. }
  49. }
  50. }
  51. json_data_end, _ := json.Marshal(end_data)
  52. return string(json_data_end)
  53. } else {
  54. return_data := make(map[string]any)
  55. return_data["response"] = "require auth"
  56. return_data["language"] = map[string]string{
  57. "authority_error": tool.Get_language(db, "authority_error", false),
  58. }
  59. json_data, _ := json.Marshal(return_data)
  60. return string(json_data)
  61. }
  62. }