From 61d86446ed2dd86a9c9a064b80d0303edee7b93b Mon Sep 17 00:00:00 2001 From: Richie Cahill Date: Fri, 12 Jun 2026 14:46:00 -0400 Subject: [PATCH] reworked ebook_search routers --- python/ebook_search/api/main.py | 10 ++++++---- python/ebook_search/api/routes/__init__.py | 17 ++++++----------- python/ebook_search/api/routes/admin.py | 9 --------- python/ebook_search/api/routes/page.py | 9 --------- python/ebook_search/api/routes/search.py | 10 +--------- 5 files changed, 13 insertions(+), 42 deletions(-) diff --git a/python/ebook_search/api/main.py b/python/ebook_search/api/main.py index 9be6d99..b6c3a62 100644 --- a/python/ebook_search/api/main.py +++ b/python/ebook_search/api/main.py @@ -14,7 +14,7 @@ from sqlalchemy.orm import Session from python.common import configure_logger 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.bm25_corpus import ensure_bm25_corpus from python.ebook_search.config import load_config @@ -55,9 +55,11 @@ def create_app() -> FastAPI: app.state.config.answer_enabled, len(app.state.config.library_paths), ) - register_page_routes(app) - register_search_routes(app) - register_admin_routes(app) + + app.include_router(admin_router) + app.include_router(page_router) + app.include_router(search_router) + return app diff --git a/python/ebook_search/api/routes/__init__.py b/python/ebook_search/api/routes/__init__.py index a6e49ca..b1fc051 100644 --- a/python/ebook_search/api/routes/__init__.py +++ b/python/ebook_search/api/routes/__init__.py @@ -1,16 +1,11 @@ """EPUB search web route modules.""" -from python.ebook_search.api.routes import admin, page, search - -register_admin_routes = admin.register_admin_routes -register_page_routes = page.register_page_routes -register_search_routes = search.register_search_routes +from python.ebook_search.api.routes.admin import router as admin_router +from python.ebook_search.api.routes.page import router as page_router +from python.ebook_search.api.routes.search import router as search_router __all__ = [ - "admin", - "page", - "register_admin_routes", - "register_page_routes", - "register_search_routes", - "search", + "admin_router", + "page_router", + "search_router", ] diff --git a/python/ebook_search/api/routes/admin.py b/python/ebook_search/api/routes/admin.py index ff83239..4a14875 100644 --- a/python/ebook_search/api/routes/admin.py +++ b/python/ebook_search/api/routes/admin.py @@ -4,7 +4,6 @@ from __future__ import annotations import logging from dataclasses import replace -from typing import TYPE_CHECKING from fastapi import APIRouter, Request 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.ingest import ingest_configured_paths -if TYPE_CHECKING: - from fastapi import FastAPI - logger = logging.getLogger(__name__) router = APIRouter(prefix="/admin") 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) def admin(request: Request) -> HTMLResponse: """Render the admin page.""" diff --git a/python/ebook_search/api/routes/page.py b/python/ebook_search/api/routes/page.py index 8e48867..b92b881 100644 --- a/python/ebook_search/api/routes/page.py +++ b/python/ebook_search/api/routes/page.py @@ -3,7 +3,6 @@ from __future__ import annotations import logging -from typing import TYPE_CHECKING from fastapi import APIRouter, Request from fastapi.responses import HTMLResponse @@ -13,19 +12,11 @@ from sqlalchemy.orm import Session from python.ebook_search.api.web import templates from python.orm.richie import EbookSource -if TYPE_CHECKING: - from fastapi import FastAPI - logger = logging.getLogger(__name__) router = APIRouter() -def register_page_routes(app: FastAPI) -> None: - """Register page routes on the app.""" - app.include_router(router) - - @router.get("/", response_class=HTMLResponse) def index(request: Request) -> HTMLResponse: """Render the search page.""" diff --git a/python/ebook_search/api/routes/search.py b/python/ebook_search/api/routes/search.py index 77ed022..235dee2 100644 --- a/python/ebook_search/api/routes/search.py +++ b/python/ebook_search/api/routes/search.py @@ -5,7 +5,7 @@ from __future__ import annotations import logging from dataclasses import replace from time import perf_counter -from typing import TYPE_CHECKING, Annotated +from typing import Annotated from fastapi import APIRouter, Form, Request 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.timing import runtime_step_from_start -if TYPE_CHECKING: - from fastapi import FastAPI - logger = logging.getLogger(__name__) 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) def search( request: Request,