2
0

edit_delete_file.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. from .tool.func import *
  2. from .edit_delete import edit_delete
  3. # 처음으로 차세대 코드 방법론 적용
  4. # 앞으로 다 이렇게 작성할 예정
  5. def edit_delete_file(name : str = 'test.jpg') -> str:
  6. with get_db_connect() as conn:
  7. curs : typing.Union[sqlite3.dbapi2.Cursor, pymysql.cursors.Cursor, None] = conn.cursor()
  8. ip : str = ip_check()
  9. if admin_check() == 0:
  10. return re_error('/ban')
  11. mime_type : typing.Union[re.Match, None] = re.search(r'([^.]+)$', name)
  12. if mime_type:
  13. mime_type = mime_type.group(1).lower()
  14. else:
  15. mime_type = 'jpg'
  16. file_name : str = re.sub(r'\.([^.]+)$', '', name)
  17. file_name = re.sub(r'^file:', '', file_name)
  18. file_all_name : str = sha224_replace(file_name) + '.' + mime_type
  19. file_directory : str = os.path.join(load_image_url(), file_all_name)
  20. if not os.path.exists(file_directory):
  21. return redirect('/w/' + url_pas(name))
  22. if flask.request.method == 'POST':
  23. admin_check(None, 'file del (' + name + ')')
  24. os.remove(file_directory)
  25. if flask.request.form.get('with_doc', '') != '':
  26. edit_delete(name)
  27. return redirect('/w/' + url_pas(name))
  28. else:
  29. return easy_minify(flask.render_template(skin_check(),
  30. imp = [name, wiki_set(), wiki_custom(), wiki_css(['(' + load_lang('file_delete') + ')', 0])],
  31. data = '''
  32. <form method="post">
  33. <img src="/image/''' + url_pas(file_all_name) + '''">
  34. <hr class="main_hr">
  35. <a href="/image/''' + url_pas(file_all_name) + '''">/image/''' + url_pas(file_all_name) + '''</a>
  36. <hr class="main_hr">
  37. <input name="with_doc" type="checkbox" checked> ''' + load_lang('file_delete_with_document') + '''
  38. <hr class="main_hr">
  39. <button type="submit">''' + load_lang('file_delete') + '''</button>
  40. </form>
  41. ''',
  42. menu = [['w/' + url_pas(name), load_lang('return')]]
  43. ))