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