go_api_w_render.py 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. from .tool.func import *
  2. from .go_api_w_raw import api_w_raw
  3. async def api_w_render(name = '', tool = '', request_method = '', request_data = {}):
  4. with get_db_connect() as conn:
  5. curs = conn.cursor()
  6. flask_data = flask_data_or_variable(flask.request.form, request_data)
  7. request_method = flask.request.method if request_method == '' else request_method
  8. if request_method == 'POST':
  9. name = flask_data.get('name', '')
  10. data_org = flask_data.get('data', '')
  11. data_option = flask_data.get('option', '')
  12. markup = ''
  13. if tool in ('', 'from', 'include'):
  14. curs.execute(db_change("select set_data from data_set where doc_name = ? and set_name = 'document_markup'"), [name])
  15. db_data = curs.fetchall()
  16. if db_data and db_data[0][0] != '' and db_data[0][0] != 'normal':
  17. markup = db_data[0][0]
  18. if markup == '':
  19. curs.execute(db_change('select data from other where name = "markup"'))
  20. db_data = curs.fetchall()
  21. markup = db_data[0][0] if db_data else 'namumark'
  22. data_type = ''
  23. if tool == '':
  24. data_type = 'api_view'
  25. elif tool == 'from':
  26. data_type = 'api_from'
  27. elif tool == 'include':
  28. data_type = 'api_include'
  29. elif tool == 'backlink':
  30. data_type = 'backlink'
  31. else:
  32. data_type = 'api_thread'
  33. if markup in ('', 'namumark', 'namumark_beta') and data_option != '':
  34. data_option = json.loads(data_option)
  35. # remove end br
  36. data_org = re.sub('^\n+', '', data_org)
  37. if markup in ('', 'namumark'):
  38. data_pas = render_set(conn,
  39. doc_name = name,
  40. doc_data = data_org,
  41. data_type = data_type,
  42. parameter = data_option
  43. )
  44. return {
  45. "data" : data_pas[0],
  46. "js_data" : data_pas[1]
  47. }
  48. else:
  49. other_set = {}
  50. other_set["doc_name"] = name
  51. other_set["render_type"] = data_type
  52. other_set["data"] = data_org
  53. return await python_to_golang(sys._getframe().f_code.co_name, other_set)
  54. else:
  55. return {}
  56. async def api_w_render_exter(name = '', tool = '', request_method = '', request_data = {}):
  57. return flask.jsonify(await api_w_render(name, tool, request_method, request_data))