diff --git a/scanner/scanner/__init__.py b/scanner/scanner/__init__.py index 3904e104..1c5e3d79 100644 --- a/scanner/scanner/__init__.py +++ b/scanner/scanner/__init__.py @@ -5,16 +5,19 @@ from contextlib import asynccontextmanager from fastapi import FastAPI from scanner.client import KyooClient -from .database import get_db, init_pool from scanner.fsscan import Scanner from scanner.providers.composite import CompositeProvider from scanner.providers.themoviedatabase import TheMovieDatabase from scanner.requests import RequestCreator, RequestProcessor -logging.basicConfig(level=logging.INFO) +from .database import get_db, init_pool +from .routers.routes import router + +logging.basicConfig(level=logging.DEBUG) logging.getLogger("watchfiles").setLevel(logging.WARNING) logging.getLogger("rebulk").setLevel(logging.WARNING) + @asynccontextmanager async def lifespan(_): async with ( @@ -33,8 +36,8 @@ async def lifespan(_): # there's no way someone else used the same id, right? is_master = await db.fetchval("select pg_try_advisory_lock(198347)") if is_master: - _ = await asyncio.create_task(scanner.scan(remove_deleted=True)) - _ = await asyncio.create_task(scanner.monitor()) + _ = asyncio.create_task(scanner.monitor()) + _ = asyncio.create_task(scanner.scan(remove_deleted=True)) yield @@ -45,3 +48,4 @@ app = FastAPI( root_path="/scanner", lifespan=lifespan, ) +app.include_router(router) diff --git a/scanner/scanner/routes.py b/scanner/scanner/routers/routes.py similarity index 63% rename from scanner/scanner/routes.py rename to scanner/scanner/routers/routes.py index 58ab3b42..eed3cfc5 100644 --- a/scanner/scanner/routes.py +++ b/scanner/scanner/routers/routes.py @@ -1,20 +1,21 @@ from typing import Annotated -from fastapi import BackgroundTasks, Depends, Security +from fastapi import APIRouter, BackgroundTasks, Depends, Security -from scanner import app -from scanner.fsscan import Scanner -from scanner.jwt import validate_bearer +from ..fsscan import Scanner +from ..jwt import validate_bearer + +router = APIRouter() -@app.put( +@router.put( "/scan", status_code=204, response_description="Scan started.", ) async def trigger_scan( tasks: BackgroundTasks, - scanner: Annotated[Scanner, Depends], + # scanner: Annotated[Scanner, Depends], _: Annotated[None, Security(validate_bearer, scopes=["scanner.trigger"])], ): """