api_skin_info.py 2.4 KB

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