api_w.py 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. from .tool.func import *
  2. def api_w_2(conn, name):
  3. curs = conn.cursor()
  4. data_arg_exist = flask.request.args.get('exist', '')
  5. if data_arg_exist != '':
  6. curs.execute(db_change("select title from data where title = ?"), [name])
  7. if curs.fetchall():
  8. return flask.jsonify({ "exist" : "1" })
  9. else:
  10. if acl_check(name, 'render') != 1:
  11. if flask.request.method == 'POST':
  12. data_org = flask.request.form.get('data', '')
  13. data_pas = render_set(
  14. doc_name = name,
  15. doc_data = data_org,
  16. data_type = 'api_view'
  17. )
  18. return flask.jsonify({
  19. "data" : data_pas[0],
  20. "js_data" : data_pas[1]
  21. })
  22. else:
  23. data_arg_rev = flask.request.args.get('num', '')
  24. if data_arg_rev != '':
  25. curs.execute(db_change("select data from history where title = ? and id = ?"), [name, rev])
  26. else:
  27. curs.execute(db_change("select data from data where title = ?"), [name])
  28. data = curs.fetchall()
  29. if data:
  30. name_org = flask.request.args.get('name_org', '')
  31. if name_org == '':
  32. name_org = name
  33. json_data = data[0][0]
  34. include_data = flask.request.args.get('include', '')
  35. if include_data != '':
  36. get_all_change_1 = []
  37. find_replace_moment = re.findall(r'(@([^=@]+)=([^=@]+)@|@([^=@]+)@)', json_data)
  38. for i in find_replace_moment:
  39. if i[1] != '':
  40. get_all_change_1 += [['@' + i[1] + '@', i[2]]]
  41. json_data = json_data.replace(i[0], '@' + i[1] + '@', 1)
  42. else:
  43. json_data = json_data.replace(i[0], '@' + i[3] + '@', 1)
  44. get_all_change_2 = re.findall(r'(@(?:[^@]*)@),([^,]*),', flask.request.args.get('change', '')) + get_all_change_1
  45. for i in get_all_change_2:
  46. json_data = json_data.replace(
  47. i[0].replace('<amp>', '&'),
  48. i[1].replace('<amp>', '&').replace('<comma>', ','),
  49. 1
  50. )
  51. data_pas = render_set(
  52. doc_name = name_org,
  53. doc_data = json_data,
  54. data_type = 'api_view',
  55. data_in = include_data
  56. )
  57. return flask.jsonify({
  58. "data" : data_pas[0],
  59. "js_data" : data_pas[1]
  60. })
  61. return flask.jsonify({})