from fastapi import FastAPI, Request from fastapi.responses import HTMLResponse from fastapi.staticfiles import StaticFiles from fastapi.templating import Jinja2Templates import chess app = FastAPI() app.mount("/static", StaticFiles(directory="static"), name="static") templates = Jinja2Templates(directory="templates") @app.get("/") def read_root(request: Request): return templates.TemplateResponse("index.html", {"request": request}) @app.post("/search") async def search(data: dict): board = chess.Board(data['fen']) return { "fen": data['fen'], "valid": board.is_valid(), "turn": "white" if board.turn else "black", "legal_moves": len(list(board.legal_moves)), "ascii": str(board) }