hfcron / backend /main.py
Ajitdoval's picture
Update backend/main.py
4c037d2 verified
Raw
History Blame Contribute Delete
1.56 kB
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from contextlib import asynccontextmanager
import asyncio
from backend.core.database import connect_to_mongo, close_mongo_connection
from backend.core.config import settings
from backend.worker.scheduler import run_scheduler
from backend.worker.telegram_bot import run_bot, send_sys_log
# Import all routers
from backend.api.auth_routes import router as auth_router
from backend.api.hf_routes import router as hf_router
from backend.api.cron_routes import router as cron_router
from backend.api.admin_routes import router as admin_router
@asynccontextmanager
async def lifespan(app: FastAPI):
# Startup: Connect to DB, start background worker AND Telethon Bot
await connect_to_mongo()
asyncio.create_task(run_scheduler())
asyncio.create_task(run_bot())
yield
# Shutdown
await send_sys_log("๐Ÿ›‘ **System Shutting Down / Restarting.**")
await close_mongo_connection()
app = FastAPI(
title=settings.PROJECT_NAME,
description="SaaS PWA for managing Hugging Face Spaces and Cron Jobs",
version="1.0.0",
lifespan=lifespan
)
# Configure CORS
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
@app.get("/")
async def root():
return {"message": "Welcome to HF Cron Manager Pro API"}
# Include all routers
app.include_router(auth_router)
app.include_router(hf_router)
app.include_router(cron_router)
app.include_router(admin_router)