reworked ebook_search routers

This commit is contained in:
2026-06-12 14:46:00 -04:00
parent e14c20010f
commit 61d86446ed
5 changed files with 13 additions and 42 deletions
+6 -4
View File
@@ -14,7 +14,7 @@ from sqlalchemy.orm import Session
from python.common import configure_logger from python.common import configure_logger
from python.ebook_search.api.bm25_tasks import cancel_bm25_refresh from python.ebook_search.api.bm25_tasks import cancel_bm25_refresh
from python.ebook_search.api.routes import register_admin_routes, register_page_routes, register_search_routes from python.ebook_search.api.routes import admin_router, page_router, search_router
from python.ebook_search.api.web import STATIC_DIR from python.ebook_search.api.web import STATIC_DIR
from python.ebook_search.bm25_corpus import ensure_bm25_corpus from python.ebook_search.bm25_corpus import ensure_bm25_corpus
from python.ebook_search.config import load_config from python.ebook_search.config import load_config
@@ -55,9 +55,11 @@ def create_app() -> FastAPI:
app.state.config.answer_enabled, app.state.config.answer_enabled,
len(app.state.config.library_paths), len(app.state.config.library_paths),
) )
register_page_routes(app)
register_search_routes(app) app.include_router(admin_router)
register_admin_routes(app) app.include_router(page_router)
app.include_router(search_router)
return app return app
+6 -11
View File
@@ -1,16 +1,11 @@
"""EPUB search web route modules.""" """EPUB search web route modules."""
from python.ebook_search.api.routes import admin, page, search from python.ebook_search.api.routes.admin import router as admin_router
from python.ebook_search.api.routes.page import router as page_router
register_admin_routes = admin.register_admin_routes from python.ebook_search.api.routes.search import router as search_router
register_page_routes = page.register_page_routes
register_search_routes = search.register_search_routes
__all__ = [ __all__ = [
"admin", "admin_router",
"page", "page_router",
"register_admin_routes", "search_router",
"register_page_routes",
"register_search_routes",
"search",
] ]
-9
View File
@@ -4,7 +4,6 @@ from __future__ import annotations
import logging import logging
from dataclasses import replace from dataclasses import replace
from typing import TYPE_CHECKING
from fastapi import APIRouter, Request from fastapi import APIRouter, Request
from fastapi.responses import HTMLResponse from fastapi.responses import HTMLResponse
@@ -15,20 +14,12 @@ from python.ebook_search.api.web import templates
from python.ebook_search.embeddings import embed_missing_chunks, embedding_model_stats from python.ebook_search.embeddings import embed_missing_chunks, embedding_model_stats
from python.ebook_search.ingest import ingest_configured_paths from python.ebook_search.ingest import ingest_configured_paths
if TYPE_CHECKING:
from fastapi import FastAPI
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
router = APIRouter(prefix="/admin") router = APIRouter(prefix="/admin")
EMBED_ALL_BATCH_SIZE = 32 EMBED_ALL_BATCH_SIZE = 32
def register_admin_routes(app: FastAPI) -> None:
"""Register admin routes on the app."""
app.include_router(router)
@router.get("", response_class=HTMLResponse) @router.get("", response_class=HTMLResponse)
def admin(request: Request) -> HTMLResponse: def admin(request: Request) -> HTMLResponse:
"""Render the admin page.""" """Render the admin page."""
-9
View File
@@ -3,7 +3,6 @@
from __future__ import annotations from __future__ import annotations
import logging import logging
from typing import TYPE_CHECKING
from fastapi import APIRouter, Request from fastapi import APIRouter, Request
from fastapi.responses import HTMLResponse from fastapi.responses import HTMLResponse
@@ -13,19 +12,11 @@ from sqlalchemy.orm import Session
from python.ebook_search.api.web import templates from python.ebook_search.api.web import templates
from python.orm.richie import EbookSource from python.orm.richie import EbookSource
if TYPE_CHECKING:
from fastapi import FastAPI
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
router = APIRouter() router = APIRouter()
def register_page_routes(app: FastAPI) -> None:
"""Register page routes on the app."""
app.include_router(router)
@router.get("/", response_class=HTMLResponse) @router.get("/", response_class=HTMLResponse)
def index(request: Request) -> HTMLResponse: def index(request: Request) -> HTMLResponse:
"""Render the search page.""" """Render the search page."""
+1 -9
View File
@@ -5,7 +5,7 @@ from __future__ import annotations
import logging import logging
from dataclasses import replace from dataclasses import replace
from time import perf_counter from time import perf_counter
from typing import TYPE_CHECKING, Annotated from typing import Annotated
from fastapi import APIRouter, Form, Request from fastapi import APIRouter, Form, Request
from fastapi.responses import HTMLResponse from fastapi.responses import HTMLResponse
@@ -15,19 +15,11 @@ from python.ebook_search.api.web import templates
from python.ebook_search.search import search_ebooks from python.ebook_search.search import search_ebooks
from python.ebook_search.timing import runtime_step_from_start from python.ebook_search.timing import runtime_step_from_start
if TYPE_CHECKING:
from fastapi import FastAPI
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
router = APIRouter() router = APIRouter()
def register_search_routes(app: FastAPI) -> None:
"""Register search routes on the app."""
app.include_router(router)
@router.post("/search", response_class=HTMLResponse) @router.post("/search", response_class=HTMLResponse)
def search( def search(
request: Request, request: Request,