Spaces:
Sleeping
Sleeping
| """FastAPI application factory.""" | |
| import os | |
| import uvicorn | |
| from fastapi import FastAPI | |
| from fastapi.middleware.cors import CORSMiddleware | |
| from fastapi.staticfiles import StaticFiles | |
| from starlette.middleware.sessions import SessionMiddleware | |
| from torrent2drive.config import STATIC_DIR | |
| from torrent2drive.routes import register_routes | |
| from torrent2drive.session import start_gc_loop | |
| def create_app() -> FastAPI: | |
| application = FastAPI(title="Torrent2Space") | |
| application.add_middleware( | |
| CORSMiddleware, | |
| allow_origins=["*"], | |
| allow_methods=["*"], | |
| allow_headers=["*"], | |
| ) | |
| application.add_middleware( | |
| SessionMiddleware, | |
| secret_key=os.environ.get("SESSION_SECRET", "torrent2space-change-me"), | |
| same_site="lax", | |
| ) | |
| register_routes(application) | |
| assets_dir = os.path.join(STATIC_DIR, "assets") | |
| if os.path.isdir(assets_dir): | |
| application.mount("/assets", StaticFiles(directory=assets_dir), name="assets") | |
| if os.path.isdir(STATIC_DIR): | |
| application.mount("/static", StaticFiles(directory=STATIC_DIR), name="static") | |
| return application | |
| app = create_app() | |
| start_gc_loop() | |
| def main(): | |
| uvicorn.run( | |
| "torrent2drive.app:app", | |
| host="0.0.0.0", | |
| port=int(os.environ.get("PORT", "7860")), | |
| reload=os.environ.get("T2D_RELOAD", "").lower() in ("1", "true", "yes"), | |
| ) | |
| if __name__ == "__main__": | |
| main() | |