2
0

api_user_rankup.go 2.1 KB

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