View Single Post
Old 10-01-2011, 12:44 PM   #272
kiwidude
Calibre Plugins 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,732
Karma: 2197770
Join Date: Oct 2010
Location: Australia
Device: Kindle Oasis
Quote:
Originally Posted by ElMiko View Post
kiwidude, thank you for your hard work on all your plugins. Top-notch all around (Reading List, in particular, makes me feel all warm and fuzzy)!
Thanks for the kind words, very much appreciated.
Quote:
Originally Posted by ElMiko View Post
I have a couple of questions on sync-ing functionality, and I'd be grateful if you could provide some additional color.

1) Is it possible to sync from Calibre to Goodreads? That is, versus sync-ing from Goodreads to Calibre. Would the technical process for transferring metadata such as Rating and Date Read be different from the process for transferring Title & Author via the "Add to shelf" command?

2)Is it possible to sync your personal Rating data from Goodreads to Calibre? By that, I don't mean the general "Edit Metadata" command, but rather strictly through a Goodreads sync (and applying your rating not the average Goodreads rating).
The answer to both these questions is unfortunately no, currently. It has been asked for a couple of times and if you read back a half dozen pages or so you can see some of the mentions of it.

I agree they are good ideas and clearly things others would find useful. As I have mentioned previously my hesitation around such functionality was (a) my lack of knowledge of the "reviews" part of the Goodreads API, and (b) a concern that it would increase the number of API calls that the plugin makes, because their API isn't really designed to "optimally" do the things you mention. There are restrictions issues by Goodreads on their API about how many calls per second you can do to their website, and at the time I wrote this plugin I wasn't sure if it was going to turn into some incredibly popular thing that would immeditely get it banned so I took a conservative approach.

As I mentioned in this post I do actually use this plugin myself nowadays and wholeheartedly agree with others that sticking to "what minimises the calls to Goodreads" is unfortunately partially in conflict with "what would make this plugin easier to use with less steps". To be brutally honest it needs a rethinking from scratch, and that is something I haven't had the time or energy to do as there has always been other plugin priorities. It *will* happen one day.

A quick re-read of this thread and some of the changes to look at would be:
  • when adding to a shelf, being able to specify the review data of date read & rating, either manually or pulled from calibre columns. Might be limited to the "read" shelf.
  • when syncing from a shelf, offering the option to retrieve the rating and date read into calibre columns. Might be limited to the "read" shelf. May also support retrieving the review text into a comments column as well.
  • support indicating that you "own" a book (if the Goodreads API supports this)
  • trying to find a slightly easier way to "switch editions", for when your linked book isn't the best choice (e.g. it has zero pages, different cover edition etc). Right now I do this by bringing up the Linked Book dialog, doing a Search, clicking on the "Editions" hyperlink on the page, clicking "Switching to that edition" on the website, then dragging back onto the Linked book dialog.
  • offering an option for users to sync from multiple shelves at once. Not something I would use (I only use a "read" shelf) but I can understand how others with more shelves would find it painful to choose each in turn.
  • offering an option for users to add to multiple shelves at once. Again not something I personally would use but I understand why some would.
  • offering a way to do a bulk "link to goodreads", rather than presenting the dialog one at a time. This is a bit less important given the Goodreads Metadata plugin offers a bulk way to link, but if users don't want to use that or wish more control this could be useful.
  • revisiting how the Add to shelf dialog works. Currently when you select books it calls Goodreads to download the contents of your shelf, so it can tell you whether the book is already on the shelf or not. However if you know you are adding books to a shelf for the first time then it slows you down particularly if there are a lot of books on that shelf. Perhaps it would be better to just not do that check and just show a message afterwards if it was already on that shelf.
  • perhaps supporting actions for when you *add* to a shelf, not just when you sync from it. This might control some of the behaviour above. Right now you have to Sync from a shelf to have any tags or whatever updated. But in fact you could define like a macro a set of actions to take place when you add a book to a particular shelf. For instance when adding to my Read shelf I could put in place rules that do all the following:
    - set my "#read" custom column to yes
    - set my "#dateread" column to today
    - remove a tag of to-read
    Taking that a step further, maybe it isn't an "add to shelf" action at all, and is just some new menu option of "My Actions" or whatever that your script appears on under a name like "Mark book as read". Then it could have additional steps such as:
    - add to my "read" Goodreads shelf
    - upload rating to Goodreads review
    - upload #dateread column to Goodreads review
    - remove from my reading list plugin list called "Reading"

As you can see I'm open to radical suggestions to make this a bit more user friendly rather than API focused like it is currently.
kiwidude is offline   Reply With Quote