api_w.py 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. from .tool.func import *
  2. def api_w_2(conn, name):
  3. curs = conn.cursor()
  4. data_arg_v = flask.request.args.get('v', '')
  5. if flask.request.method == 'POST':
  6. print(data_arg_v)
  7. if data_arg_v == '' or data_arg_v == 'preview':
  8. data_org = flask.request.form.get('data', '')
  9. data_pas = render_set(
  10. doc_name = name,
  11. doc_data = data_org,
  12. data_type = 'api_view'
  13. )
  14. return flask.jsonify({
  15. "data" : data_pas[0],
  16. "js_data" : data_pas[1]
  17. })
  18. elif data_arg_v == 'include':
  19. name_org = flask.request.args.get('name_org', '')
  20. name_org = name if name_org == '' else name_org
  21. include_data = flask.request.args.get('include', '')
  22. try:
  23. include_list = json.loads(flask.request.form.get('include_list', ''))
  24. except:
  25. include_list = []
  26. curs.execute(db_change("select data from data where title = ?"), [name])
  27. sql_data = curs.fetchall()
  28. if not sql_data:
  29. return flask.jsonify({})
  30. else:
  31. json_data = sql_data[0][0]
  32. get_all_change_1 = []
  33. find_replace_moment = re.findall(r'(@([^=@]+)=([^=@]+)@|@([^=@]+)@)', json_data)
  34. for i in find_replace_moment:
  35. if i[1] != '':
  36. get_all_change_1 += [['@' + i[1] + '@', i[2]]]
  37. json_data = json_data.replace(i[0], '@' + i[1] + '@', 1)
  38. else:
  39. json_data = json_data.replace(i[0], '@' + i[3] + '@', 1)
  40. get_all_change_2 = include_list + get_all_change_1
  41. print(get_all_change_2)
  42. for i in get_all_change_2:
  43. json_data = json_data.replace('@' + i[0] + '@', i[1])
  44. data_pas = render_set(
  45. doc_name = name_org,
  46. doc_data = json_data,
  47. data_type = 'api_view',
  48. data_in = include_data
  49. )
  50. return flask.jsonify({
  51. "data" : data_pas[0],
  52. "js_data" : data_pas[1]
  53. })
  54. elif data_arg_v == 'exist':
  55. try:
  56. title_list = json.loads(flask.request.form.get('title_list', ''))
  57. title_list = list(set(title_list))
  58. except:
  59. title_list = []
  60. data_exist = {}
  61. for i in title_list:
  62. curs.execute(db_change("select title from data where title = ?"), [i])
  63. if curs.fetchall():
  64. data_exist[i] = '1'
  65. return flask.jsonify(data_exist)
  66. else:
  67. return flask.jsonify({})
  68. else:
  69. data_arg_exist = flask.request.args.get('exist', '')
  70. if data_arg_v == 'exist' or data_arg_exist != '':
  71. curs.execute(db_change("select title from data where title = ?"), [name])
  72. if curs.fetchall():
  73. return flask.jsonify({ "exist" : "1" })
  74. else:
  75. return flask.jsonify({})
  76. else:
  77. data_arg_include = flask.request.args.get('include', '')
  78. if acl_check(name, 'render') == 1:
  79. return flask.jsonify({})
  80. else:
  81. data_arg_rev = flask.request.args.get('num', '')
  82. if data_arg_rev != '':
  83. curs.execute(db_change("select data from history where title = ? and id = ?"), [name, rev])
  84. else:
  85. curs.execute(db_change("select data from data where title = ?"), [name])
  86. sql_data = curs.fetchall()
  87. if not sql_data:
  88. return flask.jsonify({})
  89. else:
  90. data_pas = render_set(
  91. doc_name = name,
  92. doc_data = sql_data[0][0],
  93. data_type = 'api_view'
  94. )
  95. return flask.jsonify({
  96. "data" : data_pas[0],
  97. "js_data" : data_pas[1]
  98. })