View Single Post
Old 04-08-2011, 11:46 AM   #113
kiwidude
calibre/Sigil Developer
kiwidude ought to be getting tired of karma fortunes by now.kiwidude ought to be getting tired of karma fortunes by now.kiwidude ought to be getting tired of karma fortunes by now.kiwidude ought to be getting tired of karma fortunes by now.kiwidude ought to be getting tired of karma fortunes by now.kiwidude ought to be getting tired of karma fortunes by now.kiwidude ought to be getting tired of karma fortunes by now.kiwidude ought to be getting tired of karma fortunes by now.kiwidude ought to be getting tired of karma fortunes by now.kiwidude ought to be getting tired of karma fortunes by now.kiwidude ought to be getting tired of karma fortunes by now.
 
Posts: 4,224
Karma: 1334002
Join Date: Oct 2010
Location: London, UK
Device: Kindle Paperwhite 3G, iPad 3, iPad Air
@Noughty - the sync dialog will only perform actions for books that are linked. However it does give you a visual indication of all the books on your shelf that it has no links for. When it pops open, it will display all the books on your shelf. Of those books, some will have been linked previously (using whatever previous action in Goodreads). Others it will have on the fly linked automatically for you (by comparing ISBNs). The rest will either be books that you must manually link (you have them in Calibre with a matching title/author, but a different ISBN edition), or they are books on your shelf you have no match in Calibre for at all (there is a right-click option allowing you to make an empty book entry).

You ask can you "not change the status". Well you must have an action for the shelf to be able to sync from it. So for instance your "read" shelf. I imagine you have some column or tag in your database that you use to indicate you have read a book. Setup that rule for the "read" shelf, and go ahead and perform the sync. All the books that are linked will then have that action applied. If you have already marked them in Calibre in the same way as being read, the "sync" will do nothing. e.g. if you are setting a Yes/No column to "Y", then syncing from the "read" shelf repeatedly will make no change to the Calibre record if it already has Y on it. If however it is a book you had not yet marked as read in Calibre, then surely you actually do want it to be updated, since it is on your Goodreads "read" shelf?

It doesn't matter if it is an empty book with no formats or not, it can still be marked as "read" in this way.

If you take this approach of treating Goodreads as your "master" for a starting point, then it means that as you add new books to Calibre you will know if they already exist on a Goodreads shelf or not. Since you will have an empty book entry for them if they did exist.

However there is one gotcha and you have correctly identified it, and that is the issue of duplicates caused by adding a book to Calibre where you are not identifying the author or title exactly. If you use the "automerge" feature in Preferences->Adding books, that should take care of simple mismatches in the title like "The". That does rely on a 100% match on author though, so if indeed your other is spelt differently it will not be picked up. See the "Duplicate detection" thread if you want an in-depth understanding of how this stuff works and some proposed changes (some of which were made, the plugin however has not been developed).

But surely the duplicates issue is a problem you are going to have no matter which approach you choose? At least by choosing sync first I would have thought your starting point would mean less work for you.

As for adding to a non-exclusive shelf, it is a limitation of Goodreads that a book must exist on one of your exclusive shelves. If you don't add it to one of those, then when you add a new book to say your "science-fiction" shelf, it will also put it on your "read" shelf.

I don't mind the questions at all - in fact a few posts back in this thread we were asking for people to share how they are using the plugin. I had to design the functionality around minimising the API calls rather than necessarily what people might find the most convenient way of interacting with Goodreads. I had hoped that the two might coincide, but without yourself and others sharing the steps in your workflow it is only guesswork on my part as I don't use the plugin myself outside of testing. I hope to one day, but as I am always trashing my shelves for test purposes then unless I open a separate account it is easier to just keep it that way until I feel the need to really use it myself and hopefully the development is more complete.
kiwidude is offline   Reply With Quote