-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
40 lines (31 loc) · 1023 Bytes
/
main.py
File metadata and controls
40 lines (31 loc) · 1023 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import glob
import importlib
from contextlib import asynccontextmanager
import socketio
from fastapi import FastAPI
from fastapi.middleware.gzip import GZipMiddleware
from fastapi.staticfiles import StaticFiles
from services.db import DBService
from services.plugin import PluginService
from services.socketio import sio
@asynccontextmanager
async def lifespan(app: FastAPI):
PluginService.loadPlugins()
await DBService.run()
yield
fastAPI = FastAPI(
lifespan=lifespan,
title="Qua",
summary="くあちゃん今日もかわいいね🥰",
description="A document of qua (14channel backend system)",
)
fastAPI.mount("/static", StaticFiles(directory="static"), "static")
fastAPI.add_middleware(GZipMiddleware, minimum_size=1000)
moduleList = glob.glob("routes/*.py")
for module in moduleList:
fastAPI.include_router(
importlib.import_module(
module.replace(".py", "").replace("\\", ".").replace("/", ".")
).router
)
app = socketio.ASGIApp(sio, fastAPI)