user_setting_email.py 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. from .tool.func import *
  2. def user_setting_email_2(conn):
  3. curs = conn.cursor()
  4. ip = ip_check()
  5. if ip_or_user(ip) != 0:
  6. return redirect('/login')
  7. if flask.request.method == 'POST':
  8. # c_key 같은 이름 대신 한 기능에 고유 명칭 부여 필요
  9. re_set_list = ['c_key']
  10. flask.session['c_key'] = load_random_key(32)
  11. user_email = flask.request.form.get('email', '')
  12. email_data = re.search(r'@([^@]+)$', user_email)
  13. if email_data:
  14. curs.execute(db_change("select html from html_filter where html = ? and kind = 'email'"), [email_data.group(1)])
  15. if not curs.fetchall():
  16. for i in re_set_list:
  17. flask.session.pop(i, None)
  18. return redirect('/email_filter')
  19. else:
  20. for i in re_set_list:
  21. flask.session.pop(i, None)
  22. return re_error('/error/36')
  23. curs.execute(db_change('select data from other where name = "email_title"'))
  24. sql_d = curs.fetchall()
  25. t_text = html.escape(sql_d[0][0]) if sql_d and sql_d[0][0] != '' else (wiki_set()[0] + ' key')
  26. curs.execute(db_change('select data from other where name = "email_text"'))
  27. sql_d = curs.fetchall()
  28. if sql_d and sql_d[0][0] != '':
  29. i_text = html.escape(sql_d[0][0]) + '\n\nKey : ' + flask.session['c_key']
  30. else:
  31. i_text = 'Key : ' + flask.session['c_key']
  32. curs.execute(db_change('select id from user_set where name = "email" and data = ?'), [user_email])
  33. if curs.fetchall():
  34. for i in re_set_list:
  35. flask.session.pop(i, None)
  36. return re_error('/error/35')
  37. if send_email(user_email, t_text, i_text) == 0:
  38. for i in re_set_list:
  39. flask.session.pop(i, None)
  40. return re_error('/error/18')
  41. flask.session['c_email'] = user_email
  42. return redirect('/change/email/check')
  43. else:
  44. curs.execute(db_change('select data from other where name = "email_insert_text"'))
  45. sql_d = curs.fetchall()
  46. b_text = (sql_d[0][0] + '<hr class="main_hr">') if sql_d and sql_d[0][0] != '' else ''
  47. return easy_minify(flask.render_template(skin_check(),
  48. imp = [load_lang('email'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
  49. data = '''
  50. <a href="/email_filter">(''' + load_lang('email_filter_list') + ''')</a>
  51. <hr class="main_hr">
  52. ''' + b_text + '''
  53. <form method="post">
  54. <input placeholder="''' + load_lang('email') + '''" name="email" type="text">
  55. <hr class="main_hr">
  56. <button type="submit">''' + load_lang('save') + '''</button>
  57. </form>
  58. ''',
  59. menu = [['user', load_lang('return')]]
  60. ))