From 978940d2cb3d23a2effcab2394960ba56fb7e094 Mon Sep 17 00:00:00 2001 From: GRiker Date: Fri, 5 Mar 2010 12:09:24 -0800 Subject: [PATCH] GwR fix for mbp annotation parsing --- src/calibre/devices/kindle/driver.py | 11 +++++------ src/calibre/library/catalog.py | 4 ---- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/src/calibre/devices/kindle/driver.py b/src/calibre/devices/kindle/driver.py index 8714bb87da..b1ec52d214 100644 --- a/src/calibre/devices/kindle/driver.py +++ b/src/calibre/devices/kindle/driver.py @@ -185,7 +185,7 @@ class Bookmark(): from calibre.ebooks.metadata.mobi import StreamSlicer user_notes = {} if self.bookmark_extension == 'mbp': - MAGIC_MOBI_CONSTANT + MAGIC_MOBI_CONSTANT = 150 with open(path,'rb') as f: stream = StringIO(f.read()) data = StreamSlicer(stream) @@ -234,9 +234,6 @@ class Bookmark(): displayed_location=displayed_location, type=entry_type, text=text) - #print " %2d: %s %s" % (current_entry, entry_type,'at %d' % location if location else '') - #if current_block == 'text_block': - #self.textdump(text) eo += rec_len + 8 current_entry += 1 @@ -246,11 +243,13 @@ class Bookmark(): while sig == 'BKMK': # Fix start location for Highlights using BKMK data end_loc, = unpack('>I', data[eo+0x10:eo+0x14]) - if end_loc in user_notes and user_notes[end_loc]['type'] != 'Note': + if end_loc in user_notes and user_notes[end_loc]['type'] == 'Highlight': start, = unpack('>I', data[eo+8:eo+12]) user_notes[start] = user_notes[end_loc] user_notes.pop(end_loc) - #print "changing start location of %d to %d" % (end_loc,start) + elif end_loc in user_notes and user_notes[end_loc]['type'] == 'Note': + # Skip duplicate bookmarks for notes + pass else: # If a bookmark coincides with a user annotation, the locs could # be the same - cheat by nudging -1 diff --git a/src/calibre/library/catalog.py b/src/calibre/library/catalog.py index 64523a87d5..78b50dda58 100644 --- a/src/calibre/library/catalog.py +++ b/src/calibre/library/catalog.py @@ -13,7 +13,6 @@ from calibre.customize import CatalogPlugin from calibre.customize.conversion import OptionRecommendation, DummyReporter from calibre.ebooks.BeautifulSoup import BeautifulSoup, BeautifulStoneSoup, Tag, NavigableString from calibre.ptempfile import PersistentTemporaryDirectory -from calibre.utils.logging import Log from calibre.utils.date import isoformat, now as nowf FIELDS = ['all', 'author_sort', 'authors', 'comments', @@ -3929,9 +3928,6 @@ class EPUB_MOBI(CatalogPlugin): return result.renderContents(encoding=None) - def magicKindleLocationCalculator(self,offset): - return offset/150 + 1 - def processSpecialTags(self, tags, this_title, opts): tag_list = [] for tag in tags: