ai-pokemon-card / app.py
Ron Au
fix(typing): Convert to Python <3.9 types 🥲
360c090
raw
history blame
1.02 kB
from typing import Dict, List, 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