New GET /v1/me/page-search surfacing the analysis worker's output: - repo::page_analysis::page_search + PageSearchQuery: multi-tag AND across (user page_tags ∪ global page_auto_tags) via the unnest double-negative idiom, weighted OCR/scene text ranking (ts_rank over search_doc), and content-warning include/exclude. One row per page with is_nsfw + deduped content_warnings + rank. - domain::PageSearchItem. - api::page_tags: /me/page-search handler with CSV tag/warning parsing (parse_tags_csv reuses normalize_tag; parse_warnings_csv validates the closed vocabulary), requiring at least one positive filter (422 else). This is where the reserved OCR text search lands for pages. Tests: multi-tag AND user∪auto, speech>sfx ranking, cw include/exclude (+ row flags), text-only (no tags), missing-filter 422, unknown-warning 422, auth required. Note: the /me/page-tags/chapters|mangas aggregations keep single-tag behavior + the reserved text=501 for now; page-level search is the primary text surface. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
46 lines
1.3 KiB
Rust
46 lines
1.3 KiB
Rust
pub mod admin_audit;
|
|
pub mod api_token;
|
|
pub mod author;
|
|
pub mod bookmark;
|
|
pub mod chapter;
|
|
pub mod collection;
|
|
pub mod genre;
|
|
pub mod manga;
|
|
pub mod page;
|
|
pub mod page_analysis;
|
|
pub mod page_tag;
|
|
pub mod patch;
|
|
pub mod read_progress;
|
|
pub mod session;
|
|
pub mod sync_state;
|
|
pub mod tag;
|
|
pub mod upload_entry;
|
|
pub mod user;
|
|
pub mod user_preferences;
|
|
|
|
pub use admin_audit::AdminAuditEntry;
|
|
pub use api_token::ApiToken;
|
|
pub use author::{Author, AuthorRef, AuthorWithCount};
|
|
pub use bookmark::{Bookmark, BookmarkSummary};
|
|
pub use chapter::Chapter;
|
|
pub use collection::{Collection, CollectionPageItem, CollectionSummary};
|
|
pub use genre::{Genre, GenreRef};
|
|
pub use manga::{Manga, MangaCard, MangaDetail};
|
|
pub use page::Page;
|
|
pub use page_analysis::{
|
|
AnalysisStatus, ContentWarning, OcrKind, OcrResult, PageAnalysis, PageSearchItem,
|
|
SafetyFlag, VisionAnalysis,
|
|
};
|
|
pub use page_tag::{
|
|
NewPageTag, PageTagSummary, TaggedChapterAggregate, TaggedMangaAggregate,
|
|
TaggedPageItem,
|
|
};
|
|
pub use patch::Patch;
|
|
pub use read_progress::{ReadProgress, ReadProgressForManga, ReadProgressSummary};
|
|
pub use session::Session;
|
|
pub use sync_state::{ChapterSyncState, MangaSyncState};
|
|
pub use tag::{Tag, TagRef};
|
|
pub use upload_entry::UploadEntry;
|
|
pub use user::User;
|
|
pub use user_preferences::UserPreferences;
|