api / main.py
Hana Celeste
Update main.py
40861f3 verified
from fastapi import FastAPI, Query
from fastapi import HTTPException
from contextlib import asynccontextmanager
from app.enka_logic import EnkaApp
from app.akasa_logic import AkasaApp
from app.fetch import Fetcher
from app.discord_logic import DiscordApp
from app.byps_logic import BypsApp
from app.gscode_logic import GenshinCodeLogic
enka = EnkaApp()
akasa = AkasaApp()
fetcher = Fetcher()
discord_app = DiscordApp()
byps = BypsApp()
gscode = GenshinCodeLogic()
@asynccontextmanager
async def lifespan(app: FastAPI):
await enka.start()
await akasa.start()
await fetcher.start()
await discord_app.start()
await byps.start()
await gscode.start()
yield
await fetcher.stop()
await akasa.stop()
await enka.stop()
await discord_app.stop()
await byps.stop()
await gscode.stop()
app = FastAPI(lifespan=lifespan)
@app.get("/info")
async def get_info(uid: str):
return await enka.fetch_info(uid)
@app.get("/gen")
async def get_gen(uid: str, char: str = None):
return await enka.fetch_gen(uid, char)
@app.get("/akasa")
async def refresh_akasa(uid: str):
return await akasa.refresh_akasha(uid)
@app.get("/fetch")
async def fetch_url(url: str):
return await fetcher.fetch(url)
@app.get("/discord-info")
async def get_discord_info(uid: str):
return await discord_app.get_user_info(uid)
@app.get("/api/byps")
async def api_bypass(url: str):
return await byps.fetch(url)
@app.get("/genshin-codes")
async def genshin_codes():
return await gscode.fetch_codes()
@app.get("/")
def home():
return {"status": "online"}