api_w.py 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  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. data_in = 'preview'
  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. for i in get_all_change_2:
  42. json_data = json_data.replace('@' + i[0] + '@', i[1])
  43. data_pas = render_set(
  44. doc_name = name_org,
  45. doc_data = json_data,
  46. data_type = 'api_view',
  47. data_in = include_data
  48. )
  49. return flask.jsonify({
  50. "data" : data_pas[0],
  51. "js_data" : data_pas[1]
  52. })
  53. elif data_arg_v == 'exist':
  54. try:
  55. title_list = json.loads(flask.request.form.get('title_list', ''))
  56. title_list = list(set(title_list))
  57. except:
  58. title_list = []
  59. data_exist = {}
  60. for i in title_list:
  61. curs.execute(db_change("select title from data where title = ?"), [i])
  62. if curs.fetchall():
  63. data_exist[i] = '1'
  64. return flask.jsonify(data_exist)
  65. else:
  66. return flask.jsonify({})
  67. else:
  68. data_arg_exist = flask.request.args.get('exist', '')
  69. if data_arg_v == 'exist' or data_arg_exist != '':
  70. curs.execute(db_change("select title from data where title = ?"), [name])
  71. if curs.fetchall():
  72. return flask.jsonify({ "exist" : "1" })
  73. else:
  74. return flask.jsonify({})
  75. else:
  76. data_arg_include = flask.request.args.get('include', '')
  77. if acl_check(name, 'render') == 1:
  78. return flask.jsonify({})
  79. else:
  80. data_arg_rev = flask.request.args.get('num', '')
  81. if data_arg_rev != '':
  82. curs.execute(db_change("select data from history where title = ? and id = ?"), [name, rev])
  83. else:
  84. curs.execute(db_change("select data from data where title = ?"), [name])
  85. sql_data = curs.fetchall()
  86. if not sql_data:
  87. return flask.jsonify({})
  88. else:
  89. data_pas = render_set(
  90. doc_name = name,
  91. doc_data = sql_data[0][0],
  92. data_type = 'api_view'
  93. )
  94. return flask.jsonify({
  95. "data" : data_pas[0],
  96. "js_data" : data_pas[1]
  97. })