From dad7fcafa4d4b2ab3fd59edb01c57a12155f0375 Mon Sep 17 00:00:00 2001 From: cbdev Date: Tue, 20 Jul 2021 23:19:55 +0200 Subject: Add size calculation --- backend/main.py | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) (limited to 'backend') diff --git a/backend/main.py b/backend/main.py index 716ca13..592b7a3 100644 --- a/backend/main.py +++ b/backend/main.py @@ -11,14 +11,13 @@ def playout(filename, content = "text/html"): def home(): return ["", [('Content-Type','text/html'), ("Location", config.homepage)], "302 Home"] -def target_filename_internal(session, file): - target = "" - if not file: - file = "" +def target_filename_internal(session, filename): + target = session["path"] + "/" + if filename: + target += filename if config.user_subdirs: - target = session["user"] + "/" - return target + session["path"] + "/" + file - + target = session["user"] + "/" + target + return target def target_filename(session, file): return config.fileroot + target_filename_internal(session, file) @@ -37,11 +36,23 @@ def resolve_alias(alias): return session def listing(session): - target = target_filename(session, None) - files = os.listdir(target) - return [json.dumps(files), [('Content-Type','application/json')], "200 OK"] + listing = {"total": 0, "files": []} + if 'r' not in session["access"]: + return ["", [('Content-Type','text/html')], "403 No"] + + directory = target_filename(session, None) + files = os.listdir(directory) + + for filename in files: + size = os.path.getsize(directory + filename) + listing["files"].append({"name": filename, "size": size}) + listing["total"] += size + + return [json.dumps(listing), [('Content-Type','application/json')], "200 OK"] def upload(session, post): + if 'c' not in session["access"]: + return ["", [('Content-Type','text/html')], "403 No"] if post["file"].filename: target = target_filename(session, os.path.basename(post["file"].filename)) try: -- cgit v1.2.3