diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/__init__.py | 2 | ||||
-rw-r--r-- | app/blueprints/thumbnails/__init__.py | 15 | ||||
-rw-r--r-- | app/tasks/importtasks.py | 4 | ||||
-rw-r--r-- | app/utils.py | 4 |
4 files changed, 16 insertions, 9 deletions
diff --git a/app/__init__.py b/app/__init__.py index 4c1512a..478f0d8 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -72,7 +72,7 @@ from flask_login import logout_user @app.route("/uploads/<path:path>") def send_upload(path): - return send_from_directory("public/uploads", path) + return send_from_directory(app.config['UPLOAD_DIR'], path) @menu.register_menu(app, ".help", "Help", order=19, endpoint_arguments_constructor=lambda: { 'path': 'help' }) @app.route('/<path:path>/') diff --git a/app/blueprints/thumbnails/__init__.py b/app/blueprints/thumbnails/__init__.py index 1f46102..820d228 100644 --- a/app/blueprints/thumbnails/__init__.py +++ b/app/blueprints/thumbnails/__init__.py @@ -25,10 +25,10 @@ from PIL import Image ALLOWED_RESOLUTIONS=[(100,67), (270,180), (350,233)] def mkdir(path): + assert(path != "" and path is not None) if not os.path.isdir(path): os.mkdir(path) -mkdir("app/public/thumbnails/") def resize_and_crop(img_path, modified_path, size): img = Image.open(img_path) @@ -65,10 +65,15 @@ def make_thumbnail(img, level): w, h = ALLOWED_RESOLUTIONS[level - 1] - mkdir("app/public/thumbnails/{:d}/".format(level)) + upload_dir = current_app.config["UPLOAD_DIR"] + thumbnail_dir = current_app.config["THUMBNAIL_DIR"] + mkdir(thumbnail_dir) - cache_filepath = "public/thumbnails/{:d}/{}".format(level, img) - source_filepath = "public/uploads/" + img + output_dir = os.path.join(thumbnail_dir, str(level)) + mkdir(output_dir) - resize_and_crop("app/" + source_filepath, "app/" + cache_filepath, (w, h)) + cache_filepath = os.path.join(output_dir, img) + source_filepath = os.path.join(upload_dir, img) + + resize_and_crop(source_filepath, cache_filepath, (w, h)) return send_file(cache_filepath) diff --git a/app/tasks/importtasks.py b/app/tasks/importtasks.py index ed43584..ebe8e1e 100644 --- a/app/tasks/importtasks.py +++ b/app/tasks/importtasks.py @@ -389,7 +389,7 @@ def makeVCSRelease(id, branch): try: filename = randomString(10) + ".zip" - destPath = os.path.join("app/public/uploads", filename) + destPath = os.path.join(app.config["UPLOAD_DIR"], filename) with open(destPath, "wb") as fp: repo.archive(fp, format="zip") @@ -424,7 +424,7 @@ def importRepoScreenshot(id): sourcePath = gitDir + "/screenshot." + ext if os.path.isfile(sourcePath): filename = randomString(10) + "." + ext - destPath = os.path.join("app/public/uploads", filename) + destPath = os.path.join(app.config["UPLOAD_DIR"], filename) shutil.copyfile(sourcePath, destPath) ss = PackageScreenshot() diff --git a/app/utils.py b/app/utils.py index 102219d..5d1c8da 100644 --- a/app/utils.py +++ b/app/utils.py @@ -46,6 +46,8 @@ def randomString(n): return ''.join(random.choice(string.ascii_lowercase + \ string.ascii_uppercase + string.digits) for _ in range(n)) +assert(os.path.isdir(app.config["UPLOAD_DIR"]), "UPLOAD_DIR must exist") + def doFileUpload(file, fileType, fileTypeDesc): if not file or file is None or file.filename == "": flash("No selected file", "error") @@ -73,7 +75,7 @@ def doFileUpload(file, fileType, fileTypeDesc): file.stream.seek(0) filename = randomString(10) + "." + ext - file.save(os.path.join("app/public/uploads", filename)) + file.save(os.path.join(app.config["UPLOAD_DIR"], filename)) return "/uploads/" + filename def make_flask_user_password(plaintext_str): |