diff --git a/server.py b/server.py index 288ed78..95c79c6 100644 --- a/server.py +++ b/server.py @@ -19,6 +19,25 @@ from rich.logging import RichHandler from fastapi.middleware.cors import CORSMiddleware + +@contextlib.asynccontextmanager +async def startup(_): + if not CACHE_DIR.exists(): + CACHE_DIR.mkdir(parents=True) + with sqlite3.connect(CACHE_FILE) as conn: + conn.execute( + """ + CREATE TABLE IF NOT EXISTS cache ( + uuid TEXT PRIMARY KEY, + url TEXT NOT NULL, + ts INTEGER NOT NULL, + metadata TEXT NOT NULL + ) + """ + ) + yield + + logging.basicConfig( level=logging.getLevelName(os.environ.get("LOG_LEVEL", "INFO").upper()), format="%(message)s", @@ -27,6 +46,7 @@ logging.basicConfig( ) app = fastapi.FastAPI( root_path=os.environ.get("PREVIEW_ROOT_PATH", ""), + lifespan=startup ) app.add_middleware( CORSMiddleware, @@ -127,24 +147,6 @@ CACHE_FILE.touch(exist_ok=True) logging.debug("Cache file: %r", CACHE_FILE) -@contextlib.asynccontextmanager -async def startup(): - if not CACHE_DIR.exists(): - CACHE_DIR.mkdir(parents=True) - with sqlite3.connect(CACHE_FILE) as conn: - conn.execute( - """ - CREATE TABLE IF NOT EXISTS cache ( - uuid TEXT PRIMARY KEY, - url TEXT NOT NULL, - ts INTEGER NOT NULL, - metadata TEXT NOT NULL - ) - """ - ) - yield - - def upload_media(domain: str, access_token: str, file: io.BytesIO, filename: str, content_type: str): file.seek(0) logging.info(