github vavallee/bindery v1.49.0

56 minutes ago

Find any setting from the Settings search, filter the Books page by language, see the files inside an audiobook folder, pick how often the library is scanned and log in to a qBittorrent that sits behind a proxy. The Calibre import stops tracking backup formats, library scans now attach a book's other ebook formats on their own, and downloads remember which format they were for. Adds database migrations 124 to 128, which run on startup. The first start after updating also reads the language from the ebook files of books that have none, once, in the background.

Added

  • Settings search finds individual settings (#3059, #3718). The search box in Settings now matches a setting's label, its setting key and its help text, not just tabs and section headings. Picking a result scrolls to the field, highlights it and puts the cursor in it, and the link is shareable, for example /settings?tab=metadata#metadata.primary_provider. Covers the stored settings on General, Metadata, Root Folders, Calibre, API Keys and Logs.
  • Language filter on the Books page (#1160, #3724). Filters now has a Language list with the languages your library holds and how many books are in each, plus No language for books without one. Handy for finding the books that came in the wrong language. The books API takes language= too, and GET /book/languages lists the counts. Thanks Kedryn73 for the request.
  • Library scan fills in a missing book language from the file (#1160, #3721). When a scan matches an EPUB or Kindle file to a book with no language, the book now takes the language the file declares. Languages from your metadata source or your own edits are never touched. Books already in your library get one pass on the first start after updating.
  • File names on the book page (#3579, #3707). An audiobook is stored as a folder, so the file section only showed the folder path. It now lists every file inside the folder, with sizes, under that row. Thanks lssjbrolli for the request.
  • Library scan interval setting (#3692, #3710). Settings, General now has a Library scan picker, from every 15 minutes to every 7 days. It still defaults to 6 hours, and a change applies after the next restart. Asked for on Discord by kickbut101.
  • Basic auth for proxied qBittorrent (#3693, #3703). If your qBittorrent sits behind a reverse proxy that wants a username and password first, like a lot of seedboxes, there is now an optional "Proxy login" section on the qBittorrent client form. Bindery sends it with every request, including the connection test, next to the normal qBittorrent login, and only to the host and scheme you configured. Thanks Duckburg-Net for the report (#3668).
  • Edit a saved OIDC provider in place (#3749). Each provider in Settings has an Edit button that opens its form filled in, including a new Allowed groups field (one group per line). Leave the client secret blank to keep the saved one. Before this the only way to change a provider was to remove it and add it again, which also dropped its allowed groups. Two safety rules come with it: a save that leaves out allowed groups keeps the saved ones (only clearing the list empties them), and changing a provider's issuer needs its client secret again, so a saved secret is never sent to a different identity provider.

Changed

  • Library scan picks up the other ebook formats of a book (#1357, #3722). An AZW3 or MOBI sitting next to a book's EPUB with the same name is now added to that book as another format, instead of landing on the Import page for you to adopt by hand. A new folder holding both formats attaches both in one scan. Import, From a folder also stops hiding an ebook as already imported when the book only has it in a different format. Same name PDFs and notes files are still treated as companions, a second copy in the same format is still left alone, and nothing is deleted. Thanks ThatDeltaGuy for the request.
  • Faster Books page and Calibre import start (#3724, #3727, #3731). Two new database indexes. Filtering the Books page to a language that only part of your library is in is roughly four times faster on a big library, and the language counts and default page load a bit quicker too. Every Calibre import, the daily sync included, now starts about eight times faster on a library that has been syncing for a while.

Fixed

  • Calibre import no longer tracks files Bindery can't use (#3630, #3727). The library import used to add a book file for every format Calibre lists, so the ORIGINAL_EPUB backups that Polish and Fix EPUB keep showed up as ebooks you couldn't open, remap or deliver, and came back after you removed them. It now tracks only the formats the library scan accepts plus PRC, KEPUB and AAC, and your next Calibre import stops tracking the backups that imports from v1.35.0 on picked up. Backups picked up by v1.32.2 to v1.34.x aren't cleared automatically, but you can remove them by hand and they now stay removed. Nothing is deleted from disk, and rows a download, a scan or you added are left alone. Thanks an0t8 for the clear report.
  • Downloads remember which format they were for (#1964, #3716). A grab now records whether it was the ebook or the audiobook, and the importer uses that instead of guessing from the release title or the client category. This matters most for books you want in both formats, where a release with no format in its name could not be told apart. Downloads from before this update keep working the way they did.
  • Transmission audiobook destination (#2499, #3714). Transmission now honours the audiobook category as an absolute download directory, so audiobook grabs can land in their own folder. The queue progress view also sees torrents in both folders. Thanks amura11 for the request.
  • Transmission polls fetch the torrent list once (#3714, #3730). With an audiobook category set, the import poll and the stall check pulled the whole torrent list from Transmission once per category, and the import poll sometimes a third time. They now fetch it once and filter locally with the same matching rule, which halves the work on big sessions.
  • Purging a user no longer deletes other accounts' books (#3559, #3704). If someone else owned a book under one of the purged user's authors, the purge used to take it along. Now those books stay, and the author goes to the account that owns them (or becomes shared when several accounts do). The Delete user dialog says how many books are kept.
  • Merging authors says when a pen name could not be kept (#3565, #3708). Alias names are unique across the instance, so if another author already holds the merged author's name, the merge used to succeed without recording it and tell you nothing. The merge response now lists those names in AliasesSkipped and the server logs a warning.
  • ABS import stops asking Hardcover about series it cannot link (#2173, #3720). When two series in your library share a name, usually one from the Calibre import and one from the ABS import, the Hardcover series link used to give up and the item was searched again on every run. Now the series that already holds the book wins, and when neither does the item is remembered and retried on the same monthly schedule as a miss instead of every night. These failed links are now counted as seriesLinkFailed on the abs import complete log line and in the run summary JSON, instead of hiding behind failed: 0. Thanks gavinmcfall for the report.
  • Variant spelling of the author in an Author - Title file (#3494, #3701). A file like Dostoyevsky - Notes from Underground.epub in a Dostoevsky folder is no longer matched to a catalogue row named after the author. The title side is used instead.
  • Readable warning and error text in the light theme (#3084, #3537). Amber warnings and update notes, rose error lines and sky status text across Settings, book detail, rename files and Wanted measured 2.9 to 4.3:1 on light, under the 4.5:1 that text needs. They now use a darker shade in the light theme (4.6:1 and up); the dark theme is unchanged. Thanks francisrath.
  • Readable link and button text on hover in the light theme (#3084, #3709). Author, book and title links in Authors, Books, Wanted and import turned emerald 500 or 600 on hover, 2.3 to 3.5:1 on light, and the remove buttons for an alias, a pending download and a Hardcover link turned a lighter red or rose than they rest at. They now use a darker shade on hover in the light theme (4.5:1 and up); the dark theme is unchanged. Thanks francisrath.
  • Settings tabs open at the top (#3740). Switching tabs in Settings, from the sidebar or the section picker on a phone, used to keep the old scroll position, so the new tab's heading could start off screen. Links to a single setting still land on that setting.
  • Book page searches show their answer (#3743). After "Search ebook indexers", the results (or the "No indexers configured" note) now scroll fully into view instead of stopping just below the fold. "Automatic search" says whether it started, was refused or failed right beside its button, so the click never looks like it did nothing.
  • Interactive search works for non admin accounts again (#3743). On the book page it used to fail with "admin role required" and show no results for user role accounts.
  • You can no longer delete your own account (#3741). The server refuses it, and on the Users page Delete is greyed out on your own row and on the last admin's, with a tooltip saying why. Reset password still works there.
  • Setup asks for a library folder first (#3742). The setup banner and the Setup progress strip now start with "Add a root folder" when there is nowhere for imports to go, ahead of the indexer and download client, with a link to Settings, Root Folders. It counts as done as soon as a root folder exists or the folder BINDERY_LIBRARY_DIR points at is mounted and writable, so installs that already use that folder are not asked. Only admins see the step, since only they can add one.
  • Authors sort sticks (#3747). Picking a sort now closes the Sort menu on every list page that has one (Authors, Books, Wanted and the books on an author page). On the Authors page the sort is also remembered across reloads the way grid or table view already was, and a sort in the link still wins when there is one. Links to /authors keep their sort, search and page instead of dropping them on the way to the Authors page.
  • OpenLibrary titles and descriptions come in clean (#3744). A title like "Light Bringer (Duplicate of OL31211W)" now loses the merge queue note, and books already stored with one get fixed once on the next start (titles you locked are left alone). A description that opens or closes with a stray quote, like Golden Son's, loses it too; properly quoted text is kept.
  • No more machine tags in a book's genre chips (#3746). OpenLibrary mixes catalogue tags like "seriesRed Rising Trilogy", "nyt:hardcover-fiction=2015-01-25", "place:Mars" and "person:Darrow" into its subjects, and they showed up as genres on the book page. They are dropped when metadata comes in and hidden on books that already have them, and the next save stores the clean list.
  • Audio format notes come off OpenLibrary titles (#3748). A work titled "Acts of War [Unabridged Audiobook]", "[Audiobook]" or "(Audio CD)" now shows as plain "Acts of War". Only the title changes: the book still gets your default format, the same as before.
  • Author search stops offering audiobook cast lists as authors (#3750). Searching "John Scalzi" used to list OpenLibrary records like "Tavia Gilbert, William Dufris, John Scalzi" next to the real author. Records that name three or more people now sort below single authors, and are left out entirely when the exact author is in the results. Names like "Martin Luther King, Jr." are still one person.
  • Adding or removing an OIDC provider no longer wipes the others (#3749). Settings sent every saved provider it had not added in the same visit back with a blank issuer, client ID and scopes and no allowed groups, so adding or removing one provider broke all the others until they were set up again. It now sends each one back exactly as saved, and Bindery refuses a save that would clear a saved provider's issuer or client ID. If a provider stopped working after such a change, edit it and fill in its issuer, client ID and client secret again.
  • Another ebook format found by the library scan now fills a missing book language too (#1357, #1160, #3745). When a scan added an AZW3 or MOBI beside the EPUB a book already tracks, it skipped the language check the other scan matches do, so a book with no language stayed blank even when that file declared one. It now takes the file's language the same way, and still only when the book has none.
  • Deleting a book or an author with its files removes an ebook that sits inside another book's folder (#3561, #3684). The file was left on disk, untracked, while the delete reported success. The other book's own files stay protected. Thanks NopeCharon for the fix.
  • A drop folder handoff no longer overwrites another book's file (#3562, #3685). When two books rendered to the same name, the second handoff deleted the first book's file before the external tool had picked it up, and that download then waited for a library scan that would never find it. Only an earlier drop of the same book is replaced now. Anything else at that name stays, and the new file gets a (2) style suffix. Thanks NopeCharon for the fix.

Don't miss a new bindery release

NewReleases is sending notifications on new releases.