reworked ebook_search routers
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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",
|
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -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."""
|
||||||
|
|||||||
@@ -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."""
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user