Ok, so I've had a brief read through the GoodReads API
. To be honest, oauth looks to be a *pita* to work with. I'm sure Kovid can confirm this but I don't believe Calibre uses oauth anywhere already so no quick & easy Python code for me to copy from
. Plus there is the filth of callback urls which implies having a website to callback to...
I've got a few other questions too that would probably need asking in their developer forum. For instance you have to apply for a developer key (fine), but then it says that they monitor requests and part of their t&c are that a developer key does not make more than one request per second. So how does that work with multiple users of an application such as Calibre without a centralised web server to route the requests through? I can't guarantee that no two Calibre users around the world wouldn't click at the same time!
You don't need the developer key (just oauth) to submit data to their website like the adding a book to a shelve you mentioned - but you can't get the list of shelves a user has without it. I understand they don't want their API flooded but unless I am completely missing their point I don't see how you can have a very functional application?
I'll take another look sometime when I get a chance or if someone else can help shed light on this to progress it. From what I have seen it wouldn't make sense to incorporate it into the 'Search the Internet' plugin as you suggested, it's functionality and implementation are way too different. So it would be a separate standalone plugin.
There are some very cool things that you 'could' do with the API though, for the Calibre users who are GoodReads users too. So I can understand your desire for it...