main_func_setting_external.py 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. from .tool.func import *
  2. def main_func_setting_external():
  3. with get_db_connect() as conn:
  4. curs = conn.cursor()
  5. if admin_check() != 1:
  6. return re_error('/ban')
  7. i_list = [
  8. 'recaptcha',
  9. 'sec_re',
  10. 'smtp_server',
  11. 'smtp_port',
  12. 'smtp_security',
  13. 'smtp_email',
  14. 'smtp_pass',
  15. 'recaptcha_ver',
  16. 'oauth_client_id',
  17. 'email_have'
  18. ]
  19. if flask.request.method == 'POST':
  20. for data in i_list:
  21. into_data = flask.request.form.get(data, '')
  22. curs.execute(db_change("update other set data = ? where name = ?"), [into_data, data])
  23. conn.commit()
  24. admin_check(None, 'edit_set (external)')
  25. return redirect('/setting/external')
  26. else:
  27. d_list = []
  28. x = 0
  29. for i in i_list:
  30. curs.execute(db_change('select data from other where name = ?'), [i])
  31. sql_d = curs.fetchall()
  32. if sql_d:
  33. d_list += [sql_d[0][0]]
  34. else:
  35. curs.execute(db_change('insert into other (name, data) values (?, ?)'), [i, ''])
  36. d_list += ['']
  37. x += 1
  38. conn.commit()
  39. security_radios = ''
  40. for i in ['tls', 'starttls', 'plain']:
  41. if d_list[4] == i:
  42. security_radios = '<option value="' + i + '">' + i + '</option>' + security_radios
  43. else:
  44. security_radios += '<option value="' + i + '">' + i + '</option>'
  45. re_ver_list = {
  46. '' : 'reCAPTCHA v2',
  47. 'v3' : 'reCAPTCHA v3',
  48. 'h' : 'hCAPTCHA'
  49. }
  50. re_ver = ''
  51. for i in re_ver_list:
  52. if d_list[7] == i:
  53. re_ver = '<option value="' + i + '">' + re_ver_list[i] + '</option>' + re_ver
  54. else:
  55. re_ver += '<option value="' + i + '">' + re_ver_list[i] + '</option>'
  56. return easy_minify(flask.render_template(skin_check(),
  57. imp = [load_lang('ext_api_req_set'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
  58. data = '''
  59. <form method="post" id="main_set_data">
  60. <h2>1. ''' + load_lang('captcha') + '''</h2>
  61. <a href="https://www.google.com/recaptcha/">(''' + load_lang('recaptcha') + ''')</a> <a href="https://www.hcaptcha.com/">(''' + load_lang('hcaptcha') + ''')</a>
  62. <hr class="main_hr">
  63. <span>''' + load_lang('public_key') + '''</span>
  64. <hr class="main_hr">
  65. <input name="recaptcha" value="''' + html.escape(d_list[0]) + '''">
  66. <hr class="main_hr">
  67. <span>''' + load_lang('secret_key') + '''</span>
  68. <hr class="main_hr">
  69. <input name="sec_re" value="''' + html.escape(d_list[1]) + '''">
  70. <hr class="main_hr">
  71. <span>''' + load_lang('version') + '''</span>
  72. <hr class="main_hr">
  73. <select name="recaptcha_ver">
  74. ''' + re_ver + '''
  75. </select>
  76. <h2>2. ''' + load_lang('email_setting') + '''</h1>
  77. <input type="checkbox" name="email_have" ''' + ('checked' if d_list[9] != '' else '') + '''> ''' + \
  78. load_lang('email_required') + '''
  79. <h2>2.1. ''' + load_lang('smtp_setting') + '''</h1>
  80. <a href="https://support.google.com/mail/answer/7126229">(Google)</a>
  81. <hr class="main_hr">
  82. <span>''' + load_lang('smtp_server') + '''</span>
  83. <hr class="main_hr">
  84. <input name="smtp_server" value="''' + html.escape(d_list[2]) + '''">
  85. <hr class="main_hr">
  86. <span>''' + load_lang('smtp_port') + '''</span>
  87. <hr class="main_hr">
  88. <input name="smtp_port" value="''' + html.escape(d_list[3]) + '''">
  89. <hr class="main_hr">
  90. <span>''' + load_lang('smtp_security') + '''</span>
  91. <hr class="main_hr">
  92. <select name="recaptcha_ver">
  93. ''' + security_radios + '''
  94. </select>
  95. <hr class="main_hr">
  96. <span>''' + load_lang('smtp_username') + '''</span>
  97. <hr class="main_hr">
  98. <input name="smtp_email" value="''' + html.escape(d_list[5]) + '''">
  99. <hr class="main_hr">
  100. <span>''' + load_lang('smtp_password') + '''</span>
  101. <hr class="main_hr">
  102. <input type="password" name="smtp_pass" value="''' + html.escape(d_list[6]) + '''">
  103. <h2>3. ''' + load_lang('oauth') + ''' (''' + load_lang('incomplete') + ''')</h2>
  104. <a href="https://developers.google.com/identity/protocols/oauth2">(Google)</a>
  105. <hr class="main_hr">
  106. <span>''' + load_lang('oauth_client_id') + '''</span>
  107. <hr class="main_hr">
  108. <input name="oauth_client_id" value="''' + html.escape(d_list[8]) + '''">
  109. <hr class="main_hr">
  110. <hr class="main_hr">
  111. <button id="save" type="submit">''' + load_lang('save') + '''</button>
  112. </form>
  113. <script>simple_render('main_set_data');</script>
  114. ''',
  115. menu = [['setting', load_lang('return')]]
  116. ))