File size: 1,598 Bytes
8085c3a 209f3c1 d9c02b8 259a469 00dbde6 22e2a01 f0f1724 6b3ac63 d35b63b d9c02b8 259a469 00dbde6 22e2a01 f0f1724 6b3ac63 209f3c1 d9c02b8 259a469 00dbde6 c0257ae f0f1724 40861f3 d9c02b8 b5d3bc8 a322e0f 40861f3 e9ea4c6 d9c02b8 d35b63b 6638d42 d9c02b8 b20936b 9bfca98 d9c02b8 fcb5197 259a469 00dbde6 22e2a01 f0f1724 06d5cb1 f0f1724 b5d3bc8 40861f3 58f45ba fcb5197 d365237 | 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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | 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"}
|