api_w.py 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  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. if name_org == '':
  20. name_org = name
  21. json_data = data[0][0]
  22. include_data = flask.request.args.get('include', '')
  23. if include_data != '':
  24. get_all_change_1 = []
  25. find_replace_moment = re.findall(r'(@([^=@]+)=([^=@]+)@|@([^=@]+)@)', json_data)
  26. for i in find_replace_moment:
  27. if i[1] != '':
  28. get_all_change_1 += [['@' + i[1] + '@', i[2]]]
  29. json_data = json_data.replace(i[0], '@' + i[1] + '@', 1)
  30. else:
  31. json_data = json_data.replace(i[0], '@' + i[3] + '@', 1)
  32. get_all_change_2 = re.findall(r'(@(?:[^@]*)@),([^,]*),', flask.request.args.get('change', '')) + get_all_change_1
  33. for i in get_all_change_2:
  34. json_data = json_data.replace(
  35. i[0].replace('<amp>', '&'),
  36. i[1].replace('<amp>', '&').replace('<comma>', ','),
  37. 1
  38. )
  39. data_pas = render_set(
  40. doc_name = name_org,
  41. doc_data = json_data,
  42. data_type = 'api_view',
  43. data_in = include_data
  44. )
  45. return flask.jsonify({
  46. "data" : data_pas[0],
  47. "js_data" : data_pas[1]
  48. })
  49. elif data_arg_v == 'exist':
  50. try:
  51. title_list = json.loads(flask.request.form.get('title_list', ''))
  52. title_list = list(set(title_list))
  53. except:
  54. title_list = []
  55. data_exist = {}
  56. for i in title_list:
  57. curs.execute(db_change("select title from data where title = ?"), [i])
  58. if curs.fetchall():
  59. data_exist[i] = '1'
  60. return flask.jsonify(data_exist)
  61. else:
  62. return flask.jsonify({})
  63. else:
  64. data_arg_exist = flask.request.args.get('exist', '')
  65. if data_arg_v == 'exist' or data_arg_exist != '':
  66. curs.execute(db_change("select title from data where title = ?"), [name])
  67. if curs.fetchall():
  68. return flask.jsonify({ "exist" : "1" })
  69. else:
  70. return flask.jsonify({})
  71. else:
  72. data_arg_include = flask.request.args.get('include', '')
  73. if acl_check(name, 'render') == 1:
  74. return flask.jsonify({})
  75. else:
  76. data_arg_rev = flask.request.args.get('num', '')
  77. if data_arg_rev != '':
  78. curs.execute(db_change("select data from history where title = ? and id = ?"), [name, rev])
  79. else:
  80. curs.execute(db_change("select data from data where title = ?"), [name])
  81. sql_data = curs.fetchall()
  82. if not sql_data:
  83. return flask.jsonify({})
  84. elif data_arg_include != '':
  85. name_org = flask.request.args.get('name_org', '')
  86. name_org = name if name_org == '' else name_org
  87. json_data = sql_data[0][0]
  88. get_all_change_1 = []
  89. find_replace_moment = re.findall(r'(@([^=@]+)=([^=@]+)@|@([^=@]+)@)', json_data)
  90. for i in find_replace_moment:
  91. if i[1] != '':
  92. get_all_change_1 += [['@' + i[1] + '@', i[2]]]
  93. json_data = json_data.replace(i[0], '@' + i[1] + '@', 1)
  94. else:
  95. json_data = json_data.replace(i[0], '@' + i[3] + '@', 1)
  96. get_all_change_2 = re.findall(r'(@(?:[^@]*)@),([^,]*),', flask.request.args.get('change', '')) + get_all_change_1
  97. for i in get_all_change_2:
  98. json_data = json_data.replace(
  99. i[0].replace('<amp>', '&'),
  100. i[1].replace('<amp>', '&').replace('<comma>', ','),
  101. 1
  102. )
  103. data_pas = render_set(
  104. doc_name = name_org,
  105. doc_data = json_data,
  106. data_type = 'api_view',
  107. data_in = data_arg_include
  108. )
  109. return flask.jsonify({
  110. "data" : data_pas[0],
  111. "js_data" : data_pas[1]
  112. })
  113. else:
  114. data_pas = render_set(
  115. doc_name = name,
  116. doc_data = sql_data[0][0],
  117. data_type = 'api_view'
  118. )
  119. return flask.jsonify({
  120. "data" : data_pas[0],
  121. "js_data" : data_pas[1]
  122. })