Quote:
Originally Posted by kiwidude
This is a preview before an official 1.1 release. I would greatly appreciate it if a few people could give it a sanity check before I release it in the plugins forum thread. There have been a significant number of internal changes so I would rather get any problems found here first 
|
Looks good. Certainly haven't been able to break it yet.
Two thoughts:
- I suggested that you use delete_first = True when calling add_multiple_custom_book_data. After reading the posts about using a restriction on binary matching, I am no longer convinced I was right. If I run the check over my entire library, all values are cached. If I then run it over a restricted set, all values are thrown away except the small set. Next time I run it over the full library, all must be recomputed. This seems suboptimal.

The thought in using the delete first was to clean the cache, but I think I just demonstrated that we really don't want to do that.
- The author match algorithm seems to operate only on first authors. For fun I duplicated a book then swapped the author names, and it isn't found as a dup. Should it, or should it compare author-by-author? Continuing on the same vein, if I am doing an author-only dup check, shouldn't I be looking only at authors and shouldn't each author be taken into account?
For example, assume I have two books titled Xyzzy, one by "Blogs, Joe & Angstrom, Alice" and one by "Angstrom, Alice & Blogs, Joe". In one school of thought, these books have identical titles and identical authors, yet no title+author search option will find them. This could be fixed by creating an entry in the candidates map for each author, not just the first author. Note that if this is done, the algorithm would decide that Xyzzy by "A, B & C, D" matches Xyzzy by "C, D", which I think is the right answer.
Another example: again I have two books, one by "Blogs, Joe & Angstrom, Alice" and another by "Anngstrom, Alice". I do a search by author, ignoring title. I would expect a soundex search to put these two books into a group because they share an author that matches soundex but is spelled differently. This is a different case than above, because I am explicitly looking for authors; order should be irrelevant. Like above, this can be fixed by creating an entry in the candidate map for each author, not just the first author.