user_setting_head.py 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. from .tool.func import *
  2. async def user_setting_head(skin_name = ''):
  3. with get_db_connect() as conn:
  4. curs = conn.cursor()
  5. ip = ip_check()
  6. skin_name_org = skin_name
  7. if skin_name != '':
  8. skin_name = '_' + skin_name
  9. if flask.request.method == 'POST':
  10. get_data = flask.request.form.get('content', '')
  11. if ip_or_user(ip) == 0:
  12. curs.execute(db_change("select id from user_set where id = ? and name = ?"), [ip, 'custom_css' + skin_name])
  13. if curs.fetchall():
  14. curs.execute(db_change("update user_set set data = ? where id = ? and name = ?"), [get_data, ip, 'custom_css' + skin_name])
  15. else:
  16. curs.execute(db_change("insert into user_set (id, name, data) values (?, ?, ?)"), [ip, 'custom_css' + skin_name, get_data])
  17. flask.session['head' + skin_name] = get_data
  18. if skin_name_org != '':
  19. return redirect(conn, '/change/head/' + skin_name_org)
  20. else:
  21. return redirect(conn, '/change/head')
  22. else:
  23. if ip_or_user(ip) == 0:
  24. start = ''
  25. curs.execute(db_change("select data from user_set where id = ? and name = ?"), [ip, 'custom_css' + skin_name])
  26. head_data = curs.fetchall()
  27. data = head_data[0][0] if head_data else ''
  28. else:
  29. start = '' + \
  30. '<span>' + await get_lang('user_head_warning') + '</span>' + \
  31. '<hr class="main_hr">' + \
  32. ''
  33. data = flask.session['head' + skin_name] if 'head' + skin_name in flask.session else ''
  34. start += '' + \
  35. '<span>' + \
  36. '&lt;style&gt;CSS&lt;/style&gt;' + \
  37. '<br>' + \
  38. '&lt;script&gt;JS&lt;/script&gt;' + \
  39. '</span>' + \
  40. '<hr class="main_hr">' + \
  41. ''
  42. if skin_name == '':
  43. sub_name = ''
  44. else:
  45. sub_name = ' (' + skin_name_org + ')'
  46. start = '' + \
  47. '<a href="/change/head">(' + await get_lang('all') + ')</a> ' + \
  48. ' '.join(['<a href="/change/head/' + url_pas(i) + '">(' + html.escape(i) + ')</a>' for i in await load_skin('', 1)]) + \
  49. '<hr class="main_hr">' + \
  50. start + \
  51. ''
  52. return await render_template(
  53. await get_lang(data = 'user_head', safe = 1),
  54. start + '''
  55. <form method="post">
  56. <textarea class="opennamu_textarea_500 __ON_TEXTAREA__" cols="100" name="content">''' + html.escape(data) + '''</textarea>
  57. <hr class="main_hr">
  58. ''' + await get_lang('user_css_warning') + ''' : <a href="/change/head_reset">/change/head_reset</a>
  59. <hr class="main_hr">
  60. <button id="opennamu_save_button" type="submit">''' + await get_lang('save') + '''</button>
  61. </form>
  62. ''',
  63. '(HTML)' + sub_name,
  64. [['change', await get_lang('return')]]
  65. )