2
0

login_register_email.py 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. from .tool.func import *
  2. async def login_register_email():
  3. with get_db_connect() as conn:
  4. curs = conn.cursor()
  5. if not 'reg_id' in flask.session:
  6. return redirect(conn, '/register')
  7. if flask.request.method == 'POST':
  8. flask.session['reg_key'] = load_random_key(32)
  9. user_email = re.sub(r'\\', '', flask.request.form.get('email', ''))
  10. email_data = re.search(r'@([^@]+)$', user_email)
  11. if email_data:
  12. email_data = email_data.group(1)
  13. curs.execute(db_change(
  14. "select html from html_filter where html = ? and kind = 'email'"
  15. ), [email_data])
  16. if not curs.fetchall():
  17. return redirect(conn, '/filter/email_filter')
  18. curs.execute(db_change('select data from other where name = "email_title"'))
  19. sql_d = curs.fetchall()
  20. if sql_d and sql_d[0][0] != '':
  21. t_text = html.escape(sql_d[0][0])
  22. else:
  23. t_text = (await wiki_set())[0] + ' key'
  24. curs.execute(db_change('select data from other where name = "email_text"'))
  25. sql_d = curs.fetchall()
  26. if sql_d and sql_d[0][0] != '':
  27. i_text = html.escape(sql_d[0][0]) + '\n\nKey : ' + str(flask.session.get('reg_key'))
  28. else:
  29. i_text = 'Key : ' + str(flask.session.get('reg_key'))
  30. curs.execute(db_change('select id from user_set where name = "email" and data = ?'), [user_email])
  31. if curs.fetchall():
  32. return await re_error(conn, 35)
  33. if await send_email(conn, user_email, t_text, i_text) == 0:
  34. return await re_error(conn, 18)
  35. flask.session['reg_email'] = user_email
  36. return redirect(conn, '/register/email/check')
  37. else:
  38. curs.execute(db_change('select data from other where name = "email_insert_text"'))
  39. sql_d = curs.fetchall()
  40. b_text = (sql_d[0][0] + '<hr class="main_hr">') if sql_d and sql_d[0][0] != '' else ''
  41. return easy_minify(conn, flask.render_template(skin_check(conn),
  42. imp = [get_lang(conn, 'email'), await wiki_set(), await wiki_custom(conn), wiki_css([0, 0])],
  43. data = '''
  44. <a href="/filter/email_filter">(''' + get_lang(conn, 'email_filter_list') + ''')</a>
  45. <hr class="main_hr">
  46. ''' + b_text + '''
  47. <form method="post">
  48. <input placeholder="''' + get_lang(conn, 'email') + '''" name="email" type="text">
  49. <hr class="main_hr">
  50. <button type="submit">''' + get_lang(conn, 'save') + '''</button>
  51. </form>
  52. ''',
  53. menu = [['user', get_lang(conn, 'return')]]
  54. ))