user_setting.py 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. from .tool.func import *
  2. def user_setting_2(conn, server_init):
  3. curs = conn.cursor()
  4. support_language = server_init.server_set_var['language']['list']
  5. ip = ip_check()
  6. if ban_check() == 1:
  7. return re_error('/ban')
  8. if ip_or_user(ip) != 0:
  9. return redirect('/login')
  10. user_state = flask.request.args.get('user', 'ip')
  11. if user_state == 'ip':
  12. if flask.request.method == 'POST':
  13. auto_list = ['email', 'skin', 'lang']
  14. for auto_data in auto_list:
  15. if flask.request.form.get(auto_data, '') != '':
  16. curs.execute('select data from user_set where name = ? and id = ?', [auto_data, ip])
  17. if curs.fetchall():
  18. curs.execute("update user_set set data = ? where name = ? and id = ?", [flask.request.form.get(auto_data, ''), auto_data, ip])
  19. else:
  20. curs.execute("insert into user_set (name, id, data) values (?, ?, ?)", [auto_data, ip, flask.request.form.get(auto_data, '')])
  21. conn.commit()
  22. return redirect('/change')
  23. else:
  24. curs.execute('select data from user_set where name = "email" and id = ?', [ip])
  25. data = curs.fetchall()
  26. if data:
  27. email = data[0][0]
  28. else:
  29. email = '-'
  30. div2 = load_skin()
  31. div3 = ''
  32. curs.execute('select data from user_set where name = "lang" and id = ?', [flask.session['id']])
  33. data = curs.fetchall()
  34. if not data:
  35. curs.execute('select data from other where name = "language"')
  36. data = curs.fetchall()
  37. if not data:
  38. data = [['en-US']]
  39. for lang_data in support_language:
  40. if data and data[0][0] == lang_data:
  41. div3 = '<option value="' + lang_data + '">' + lang_data + '</option>' + div3
  42. else:
  43. div3 += '<option value="' + lang_data + '">' + lang_data + '</option>'
  44. oauth_provider = load_oauth('_README')['support']
  45. oauth_content = '<ul>'
  46. for i in range(len(oauth_provider)):
  47. curs.execute('select name, picture from oauth_conn where wiki_id = ? and provider = ?', [flask.session['id'], oauth_provider[i]])
  48. oauth_data = curs.fetchall()
  49. if len(oauth_data) == 1:
  50. oauth_content += '<li>{} - {}</li>'.format(oauth_provider[i].capitalize(), load_lang('connection') + ' : <img src="{}" width="17px" height="17px">{}'.format(oauth_data[0][1], oauth_data[0][0]))
  51. else:
  52. oauth_content += '<li>{} - {}</li>'.format(oauth_provider[i].capitalize(), load_lang('connection') + ' : <a href="/oauth/{}/init">{}</a>'.format(oauth_provider[i], load_lang('connect')))
  53. oauth_content += '</ul>'
  54. http_warring = '<hr class=\"main_hr\"><span>' + load_lang('http_warring') + '</span>'
  55. return easy_minify(flask.render_template(skin_check(),
  56. imp = [load_lang('user_setting'), wiki_set(), custom(), other2([0, 0])],
  57. data = '''
  58. <form method="post">
  59. <span>''' + load_lang('id') + ''' : ''' + ip + '''</span>
  60. <hr class=\"main_hr\">
  61. <a href="/pw_change">(''' + load_lang('password_change') + ''')</a>
  62. <hr class=\"main_hr\">
  63. <span>''' + load_lang('email') + ''' : ''' + email + '''</span> <a href="/email_change">(''' + load_lang('email_change') + ''')</a>
  64. <hr class=\"main_hr\">
  65. <span>''' + load_lang('skin') + '''</span>
  66. <hr class=\"main_hr\">
  67. <select name="skin">''' + div2 + '''</select>
  68. <hr class=\"main_hr\">
  69. <span>''' + load_lang('language') + '''</span>
  70. <hr class=\"main_hr\">
  71. <select name="lang">''' + div3 + '''</select>
  72. <hr class=\"main_hr\">
  73. <span>''' + load_lang('oauth_connection') + '''</span>
  74. ''' + oauth_content + '''
  75. <hr class=\"main_hr\">
  76. <button type="submit">''' + load_lang('save') + '''</button>
  77. ''' + http_warring + '''
  78. </form>
  79. ''',
  80. menu = [['user', load_lang('return')]]
  81. ))
  82. else:
  83. pass