itRemove threading and serve file from memory. - blck - ephemeral pastebin/url shortener Err parazyd.org 70 hgit clone https://git.parazyd.org/blck URL:https://git.parazyd.org/blck parazyd.org 70 1Log /git/blck/log.gph parazyd.org 70 1Files /git/blck/files.gph parazyd.org 70 1Refs /git/blck/refs.gph parazyd.org 70 1README /git/blck/file/README.md.gph parazyd.org 70 1LICENSE /git/blck/file/LICENSE.gph parazyd.org 70 i--- Err parazyd.org 70 1commit c4dbb4b86dc0b76b616647ea2d440ee7cdab6694 /git/blck/commit/c4dbb4b86dc0b76b616647ea2d440ee7cdab6694.gph parazyd.org 70 1parent 8039a048e1e59621c0cc0bfc7d281f5de12b4d72 /git/blck/commit/8039a048e1e59621c0cc0bfc7d281f5de12b4d72.gph parazyd.org 70 hAuthor: parazyd URL:mailto:parazyd@dyne.org parazyd.org 70 iDate: Tue, 9 Feb 2021 10:25:33 +0100 Err parazyd.org 70 i Err parazyd.org 70 iRemove threading and serve file from memory. Err parazyd.org 70 i Err parazyd.org 70 iDiffstat: Err parazyd.org 70 i M blck.py | 30 +++++++++++++++--------------- Err parazyd.org 70 i Err parazyd.org 70 i1 file changed, 15 insertions(+), 15 deletions(-) Err parazyd.org 70 i--- Err parazyd.org 70 1diff --git a/blck.py b/blck.py /git/blck/file/blck.py.gph parazyd.org 70 it@@ -2,15 +2,14 @@ Err parazyd.org 70 i # copyleft (c) 2017-2021 parazyd Err parazyd.org 70 i # see LICENSE file for copyright and license details. Err parazyd.org 70 i Err parazyd.org 70 i+from io import BytesIO Err parazyd.org 70 i from os import remove, rename Err parazyd.org 70 i-from os.path import join Err parazyd.org 70 i+from os.path import join, isfile Err parazyd.org 70 i from random import choice Err parazyd.org 70 i from string import ascii_uppercase, ascii_lowercase Err parazyd.org 70 i-from threading import Thread Err parazyd.org 70 i-from time import sleep Err parazyd.org 70 i Err parazyd.org 70 i-from flask import (Flask, Blueprint, render_template, request, Err parazyd.org 70 i- send_from_directory) Err parazyd.org 70 i+from flask import (Flask, Blueprint, render_template, request, safe_join, Err parazyd.org 70 i+ send_file, abort) Err parazyd.org 70 i import magic Err parazyd.org 70 i Err parazyd.org 70 i bp = Blueprint('blck', __name__, template_folder='templates') Err parazyd.org 70 it@@ -24,20 +23,21 @@ def main(): Err parazyd.org 70 i Err parazyd.org 70 i @bp.route("") Err parazyd.org 70 i def urlget(urlshort): Err parazyd.org 70 i- thread = Thread(target=del_file, args=(urlshort,)) Err parazyd.org 70 i- thread.daemon = True Err parazyd.org 70 i- thread.start() Err parazyd.org 70 i- return send_from_directory('files', urlshort) Err parazyd.org 70 i- Err parazyd.org 70 i- Err parazyd.org 70 i-def del_file(f): Err parazyd.org 70 i- sleep(10) Err parazyd.org 70 i- remove(join('files', f)) Err parazyd.org 70 i+ fp = safe_join('files', urlshort) Err parazyd.org 70 i+ if not isfile(fp): Err parazyd.org 70 i+ abort(404) Err parazyd.org 70 i+ r = BytesIO() Err parazyd.org 70 i+ mime = magic.from_file(fp, mime=True) Err parazyd.org 70 i+ with open(fp, 'rb') as fo: Err parazyd.org 70 i+ r.write(fo.read()) Err parazyd.org 70 i+ r.seek(0) Err parazyd.org 70 i+ remove(fp) Err parazyd.org 70 i+ return send_file(r, mimetype=mime) Err parazyd.org 70 i Err parazyd.org 70 i Err parazyd.org 70 i def short(c): Err parazyd.org 70 i if not c or not c['c']: Err parazyd.org 70 i- return "invalid paste\n" Err parazyd.org 70 i+ return abort(400) Err parazyd.org 70 i Err parazyd.org 70 i s = genid() Err parazyd.org 70 i f = c['c'] Err parazyd.org 70 .