Use fastapi router

This commit is contained in:
Zoe Roux 2025-05-12 13:03:14 +02:00
parent c2ca1361fe
commit f8331c083a
No known key found for this signature in database
2 changed files with 15 additions and 10 deletions

View File

@ -5,16 +5,19 @@ from contextlib import asynccontextmanager
from fastapi import FastAPI from fastapi import FastAPI
from scanner.client import KyooClient from scanner.client import KyooClient
from .database import get_db, init_pool
from scanner.fsscan import Scanner from scanner.fsscan import Scanner
from scanner.providers.composite import CompositeProvider from scanner.providers.composite import CompositeProvider
from scanner.providers.themoviedatabase import TheMovieDatabase from scanner.providers.themoviedatabase import TheMovieDatabase
from scanner.requests import RequestCreator, RequestProcessor 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("watchfiles").setLevel(logging.WARNING)
logging.getLogger("rebulk").setLevel(logging.WARNING) logging.getLogger("rebulk").setLevel(logging.WARNING)
@asynccontextmanager @asynccontextmanager
async def lifespan(_): async def lifespan(_):
async with ( async with (
@ -33,8 +36,8 @@ async def lifespan(_):
# there's no way someone else used the same id, right? # there's no way someone else used the same id, right?
is_master = await db.fetchval("select pg_try_advisory_lock(198347)") is_master = await db.fetchval("select pg_try_advisory_lock(198347)")
if is_master: if is_master:
_ = await asyncio.create_task(scanner.scan(remove_deleted=True)) _ = asyncio.create_task(scanner.monitor())
_ = await asyncio.create_task(scanner.monitor()) _ = asyncio.create_task(scanner.scan(remove_deleted=True))
yield yield
@ -45,3 +48,4 @@ app = FastAPI(
root_path="/scanner", root_path="/scanner",
lifespan=lifespan, lifespan=lifespan,
) )
app.include_router(router)

View File

@ -1,20 +1,21 @@
from typing import Annotated from typing import Annotated
from fastapi import BackgroundTasks, Depends, Security from fastapi import APIRouter, BackgroundTasks, Depends, Security
from scanner import app from ..fsscan import Scanner
from scanner.fsscan import Scanner from ..jwt import validate_bearer
from scanner.jwt import validate_bearer
router = APIRouter()
@app.put( @router.put(
"/scan", "/scan",
status_code=204, status_code=204,
response_description="Scan started.", response_description="Scan started.",
) )
async def trigger_scan( async def trigger_scan(
tasks: BackgroundTasks, tasks: BackgroundTasks,
scanner: Annotated[Scanner, Depends], # scanner: Annotated[Scanner, Depends],
_: Annotated[None, Security(validate_bearer, scopes=["scanner.trigger"])], _: Annotated[None, Security(validate_bearer, scopes=["scanner.trigger"])],
): ):
""" """