edit_revert.py 3.4 KB

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