Spaces:
Running
Running
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 = [] | |
def index() -> FileResponse: | |
return FileResponse(path="static/index.html", media_type="text/html") | |
def new_card(pull: int, saved: int) -> Dict[str, Union[Details, str]]: | |
card_logs.append({ | |
"pull": pull, | |
"saved": saved, | |
"timestamp": strftime('%Y-%m-%dT%H:%M:%SZ', gmtime()) | |
}) | |
details: Details = rand_details() | |
return { | |
"details": details, | |
"image": get_image(details["energy_type"]), | |
} | |
def stats() -> Dict[str, Union[int, object]]: | |
return {**get_stats(), **{"cards_served": len(card_logs)}} | |
def logs() -> List[str]: | |
return card_logs | |