@Noughty - those are all good sensible comments.
Although in this particular situation there is a slightly "unique" situation of using binary compare. For any other kind of duplicate comparison, you are going to have to open each of conflicting formats to decide which you want to keep (if you care about keeping your "best" version of a format). Which by its nature means it is a very manual, time consuming operation as you suggest above.
However for binary duplicates, the user is able to "with impunity" remove all but one of those conflicting book formats, no need to open, the files are binary identical. The problem is that by definition these duplicated files are going to have to be on different calibre book records, so just doing "Remove specific format" on all but one record is not going to be sufficient. Instead what the user *actually* wants is the whole book record deleted.
Now as soon as you start talking about deleting book records, you are back into the scenario I have been trying to explain to decide *which* book record should be kept. Because in reality in the vast majority of cases (imo) there is probably "something" different about them, hence you can't automate the decision as to which should be deleted.
I come back to my questions several posts ago - how did the user get themselves into a situation where they apparently have hundreds or thousands of book rows that are binary duplicates? That has the smell to me of someone making a massive mistake of some kind with their calibre library?
I would expect that a binary comparison for most users would at most produce only a handful of matches, since there are other safeguards in calibre such as duplicate dialog warnings. While it would be possible (via automerge settings set to create new book on duplicate) to circumvent that, how could you possibly manage to do it for hundreds of books? Maybe if you have added books from lots of different sources, with slightly different filenames? In which case we are back again to my point that if the title or author differ the plugin cannot decide which to keep for you.
Those questions are not meant in any way as ridicule btw - they are just curiosity. And because I consider it so rare and the suggested "fix" not being relevant to what I consider the majority of scenarios it isn't something I will change the plugin for.
|