Repository navigation
Book labels: tags, genres, subtitle, publisher, language and abridged - #145
Merged
Merged
Conversation
…er, language, abridged, genres and tags
… as layered fields; genre/tag filters, search, bulk add/remove, and the export's paths (0049)
…abridged on the book page; bulk add/remove of labels, genre and tag facets, and the export with file paths
The export keeps tags out unless asked (include=paths,tags; a row no longer names its library), the facet counts by a semi-join named by seriesName, the label filters stay in the library, an edit that changes nothing on a book leaves its row alone, 0049 re-reads only books with a metadata.json, and the kinds are the field names. One canonical-list encoder, one scanned-snapshot writer, one abridged rule; SplitGenres leaves cleaning to CleanLabels. The console shares one label chip, one isLabelField guard and cleanLabels.
A chip's x removes it in Safari and Firefox (the click no longer ends the edit first); a label typed in a bulk box without Enter goes with the edit; a private export downloads as -private.json and reads every include= value; merged rows take every copy's tags; a chosen label beyond the top 100 facets keeps its count; the label filters leave the library index alone; a genre tag is never split on a comma (a store's category holds one).
This was referenced Oct 16, 2026
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #136. Also covers the report that
/itemdoesn't expose genres, publisher, language, subtitle or abridged, and that export rows can't be tied back to items.What changes
subtitle,publisher,language,abridged(absent = unknown),genres,tags. Precedence scan -> metadata.json -> community -> edited.;and NUL, never,, since a store category like "Mystery, Thriller & Suspense" has one; placeholders like "Audiobook" dropped;metadata.json, which now reads subtitle, publisher, language, abridged (true only), genres and tags; chapters are still not read;book_labelsindex;books_ftswith genres and tags;/item, list and search books (omitempty, additive).GET /libraries/{id}/books?genre=&tag=, and search matches labels./admin/booksand facets takegenre=/tag=(the top 100 plus the chosen one);add/removefor genres and tags, merged into each book's own list.versionstays 1). Paths and the admin's own tags appear only with?include=paths,tags("Export with file paths and tags...", behind a warning, downloaded as-private.json). The default file stays safe to attach to a public meta import issue.Verification
Follow-ups (not in this PR)
Pairs with KodeStar/audiosilo-frontend (feat/book-labels). Docs: KodeStar/audiosilo-docs (docs/book-labels).