| 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"} |
|
|