edit_delete.py 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. from .tool.func import *
  2. async def edit_delete(name):
  3. with get_db_connect() as conn:
  4. curs = conn.cursor()
  5. ip = ip_check()
  6. if await acl_check(name, 'document_delete') == 1:
  7. return await re_error(conn, 0)
  8. curs.execute(db_change("select title from data where title = ?"), [name])
  9. if not curs.fetchall():
  10. return redirect(conn, '/w/' + url_pas(name))
  11. if flask.request.method == 'POST':
  12. if await captcha_post(conn, flask.request.form.get('g-recaptcha-response', flask.request.form.get('g-recaptcha', ''))) == 1:
  13. return await re_error(conn, 13)
  14. if await do_edit_slow_check(conn) == 1:
  15. return await re_error(conn, 24)
  16. send = flask.request.form.get('send', '')
  17. agree = flask.request.form.get('copyright_agreement', '')
  18. if await do_edit_send_check(conn, send) == 1:
  19. return await re_error(conn, 37)
  20. if do_edit_text_bottom_check_box_check(conn, agree) == 1:
  21. return await re_error(conn, 29)
  22. curs.execute(db_change("select data from data where title = ?"), [name])
  23. data = curs.fetchall()
  24. if data:
  25. today = get_time()
  26. leng = '-' + str(len(data[0][0]))
  27. history_plus(conn,
  28. name,
  29. '',
  30. today,
  31. ip,
  32. send,
  33. leng,
  34. mode = 'delete'
  35. )
  36. curs.execute(db_change("select title, link from back where title = ? and not type = 'cat' and not type = 'no'"), [name])
  37. for data in curs.fetchall():
  38. curs.execute(db_change("insert into back (title, link, type, data) values (?, ?, 'no', '')"), [data[0], data[1]])
  39. curs.execute(db_change("delete from back where link = ?"), [name])
  40. curs.execute(db_change("delete from data where title = ?"), [name])
  41. return redirect(conn, '/w/' + url_pas(name))
  42. else:
  43. return easy_minify(conn, flask.render_template(skin_check(conn),
  44. imp = [name, await wiki_set(), await wiki_custom(conn), wiki_css(['(' + get_lang(conn, 'delete') + ')', 0])],
  45. data = '''
  46. <form method="post">
  47. <input placeholder="''' + get_lang(conn, 'why') + '''" name="send">
  48. <hr class="main_hr">
  49. ''' + await captcha_get(conn) + ip_warning(conn) + get_edit_text_bottom_check_box(conn) + get_edit_text_bottom(conn, 'delete') + '''
  50. <button type="submit">''' + get_lang(conn, 'delete') + '''</button>
  51. </form>
  52. ''',
  53. menu = [['w/' + url_pas(name), get_lang(conn, 'return')]]
  54. ))