diff --git a/index.py b/index.py index 3aeb927..021d4d1 100644 --- a/index.py +++ b/index.py @@ -8,6 +8,7 @@ from random import choices from string import ascii_letters, digits, punctuation from sys import argv from typing import Dict +from datetime import datetime from logging.handlers import TimedRotatingFileHandler import logging import coloredlogs @@ -90,10 +91,20 @@ async def handle_file(request: Request) -> FileResponse: if not info: return Response(status_code=404) + expire = info.get("expire", None) + if expire and expire <= int(datetime.now().timestamp()): + logger.info(f"File {name} expired on {expire}") + flist.pop(name) + + with open("flist.json", "w") as f: + json.dump(flist, f) + + return Response(status_code=404) + if info.get("key", "") != key: logger.info(f"Incorrect key for file {name} from {req_ip}") return Response(status_code=404) - + fpath: str = info.get("path", "") if not fpath or not path.exists(fpath): logger.info(f"File {name} does not exist at {fpath}")