edit_revert.py 3.1 KB

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