from fastapi import FastAPI, Request from fastapi.responses import JSONResponse from App import bot from .Users.UserRoutes import user_router from .modelInit import models, database from .Transcription.TranscriptionRoutes import transcription_router from .Streaming.StreamingRoutes import streaming_router from .UserTranscriptions.UserTranscriptionsRoutes import user_transcriptions_router from .Monitor.monitorRoutes import monitor_router from fastapi.middleware.cors import CORSMiddleware from fastapi_jwt_auth.exceptions import AuthJWTException import logging, orm # Configure logging logging.basicConfig( level=logging.DEBUG, format="%(asctime)s - %(levelname)s - %(message)s", datefmt="%Y-%m-%d %H:%M:%S", ) app = FastAPI() origins = ["*"] app.add_middleware( CORSMiddleware, allow_origins=origins, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) @app.exception_handler(AuthJWTException) def authjwt_exception_handler(request: Request, exc: AuthJWTException): return JSONResponse(status_code=exc.status_code, content={"detail": exc.message}) @app.on_event("startup") async def startup_event(): # await bot.start(bot_token="6183919505:AAEhHFt4mI18bQeAf2Lj7AePXFRPVLrOFM8") # await upload_bot.start() # await models.create_all() # await create_async_model(models) if not database.is_connected: await database.connect() print("connected!") @app.on_event("shutdown") async def shutdown_event(): await bot.session.save() await bot.disconnect() # await upload_bot.stop() if not database.is_connected: await database.disconnect() print("shutting down!") @app.get("/") async def landing_page(): return {"code": 200, "message": "we are back!"} app.include_router(user_router) app.include_router(transcription_router) app.include_router(streaming_router) app.include_router(monitor_router) app.include_router(user_transcriptions_router)