1234567891011121314151617181920212223242526272829303132333435363738394041 |
- import os
- import logging
- import asyncio
- from fastapi import FastAPI
- from fastapi.middleware.cors import CORSMiddleware
- from .api import other, game
- from .db import init_db
- from .point_gen import aiohttp_client, points
- logging.config.fileConfig('logging.conf', disable_existing_loggers=False)
- app = FastAPI()
- app.include_router(other, prefix="/terrassumptions/api")
- app.include_router(game, prefix="/terrassumptions/api/game")
- app.add_middleware(
- CORSMiddleware,
- allow_origins=["http://localhost:3000", "https://kirkleon.ddns.net", "https://hiram.services"],
- allow_methods=["*"],
- allow_headers=["*"],
- )
- restocking_task = None
- @app.on_event("startup")
- def startup():
- init_db(os.environ.get("SQLALCHEMY_URL", "sqlite:////tmp/terrassumptions.db"), connect_args={"check_same_thread": False})
- restocking_task = asyncio.create_task(points.restock_all())
- @app.on_event("shutdown")
- async def shutdown_event():
- await aiohttp_client.close()
- if restocking_task is not None and not restocking_task.done():
- restocking_task.cancel()
|