Search and import correctness. Automatic search no longer grabs another author's book for a title that is not out yet, tries the next release when another book holds the best one, and keeps a blocklist entry to its own book. Imports no longer carry another book's file into a folder, and usenet job folders are cleaned up. Interactive search labels multi-book packs, and Import from a folder gets a folder browser. Adds database migrations 119 and 120, which run on startup; an install with pending or blocklist rows left over from deleted books upgrades cleanly.
Added
- Multi-book packs are labelled in interactive search (#3247, #3642). A release that looks like several books now shows a Multi-book pack label with the words it matched, sorts below the single books, and asks before you grab it from the book page or the Wanted page, since Bindery will not import a pack on its own. Automatic search still skips packs. Bindery also recognises three more pack shapes: a range right after the wanted book's title or its series name ("Dominion of Blades 1-2", "[Heart of Texas 01-03]"), and a list of the author's titles separated by semicolons ("The Firm; The Appeal; The Chamber"). A part, disc or track range such as "Dune CD 1-12" and a long track count such as "Dune 1-49" are not packs. Thanks foobarbigtime for the proposal and kennethp1015 for the examples.
- Folder browser for Import from a folder (#3608, #3644). A Browse folders button next to the path box lists your library and download folders as Bindery sees them, so you can click down to the folder you want instead of copying a path from another file manager. It only shows folders manual import could already read. Thanks daruuuna for the request.
Fixed
- Automatic search no longer grabs another author's book, or a different book by the same author, for a title that is not out yet (#3615, #3640). A release that credits someone else with "by" is now rejected even when its name does not start with the wanted title, as in "The Last Ride by Nick Louth" for "Last Ride" or "Smoke & Mirrors by E A Copen" for "Smoke and Mirrors". A release that carries only the part of the title before the colon and then goes on into a different title credited to the same author, such as "Halo: Oblivion by Troy Denning" for "Halo: Fireteam Noble", is rejected too. A release that names its narrator right before the author with no "by" or "read by", such as "Project Hail Mary Ray Porter - Andy Weir", is no longer picked automatically for a book whose title has a colon, though it still shows in interactive search. Thanks KlumbsyD for the report.
- Automatic search tries the next release when another book holds the best one (#3564, #3643). When two books want the same release, for example the same work under two author rows or in two accounts, the scheduled search used to stop at a release another book was already downloading or had imported and leave the book wanted. It now passes that release over and grabs the next approved one. Pending releases are also kept per book, so a release held back by a delay profile for one book is held for the other book too instead of being folded into the first book's entry. A pending entry whose release another book has since imported is removed rather than left in Pending.
- A blocklist entry for one book no longer blocks that release for every book (#3563, #3645). When a release was blocklisted for one book, because its quality or metadata profile refused the file or because someone blocklisted a grab or an import of it from that book's History, search refused the release for every other book that wanted it too, including another account's book whose profile allowed it. Automatic and interactive search now apply such an entry to its own book only. A release the download client failed as broken or reported stalled, a failed or stalled download blocklisted from History, and anything imported from Readarr's blocklist, is still blocked for every book. Settings, Blocklist shows which entries apply to their own book and which to all books. Existing entries are sorted the same way when you upgrade.
- Reorganize no longer carries another book's file away with an audiobook folder (#3556, #3638). When an audiobook folder also holds a file a different book tracks, Rename files now shows it as an error that names the file to move out and leaves the folder in place, instead of moving it and leaving that other book pointing at a path that no longer exists. An audiobook import no longer joins an ebook folder that also holds another book's ebook and gets a folder of its own instead. With import mode set to move, Fix match of such an audiobook folder is refused up front, before the file is detached from its book, and the Fix match dialog no longer offers that move. Copy and hardlink imports leave the folder where it is and go ahead as before.
- Reorganize no longer moves an ebook into another book's folder (#3599, #3641). When a book's naming template renders its ebook inside a folder a different book tracks (that book's audiobook folder, say), Rename files now shows the file as Destination exists with the reason and leaves it where it is. Moving it there would have let a later Reorganize of that folder carry the ebook away from its book. The Fix match destination preview reports the same, matching the import, which already refuses that destination.
- Usenet job folders no longer pile up after import (#3647, #3649). When a SABnzbd or NZBGet release came with extras such as an .nfo, a cover .jpg or a .url, the job folder stayed in the completed folder forever after the book was moved into the library. Once every book file in the job has imported, Bindery now deletes those extras and the folder. A folder holding anything else, such as a book that was not imported or a file type it does not recognise, is kept and the log names the file. Torrent downloads, partial imports, copy mode and the download client's own completed and category folders are never touched.