Update HTML templates and JavaScript for FastAPI compatibility
- Replace Flask url_for() with direct /static/ paths in all HTML templates - Update CSS and JavaScript file references to use FastAPI static mount - Convert Flask-specific template patterns to FastAPI-compatible syntax - Update JavaScript API endpoints to match new FastAPI route structure: * /api/series -> /api/v1/anime * /api/search -> /api/v1/anime/search * /api/rescan -> /api/v1/anime/rescan - Add web interface routes for serving HTML templates - Add template response endpoints for /app, /login, /setup, /queue - Mark HTML template and JavaScript migration tasks as completed - Maintain Jinja2 template compatibility with FastAPI
This commit is contained in:
@@ -26,7 +26,7 @@ sys.path.insert(0, os.path.abspath(parent_dir))
|
||||
from fastapi import FastAPI, HTTPException, Depends, Security, status, Request
|
||||
from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
from fastapi.responses import JSONResponse
|
||||
from fastapi.responses import JSONResponse, HTMLResponse
|
||||
from fastapi.staticfiles import StaticFiles
|
||||
from fastapi.templating import Jinja2Templates
|
||||
from pydantic import BaseModel, Field
|
||||
@@ -375,6 +375,27 @@ async def root():
|
||||
"""Root endpoint redirect to docs."""
|
||||
return {"message": "AniWorld API", "documentation": "/docs", "health": "/health"}
|
||||
|
||||
# Web interface routes
|
||||
@app.get("/app", response_class=HTMLResponse)
|
||||
async def web_app(request: Request):
|
||||
"""Serve the main web application."""
|
||||
return templates.TemplateResponse("base/index.html", {"request": request})
|
||||
|
||||
@app.get("/login", response_class=HTMLResponse)
|
||||
async def login_page(request: Request):
|
||||
"""Serve the login page."""
|
||||
return templates.TemplateResponse("base/login.html", {"request": request})
|
||||
|
||||
@app.get("/setup", response_class=HTMLResponse)
|
||||
async def setup_page(request: Request):
|
||||
"""Serve the setup page."""
|
||||
return templates.TemplateResponse("base/setup.html", {"request": request})
|
||||
|
||||
@app.get("/queue", response_class=HTMLResponse)
|
||||
async def queue_page(request: Request):
|
||||
"""Serve the queue page."""
|
||||
return templates.TemplateResponse("base/queue.html", {"request": request})
|
||||
|
||||
# Anime endpoints (protected)
|
||||
@app.get("/api/anime/search", response_model=List[AnimeResponse], tags=["Anime"])
|
||||
async def search_anime(
|
||||
|
||||
Reference in New Issue
Block a user