2
0

main_setting_external.py 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. from .tool.func import *
  2. def main_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, coverage) 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. 'cf' : 'Turnstile'
  50. }
  51. re_ver = ''
  52. for i in re_ver_list:
  53. if d_list[7] == i:
  54. re_ver = '<option value="' + i + '">' + re_ver_list[i] + '</option>' + re_ver
  55. else:
  56. re_ver += '<option value="' + i + '">' + re_ver_list[i] + '</option>'
  57. return easy_minify(flask.render_template(skin_check(),
  58. imp = [load_lang('ext_api_req_set'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
  59. data = render_simple_set('''
  60. <form method="post">
  61. <h2>''' + load_lang('captcha') + '''</h2>
  62. <a href="https://www.google.com/recaptcha/">(''' + load_lang('recaptcha') + ''')</a> <a href="https://www.hcaptcha.com/">(''' + load_lang('hcaptcha') + ''')</a>
  63. <hr class="main_hr">
  64. <span>''' + load_lang('public_key') + '''</span>
  65. <hr class="main_hr">
  66. <input name="recaptcha" value="''' + html.escape(d_list[0]) + '''">
  67. <hr class="main_hr">
  68. <span>''' + load_lang('secret_key') + '''</span>
  69. <hr class="main_hr">
  70. <input name="sec_re" value="''' + html.escape(d_list[1]) + '''">
  71. <hr class="main_hr">
  72. <span>''' + load_lang('version') + '''</span>
  73. <hr class="main_hr">
  74. <select name="recaptcha_ver">
  75. ''' + re_ver + '''
  76. </select>
  77. <h2>''' + load_lang('email_setting') + '''</h2>
  78. <a href="/setting/phrase#s-6">(''' + load_lang('text_setting') + ''')</a>
  79. <hr class="main_hr">
  80. <input type="checkbox" name="email_have" ''' + ('checked' if d_list[9] != '' else '') + '''> ''' + load_lang('email_required') + '''
  81. <h3>''' + load_lang('smtp_setting') + '''</h3>
  82. <a href="https://support.google.com/mail/answer/7126229">(Google)</a>
  83. <hr class="main_hr">
  84. <span>''' + load_lang('smtp_server') + '''</span>
  85. <hr class="main_hr">
  86. <input name="smtp_server" value="''' + html.escape(d_list[2]) + '''">
  87. <hr class="main_hr">
  88. <span>''' + load_lang('smtp_port') + '''</span>
  89. <hr class="main_hr">
  90. <input name="smtp_port" value="''' + html.escape(d_list[3]) + '''">
  91. <hr class="main_hr">
  92. <span>''' + load_lang('smtp_security') + '''</span>
  93. <hr class="main_hr">
  94. <select name="smtp_security">
  95. ''' + security_radios + '''
  96. </select>
  97. <hr class="main_hr">
  98. <span>''' + load_lang('smtp_username') + '''</span>
  99. <hr class="main_hr">
  100. <input name="smtp_email" value="''' + html.escape(d_list[5]) + '''">
  101. <hr class="main_hr">
  102. <span>''' + load_lang('smtp_password') + '''</span>
  103. <hr class="main_hr">
  104. <input type="password" name="smtp_pass" value="''' + html.escape(d_list[6]) + '''">
  105. <h2>''' + load_lang('oauth') + ''' (''' + load_lang('not_working') + ''')</h2>
  106. <a href="https://developers.google.com/identity/protocols/oauth2">(Google)</a>
  107. <hr class="main_hr">
  108. <span>''' + load_lang('oauth_client_id') + '''</span>
  109. <hr class="main_hr">
  110. <input name="oauth_client_id" value="''' + html.escape(d_list[8]) + '''">
  111. <hr class="main_hr">
  112. <hr class="main_hr">
  113. <button id="opennamu_save_button" type="submit">''' + load_lang('save') + '''</button>
  114. </form>
  115. '''),
  116. menu = [['setting', load_lang('return')]]
  117. ))