revert.py 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. from .tool.func import *
  2. def revert_2(conn, name):
  3. curs = conn.cursor()
  4. num = int(number_check(flask.request.args.get('num', '1')))
  5. curs.execute("select title from history where title = ? and id = ? and hide = 'O'", [name, str(num)])
  6. if curs.fetchall() and admin_check(6) != 1:
  7. return re_error('/error/3')
  8. if acl_check(name) == 1:
  9. return re_error('/ban')
  10. if flask.request.method == 'POST':
  11. if captcha_post(flask.request.form.get('g-recaptcha-response', '')) == 1:
  12. return re_error('/error/13')
  13. else:
  14. captcha_post('', 0)
  15. curs.execute("select data from history where title = ? and id = ?", [name, str(num)])
  16. data = curs.fetchall()
  17. if data:
  18. if edit_filter_do(data[0][0]) == 1:
  19. return re_error('/error/21')
  20. curs.execute("delete from back where link = ?", [name])
  21. conn.commit()
  22. if data:
  23. curs.execute("select data from data where title = ?", [name])
  24. data_old = curs.fetchall()
  25. if data_old:
  26. leng = leng_check(len(data_old[0][0]), len(data[0][0]))
  27. curs.execute("update data set data = ? where title = ?", [data[0][0], name])
  28. else:
  29. leng = '+' + str(len(data[0][0]))
  30. curs.execute("insert into data (title, data) values (?, ?)", [name, data[0][0]])
  31. history_plus(
  32. name,
  33. data[0][0],
  34. get_time(),
  35. ip_check(),
  36. flask.request.form.get('send', None) + ' (r' + str(num) + ')',
  37. leng
  38. )
  39. render_set(
  40. title = name,
  41. data = data[0][0],
  42. num = 1
  43. )
  44. conn.commit()
  45. return redirect('/w/' + url_pas(name))
  46. else:
  47. curs.execute("select title from history where title = ? and id = ?", [name, str(num)])
  48. if not curs.fetchall():
  49. return redirect('/w/' + url_pas(name))
  50. return easy_minify(flask.render_template(skin_check(),
  51. imp = [name, wiki_set(), custom(), other2([' (' + load_lang('revert') + ')', 0])],
  52. data = '''
  53. <form method="post">
  54. <span>r''' + flask.request.args.get('num', '0') + '''</span>
  55. <hr class=\"main_hr\">
  56. ''' + ip_warring() + '''
  57. <input placeholder="''' + load_lang('why') + '''" name="send" type="text">
  58. <hr class=\"main_hr\">
  59. ''' + captcha_get() + '''
  60. <button type="submit">''' + load_lang('revert') + '''</button>
  61. </form>
  62. ''',
  63. menu = [['history/' + url_pas(name), load_lang('history')], ['recent_changes', load_lang('recent_change')]]
  64. ))