02-01-2011, 06:04 PM | #16 | |||||
Calibre Plugins Developer
Posts: 4,636
Karma: 2162064
Join Date: Oct 2010
Location: Australia
Device: Kindle Oasis
|
Quote:
Quote:
Quote:
One "problem" I see is coming up with a list of options as to how people would want to flag those books in Calibre. Some people would use a tag, others would use a custom column like you have, there may be other ways I haven't thought of. It's almost like you want a mini rules engine for each shelf in terms of if book on this shelf, add "xxx" tag to book in Calibre, if book on this shelf, put "yyy" in the "zzz" custom column etc. Also you have in passing mentioned another issue I hadn't considered at all - multiple Goodreads user accounts with a single Calibre usage. So if a Calibre user of this plugin has multiple accounts, choosing the Goodreads account must be part of the action. And as each user could need different "actions" if we are synchronising data to Calibre (e.g. different values in a custom column) there needs to be per account customisation of those. Quote:
There could be issues when adding books to shelves too - such as books that have no ISBN, or the ISBN is not known by Goodreads (dunno how likely that is given they seem fairly confident of their database sources but it could happen I guess). Again all I can think of at the moment is to present a dialog after the add summarising the information on the books that could not be added and let the user resolve it. They have the "Search the Internet" plugin to let them find the book easily on the Goodreads site, they can then paste that into the Calibre data and then add to shelf again. Quote:
|
|||||
02-01-2011, 06:30 PM | #17 | ||
Calibre Plugins Developer
Posts: 4,636
Karma: 2162064
Join Date: Oct 2010
Location: Australia
Device: Kindle Oasis
|
Quote:
Quote:
I think it would require a direct approach from Kovid to gain approval for a metadata download plugin and justify the benefits to them. However given we have a "working" alternative from Amazon that does most of what people need I don't think there is any real priority on doing that. IMHO it is a "nice to have" to fill gaps in Amazon's data - it would be great but not critical to using Calibre today. OTOH creating features that interact with the social aspects of the Goodreads site do I believe create reasons for Calibre users to register and visit their website and is hopefully easier to justify. After all page visits are what such sites live and die on. Hopefully this "shelve" based plugin will survive in that space. Last edited by kiwidude; 02-01-2011 at 06:33 PM. |
||
Advert | |
|
02-01-2011, 08:11 PM | #18 | |||
Enthusiast
Posts: 41
Karma: 12
Join Date: Oct 2010
Device: Tablet PC
|
Quote:
Quote:
My particular use case probably isn't all too common I would think. I would think the most common use case would be to simply sync a custom read column with GoodReads. But then, it's just as easy to mark it as read per your normal calibre workflow, and then use the plugin you're creating to "export" that to GoodReads. In my case, I had need to obtain "read" data for others. If it was just myself, a custom column would have been adequate. Quote:
So I think in terms of the "add to shelf" plugin, it should be right quite often. As you said, when it's not, the search the internet plugin fills in the gap. You remove a book from a shelf with: http://www.goodreads.com/shelf/add_t...ove&book_id=id I don't see much need for the plugin to remove a book, sending them to their shelves is probably sufficient. One could argue that not allowing removal of books is best, since it prevents mishaps with a users shelves. |
|||
02-01-2011, 08:56 PM | #19 | ||||
Calibre Plugins Developer
Posts: 4,636
Karma: 2162064
Join Date: Oct 2010
Location: Australia
Device: Kindle Oasis
|
Quote:
Quote:
The question of "syncing" of course raises the issue of "who is the master". If I select a bunch of books and add to a shelf in Goodreads, that implies Goodreads is the master (as I am not removing books from my Goodreads shelf that were not in my selection). If I were to add an "Update from shelf" menu option at some point (allowing a book to be tagged or a custom column populated as discussed), what do we do about Calibre books that were tagged from a previous update but are no longer on that shelf? In the case of the "read" shelf this is hopefully less likely to happen. However if you chose to synchronise the "currently-reading" shelf, this could happen a lot. Should we leave it up to users to manually remove such tags in Calibre not now in the Goodreads list? Or do we instead call the option "Sync with shelf", choose Goodreads to be the master and automatically update other Calibre books no longer on the shelf by removing the tag value? Quote:
If I ever implement the "Update from shelf" or "Sync from shelf" option it could similarly be used to resolve mismatches in ISBN values to again retry as required without having to try to note down the offending books, manually fix up and start over. Quote:
|
||||
02-01-2011, 09:58 PM | #20 | ||
US Navy, Retired
Posts: 9,864
Karma: 13806776
Join Date: Feb 2009
Location: North Carolina
Device: Icarus Illumina XL HD, Nexus 7
|
Quote:
Quote:
Last edited by DoctorOhh; 02-04-2011 at 06:34 PM. |
||
Advert | |
|
02-04-2011, 09:54 PM | #21 |
Calibre Plugins Developer
Posts: 4,636
Karma: 2162064
Join Date: Oct 2010
Location: Australia
Device: Kindle Oasis
|
Ok, I've been working on this the last few days and here is what it looks like so far...
The initial release will focus just on pushing information into Goodreads (i.e. updating your shelves in Goodreads with books from Calibre). So here is the functionality implemented to date in the plugin: When you first start after installing the plugin, the only option you will have in the menu is "Customize plugin", which will take you to this dialog, showing the result of a user being setup: As you can see I am supporting the possiiblity of multiple Goodreads accounts for users sharing the same machine logon. The very first time you create a "user profile" for the plugin you just give it a name (to appear in submenus if you have multiple of them), click the Authorize button and confirm in the launched Goodreads web page as I described in an earlier post. At that point it will display a list of the shelves you can work with. In a future version this dialog could be expanded to support "actions" associated with each shelf for an "Update from Goodreads" menu option I have mentioned previously, like "add tag xxx" or "put value yyy in custom column yyy". The add to/remove from shelf actions will attempt to do as few API calls as possible, reading the contents of the shelf and then only updating for books in your Calibre selection that it needs to. However one of the big problems mentioned previously is missing ISBNs (or total lack thereof for some books). At the moment, after the action I display this summary dialog: Here you can see information on the results of the add or remove action. You also have the opportunity to update the ISBN value to do a retry with various right-clicks to help get the data you need. However this is only part of the longer term approach. I think what I need to do is add a custom column to Calibre containing the "Goodreads Id" and populate it as the plugin works with your selected books. That way any books which genuinely do not have an ISBN can still be "matched" and not have to ask the user repeatedly. It will also over time reduce the number of API calls being made as at the moment for every ISBN I have to lookup the Goodreads Id before making another call to add to the shelf. With that in place I should be able to have some additional functionality on that summary dialog such as using the Goodreads API to search for books matching title/author, display in a popup and allow you to choose. The "View shelf" option just launches a web browser with the selected shelf displayed in Goodreads. It is fully functional at the moment, but as I am about to commit surgery on it to investigate the custom column approach I'm not making it available to play with as yet. Thoughts/suggestions welcomed. |
02-04-2011, 10:18 PM | #22 |
creator of calibre
Posts: 43,850
Karma: 22666666
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
|
See add_custom_book_data in database2 that's an API specifically for use by plugins.
|
02-04-2011, 10:25 PM | #23 |
Calibre Plugins Developer
Posts: 4,636
Karma: 2162064
Join Date: Oct 2010
Location: Australia
Device: Kindle Oasis
|
|
02-15-2011, 09:20 AM | #24 |
Calibre Plugins Developer
Posts: 4,636
Karma: 2162064
Join Date: Oct 2010
Location: Australia
Device: Kindle Oasis
|
Development update
Here are a bunch of screenshots from the latest version. I've changed the flow a bit from my original ideas on it but the basic fundamentals are still the same of add/remove to shelves, syncing from shelves, and managing the links between a Calibre book and an equivalent in Goodreads.
The "Sync from shelf" functionality has made it into this first version, I decided it was too much fun to leave out. It allows you to specify a number of actions to be performed for each shelf, such as adding/removing tags, or adding/removing values from custom columns. So for instance you could set a #read Y/N custom column to Y for books on your 'read' shelf on Goodreads when you sync from it. I'm pretty much done with the development other than fixing any bugs and addressing any suggestions for usability improvements to menus/dialogs etc. So if you fancy giving it a test, please drop me a PM with your e-mail. It's about 3,000 lines of code and certainly the most complex plugin I have written to date so there's bound to be something I have missed along the way... |
02-18-2011, 08:01 AM | #25 |
Calibre Plugins Developer
Posts: 4,636
Karma: 2162064
Join Date: Oct 2010
Location: Australia
Device: Kindle Oasis
|
Thanks to all of you who PM'd me - you should have the latest beta version that I sent just now. If you don't receive it please check your spam filters etc. Once I get your feedback with any changes I hope to release the plugin on this forum sometime this week.
|
02-18-2011, 07:25 PM | #26 |
Enthusiast
Posts: 41
Karma: 12
Join Date: Oct 2010
Device: Tablet PC
|
I think alot of people will be pleased with this plugin. Kiwidude did an amazing job with it.
It's making my life as "house librarian" alot easier already. It's very cool to be able to keep our GoodReads shelves and "read" status in sync with Calibre now. Huge thanks to Kiwidude for all his hard work and late nights spent on this one! |
02-19-2011, 03:27 AM | #27 |
Book Worm
Posts: 116
Karma: 158766
Join Date: Dec 2010
Device: Kindle Paperwhite, iPad Air, iPad Mini, iPod Touch 5
|
This looks like an amazing plugin. Thanks for your hard work.
One quick question - will it also work with Mac OS Snow Leopard? Thanks. |
02-19-2011, 04:32 AM | #28 | |
Calibre Plugins Developer
Posts: 4,636
Karma: 2162064
Join Date: Oct 2010
Location: Australia
Device: Kindle Oasis
|
Quote:
Thanks for the support guys, I can't deny this plugin being many long days of work to develop. We seem to be on the home stretch with it now though fingers crossed. |
|
02-19-2011, 10:52 AM | #29 |
Enthusiast
Posts: 41
Karma: 12
Join Date: Oct 2010
Device: Tablet PC
|
See, I told you it would be simple
|
02-20-2011, 06:21 AM | #30 |
Book Worm
Posts: 116
Karma: 158766
Join Date: Dec 2010
Device: Kindle Paperwhite, iPad Air, iPad Mini, iPod Touch 5
|
Tested it on my imac and it works perfectly.
Thanks very much. |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Wanted: Plug-in to do ODPS via DropBox | Frank Lowney | Plugins | 9 | 02-07-2011 10:09 AM |
Is goodreads.com up? | KenJackson | General Discussions | 15 | 01-02-2011 12:34 AM |
Anyone else here on Goodreads? | davidhburton | General Discussions | 13 | 04-25-2010 09:28 AM |
Goodreads! | Gideon | News | 13 | 08-14-2008 02:43 PM |