api_user_rankup.go 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package route
  2. import (
  3. "opennamu/route/tool"
  4. "strconv"
  5. "strings"
  6. jsoniter "github.com/json-iterator/go"
  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. var json = jsoniter.ConfigCompatibleWithStandardLibrary
  21. other_set := map[string]string{}
  22. json.Unmarshal([]byte(call_arg[0]), &other_set)
  23. db := tool.DB_connect()
  24. defer db.Close()
  25. ip := other_set["ip"]
  26. if !tool.IP_or_user(ip) {
  27. coverage := ""
  28. if val, ok := other_set["rankup_name"]; ok {
  29. coverage = val
  30. }
  31. return_data_api := tool.Get_setting(db, "rankup_condition", coverage)
  32. end_data := make(map[string]interface{})
  33. if len(return_data_api) != 0 {
  34. for k := range return_data_api {
  35. rank_name := string(return_data_api[k][0])
  36. rank_data := string(return_data_api[k][1])
  37. split_data := strings.Split(rank_data, " ")
  38. if len(split_data) == 2 {
  39. type_data := User_rankup_condition(split_data[0])
  40. if type_data != "" {
  41. if _, ok := end_data[rank_name]; !ok {
  42. end_data[rank_name] = make(map[string]interface{})
  43. }
  44. if type_data == "int" {
  45. split_int, err := strconv.Atoi(split_data[1])
  46. if err == nil {
  47. end_data[rank_name].(map[string]int)[split_data[0]] = split_int
  48. }
  49. } else {
  50. end_data[rank_name].(map[string]string)[split_data[0]] = split_data[1]
  51. }
  52. }
  53. }
  54. }
  55. }
  56. json_data_end, _ := json.Marshal(end_data)
  57. return string(json_data_end)
  58. } else {
  59. return_data := make(map[string]interface{})
  60. return_data["response"] = "require auth"
  61. return_data["language"] = map[string]string{
  62. "authority_error": tool.Get_language(db, "authority_error", false),
  63. }
  64. json_data, _ := json.Marshal(return_data)
  65. return string(json_data)
  66. }
  67. }