"""FastAPI application entry point.""" import asyncio from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from backend.config import settings from backend.api import upload, split, status, download, websocket, formats, info from backend.services import progress_publisher app = FastAPI( title="Audio Splitter Web API", description="Web interface for splitting audio files using a tracklist", version="0.1.0", ) # CORS middleware app.add_middleware( CORSMiddleware, allow_origins=settings.allow_origins, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) @app.on_event("startup") async def startup_event(): """Store the main event loop for use in other threads.""" progress_publisher.MAIN_LOOP = asyncio.get_running_loop() # Include routers app.include_router(upload.router) app.include_router(split.router) app.include_router(status.router) app.include_router(download.router) app.include_router(websocket.router) app.include_router(formats.router) # new app.include_router(info.router) # new @app.get("/") async def root(): return {"status": "ok", "service": "Audio Splitter Web API"} @app.get("/health") async def health(): return {"status": "healthy"}