grok2api-hf / app /api /pages /function.py
Codex
Add root Dockerfile for HF Space build
6bff6a1
from pathlib import Path
from fastapi import APIRouter, HTTPException
from fastapi.responses import FileResponse, RedirectResponse
from app.core.auth import is_function_enabled
router = APIRouter()
STATIC_DIR = Path(__file__).resolve().parents[3] / "_public" / "static"
def _function_page_response(relative_path: str) -> FileResponse:
file_path = STATIC_DIR / relative_path
if not file_path.exists():
raise HTTPException(status_code=404, detail="Page not found")
return FileResponse(file_path)
@router.get("/", include_in_schema=False)
async def root():
if is_function_enabled():
return RedirectResponse(url="/login")
return RedirectResponse(url="/admin/login")
@router.get("/login", include_in_schema=False)
async def function_login():
if not is_function_enabled():
raise HTTPException(status_code=404, detail="Not Found")
return _function_page_response("function/pages/login.html")
@router.get("/imagine", include_in_schema=False)
async def function_imagine():
if not is_function_enabled():
raise HTTPException(status_code=404, detail="Not Found")
return _function_page_response("function/pages/imagine.html")
@router.get("/imagine-lab", include_in_schema=False)
async def function_imagine_lab():
if not is_function_enabled():
raise HTTPException(status_code=404, detail="Not Found")
return _function_page_response("function/pages/imagine-lab.html")
@router.get("/voice", include_in_schema=False)
async def function_voice():
if not is_function_enabled():
raise HTTPException(status_code=404, detail="Not Found")
return _function_page_response("function/pages/voice.html")
@router.get("/video", include_in_schema=False)
async def function_video():
if not is_function_enabled():
raise HTTPException(status_code=404, detail="Not Found")
return _function_page_response("function/pages/video.html")
@router.get("/chat", include_in_schema=False)
async def function_chat():
if not is_function_enabled():
raise HTTPException(status_code=404, detail="Not Found")
return _function_page_response("function/pages/chat.html")