Files

55 lines
1.7 KiB
Python

import os
from pathlib import Path
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.staticfiles import StaticFiles
from server.routes.adb import router as adb_router
from server.routes.auth import router as auth_router
from server.routes.catalog import router as catalog_router
from server.routes.covers import router as covers_router
from server.routes.device import router as device_router
from server.routes.downloads import router as downloads_router
from server.routes.live import router as live_router
from server.routes.play import router as play_router
from server.routes.proxy import router as proxy_router
from server.routes.session import router as session_router
from server.services.downloads import downloads
def create_app() -> FastAPI:
app = FastAPI(title="RaptDrama")
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_methods=["*"],
allow_headers=["*"],
)
app.include_router(auth_router)
app.include_router(session_router)
app.include_router(adb_router)
app.include_router(device_router)
app.include_router(catalog_router)
app.include_router(covers_router)
app.include_router(downloads_router)
app.include_router(play_router)
app.include_router(live_router)
app.include_router(proxy_router)
@app.on_event("startup")
def start_downloads() -> None:
downloads.start()
@app.get("/health")
def health():
return {"ok": True}
static_dir = os.environ.get("RAPTD_STATIC", "").strip()
if static_dir and Path(static_dir).is_dir():
app.mount("/", StaticFiles(directory=static_dir, html=True), name="ui")
return app
app = create_app()