Spawned originally in the FanFictionDownLoader plugin thread I came up with a small modification for the built-in Kindle device interface plugin.

This basically takes care of updating the *.mbp file, if available, to match the *.mobi file in case its UID changes (which happens during the EPUB->MOBI conversion process with FFDL when using a Kindle).

This might be useful for other purposes or scenarios so I am posting it here. Some people suggested that it might even be a change that could be integrated into Calibre directly but I'll leave that up to Kovid etc.

Quote:

Originally Posted by cryzed

[...]There was no easy and obvious way for it to work like I wanted, so I had to implement it as a device plugin that monkey-patches the built-in "Kindle 2/3/4/Touch Device Interface".

There should be no problems when Calibre updates, as long as there are no not-backwards compatible changes to the API.

To install it first disconnect your Kindle, disable the built-in "Kindle 2/3/4/Touch Device Interface" plugin in the "Device Interface plugins" section and then install my mod. After that simply restart Calibre.

Here is the code for anyone curious. As I said, I'm not responsible for any damage that it might cause -- I can just state that it works on my end.

And to clarify again: Using this simply allows you to keep your current reading location along with other metadata when you update a story with FFDL while using a Kindle or somehow else cause its UID to change. For example you are reading a story called "XYZ" and are currently at location ABC. Now usually when you would update the story with FFDL your current location would be reset, your highlights would disappear etc. -- using this they don't.

EDIT: After some testing with my new touch-generation device (Kindle Paperwhite) my plugin seems to be obsolete. So for anyone planning to make use of this plugin: only do so if your Kindle is not a touch-generation device.

Ah yes, it is pretty much an exact copy of the built-in plugin but the settings aren't shared or automatically taken from the built-in one, you will need to reapply your customized settings if you had any.

Works perfectly! When uploading one story at a time, at least. When multiple stories are selected to be sent to the device it gives an "Error communicating with device", with the following example message:

I will take care of that tomorrow, I already have an idea what's happening. Regarding the HTML, I fear there's nothing easy I can do about that, it would require me to retrieve the current location then navigate to it and increase until the current HTML tag ends... probably. I will check that out tomorrow as well.

I replaced the *.zip file in the original post with an updated version of the script, the problem while sending multiple files to the device should now be fixed -- regarding the HTML, this is currently simply too much work for such a small flaw, a simple page forward/backwards entirely fixes it, so I won't look too much into it for now, unless there's huge interest for that (which I doubt). New source code can be found here.

Huh, I've found that the Kindle Touch does already keep the reading position if I update a fanfic with a new chapter, be it a MOBI created by FFDL or an FFDL-created EPUB that I've converted to MOBI with KindleGen (though at first glance it seems like it does not – you have to open the file once before the progress indicator in the book list is updated). Even the notes are kept, though if the author changed the summary at the beginning or edited chapters, they'll be offset a by the according number of words added or removed. Does this plugin stop this offset from happening?

I am not sure to be honest, seeing as I don't own a touch-generation device yet, you just might have to test it.

EDIT: After some testing with my new touch-generation device (Kindle Paperwhite) my plugin seems to be obsolete, you are right. So for anyone planning to make use of this plugin: only do so if your Kindle is not a touch-generation device.