2
0

api_skin_info.py 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. from .tool.func import *
  2. def api_skin_info_2(conn, name):
  3. curs = conn.cursor()
  4. if name == '':
  5. name = skin_check()
  6. else:
  7. name = './views/' + name + '/index.html'
  8. if not flask.request.args.get('all', None):
  9. json_address = re.sub(r"(((?!\.|\/).)+)\.html$", "info.json", name)
  10. try:
  11. json_data = json.loads(open(json_address, encoding='utf8').read())
  12. except:
  13. json_data = None
  14. if json_data:
  15. return flask.jsonify(json_data)
  16. else:
  17. return flask.jsonify({}), 404
  18. else:
  19. a_data = {}
  20. d_link_data = {
  21. "ACME" : "https://raw.githubusercontent.com/openNAMU/openNAMU-Skin-ACME/master/info.json",
  22. "Liberty" : "https://raw.githubusercontent.com/openNAMU/openNAMU-Skin-Liberty/master/info.json",
  23. "Before Namu" : "https://raw.githubusercontent.com/openNAMU/openNAMU-Skin-Before_Namu/master/info.json"
  24. }
  25. for i in load_skin(skin_check(1), 1):
  26. json_address = re.sub(r"(((?!\.|\/).)+)\.html$", "info.json", './views/' + i + '/index.html')
  27. try:
  28. json_data = json.loads(open(json_address, encoding='utf8').read())
  29. except:
  30. json_data = None
  31. if json_data:
  32. if i == skin_check(1):
  33. json_data = {**json_data, **{ "main" : "true" }}
  34. if "info_link" in json_data:
  35. info_link = json_data["info_link"]
  36. get_num = 1
  37. elif json_data["name"] in d_link_data:
  38. info_link = d_link_data[json_data["name"]]
  39. get_num = 1
  40. else:
  41. get_num = 0
  42. if get_num == 1:
  43. try:
  44. get_data = urllib.request.urlopen(info_link)
  45. except:
  46. get_data = None
  47. if get_data and get_data.getcode() == 200:
  48. try:
  49. get_data = json.loads(get_data.read().decode())
  50. if "skin_ver" in get_data:
  51. json_data = {**json_data, **{ "lastest_version" : {
  52. "skin_ver" : json_data["skin_ver"]
  53. }}}
  54. except:
  55. pass
  56. a_data = {**a_data, **{ i : json_data }}
  57. return flask.jsonify(a_data)