go_api_w_render.py 2.6 KB

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