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