What's new
Hide books at the user level. Got a big library full of stuff you've collected but don't actually want to read? Hit the new eye-icon on any book detail page and the book disappears from your index, search, OPDS feeds, magic shelves, and KOReader sync — for your user only. Other users on the same instance still see it. Resolves #64.
How to use it
- Open any book's detail page.
- Click the eye-close icon (next to the Archive button).
- Book disappears from your library views.
- Visit
/hiddento see what you've hidden, click the eye-open icon to bring a book back.
Why this is different from archive
Archive is a sync-pause / Kobo-state mechanism — it tells your devices to stop syncing the book. Hide is a personal-library declutter — book stays fully synced and accessible to other users; you just don't see it. They're separate tables, separate semantics, you can use either independently.
docker pull ghcr.io/new-usemame/calibre-web-nextgen:v4.0.32
Or use :latest. Existing data preserved.
Regression coverage
10 new unit tests pin the model invariants (per-user × book_id uniqueness, multi-user same-book OK), the common_filters() signature + actual SQL output (the NOT IN clause carries the user's hidden book ids), and the route shape. The allow_show_hidden=True escape hatch on the /hidden listing is pinned by an explicit test — without it, users couldn't see what they hid in order to unhide it, defeating the whole feature.
Credits
Reporter: operator (fork issue #64).