main_setting_head.py 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. from .tool.func import *
  2. async def main_setting_head(num, skin_name = '', set_preview = 0):
  3. with get_db_connect() as conn:
  4. curs = conn.cursor()
  5. if await acl_check('', 'owner_auth', '', '') == 1:
  6. return await re_error(conn, 0)
  7. if flask.request.method == 'POST' and set_preview == 0:
  8. if num == 4:
  9. info_d = 'body'
  10. end_r = 'body/top'
  11. coverage = ''
  12. elif num == 7:
  13. info_d = 'bottom_body'
  14. end_r = 'body/bottom'
  15. coverage = ''
  16. else:
  17. info_d = 'head'
  18. end_r = 'head'
  19. if skin_name == '':
  20. coverage = ''
  21. else:
  22. coverage = skin_name
  23. curs.execute(db_change("select name from other where name = ? and coverage = ?"), [info_d, coverage])
  24. if curs.fetchall():
  25. curs.execute(db_change("update other set data = ? where name = ? and coverage = ?"), [flask.request.form.get('content', ''), info_d, coverage])
  26. else:
  27. curs.execute(db_change("insert into other (name, data, coverage) values (?, ?, ?)"), [info_d, flask.request.form.get('content', ''), coverage])
  28. await acl_check(tool = 'owner_auth', memo = 'edit_set (' + info_d + ')')
  29. if skin_name == '':
  30. return redirect(conn, '/setting/' + end_r)
  31. else:
  32. return redirect(conn, '/setting/' + end_r + '/' + skin_name)
  33. else:
  34. title = ''
  35. start = ''
  36. form_action = ''
  37. data_preview = ''
  38. plus = ''
  39. if num == 4:
  40. curs.execute(db_change("select data from other where name = 'body'"))
  41. title = '_body'
  42. form_action = 'formaction="/setting/body/top"'
  43. data_preview = flask.request.form.get('content', '') if set_preview == 1 else ''
  44. plus = '''
  45. <button class="__ON_BUTTON__" id="opennamu_preview_button" type="submit" formaction="/setting_preview/body/top">''' + await get_lang('preview') + '''</button>
  46. <hr class="main_hr">
  47. <div id="opennamu_preview_area">''' + data_preview + '''</div>
  48. '''
  49. elif num == 7:
  50. curs.execute(db_change("select data from other where name = 'bottom_body'"))
  51. title = '_bottom_body'
  52. data_preview = flask.request.form.get('content', '') if set_preview == 1 else ''
  53. form_action = 'formaction="/setting/body/bottom"'
  54. plus = '''
  55. <button class="__ON_BUTTON__" id="opennamu_preview_button" type="submit" formaction="/setting_preview/body/bottom">''' + await get_lang('preview') + '''</button>
  56. <hr class="main_hr">
  57. <div id="opennamu_preview_area">''' + data_preview + '''</div>
  58. '''
  59. else:
  60. skin_list = ''
  61. for for_a in await load_skin('', 1):
  62. skin_list += '<a href="/setting/head/' + url_pas(for_a) + '">(' + html.escape(for_a) + ')</a> '
  63. skin_list += '<a href="/setting/head/' + url_pas(for_a) + '-cssdark">(' + html.escape(for_a) + '-cssdark)</a> '
  64. curs.execute(db_change("select data from other where name = 'head' and coverage = ?"), [skin_name])
  65. title = '_head'
  66. start = '' + \
  67. '<a href="/setting/head">(' + await get_lang('all') + ')</a> ' + \
  68. skin_list + '''
  69. <hr class="main_hr">
  70. <span>
  71. &lt;style&gt;CSS&lt;/style&gt;
  72. <br>
  73. &lt;script&gt;JS&lt;/script&gt;
  74. </span>
  75. <hr class="main_hr">
  76. '''
  77. if set_preview == 1:
  78. data = data_preview
  79. else:
  80. head = curs.fetchall()
  81. if head:
  82. data = head[0][0]
  83. else:
  84. data = ''
  85. if skin_name != '':
  86. sub_plus = ' (' + skin_name + ')'
  87. else:
  88. sub_plus = ''
  89. return await render_template(
  90. await get_lang(data = 'main' + title, safe = 1),
  91. '''
  92. <form method="post">
  93. ''' + start + '''
  94. <textarea class="opennamu_textarea_500 __ON_TEXTAREA__" placeholder="''' + await get_lang('enter_html') + '''" name="content" id="content">''' + html.escape(data) + '''</textarea>
  95. <hr class="main_hr">
  96. ''' + (await get_lang('main_css_warning') + '<hr class="main_hr">' if title == '_head' else '') + '''
  97. <button class="__ON_BUTTON__" id="opennamu_save_button" type="submit" ''' + form_action + '''>''' + await get_lang('save') + '''</button>
  98. ''' + plus + '''
  99. </form>
  100. ''',
  101. '(HTML)' + sub_plus,
  102. [['setting', await get_lang('return')]]
  103. )