2
0

api_w.py 4.1 KB

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