ai-pokemon-card / app.py
Ron Au
refactor: V3
79743a3
raw
history blame
1.01 kB
from typing import Union
from time import gmtime, strftime
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
from fastapi.responses import FileResponse
from modules.details import Details, rand_details
from modules.dataset import get_image, get_stats
app = FastAPI(docs_url=None, redoc_url=None)
app.mount("/static", StaticFiles(directory="static"), name="static")
card_logs = []
@app.head('/')
@app.get('/')
def index() -> FileResponse:
return FileResponse(path="static/index.html", media_type="text/html")
@app.get('/new_card')
def new_card() -> dict[str, Union[Details, str]]:
card_logs.append(strftime('%Y-%m-%dT%H:%M:%SZ', gmtime()))
details: Details = rand_details()
return {
"details": details,
"image": get_image(details["energy_type"]),
}
@app.get('/stats')
def stats() -> dict[str, Union[int, object]]:
return get_stats() | {"cards_served": len(card_logs)}
@app.get('/logs')
def logs() -> list[str]:
return card_logs