Fix recently read on windows in catalog

This commit is contained in:
Kovid Goyal 2010-02-26 10:47:58 -07:00
commit 5e068530cd

View File

@ -586,6 +586,10 @@ class EPUB_MOBI(CatalogPlugin):
self.__generateForKindle = True if (self.opts.fmt == 'mobi' and \ self.__generateForKindle = True if (self.opts.fmt == 'mobi' and \
self.opts.output_profile and \ self.opts.output_profile and \
self.opts.output_profile.startswith("kindle")) else False self.opts.output_profile.startswith("kindle")) else False
self.__generateRecentlyRead = True if self.opts.generate_recently_added \
and self.opts.connected_kindle \
and self.generateForKindle \
else False
self.__genres = None self.__genres = None
self.__genre_tags_dict = None self.__genre_tags_dict = None
self.__htmlFileList = [] self.__htmlFileList = []
@ -610,7 +614,7 @@ class EPUB_MOBI(CatalogPlugin):
self.__totalSteps += 2 self.__totalSteps += 2
if self.opts.generate_recently_added: if self.opts.generate_recently_added:
self.__totalSteps += 2 self.__totalSteps += 2
if self.opts.connected_kindle: if self.generateRecentlyRead:
self.__totalSteps += 2 self.__totalSteps += 2
# Accessors # Accessors
@ -733,6 +737,13 @@ class EPUB_MOBI(CatalogPlugin):
self.__generateForKindle = val self.__generateForKindle = val
return property(fget=fget, fset=fset) return property(fget=fget, fset=fset)
@dynamic_property @dynamic_property
def generateRecentlyRead(self):
def fget(self):
return self.__generateRecentlyRead
def fset(self, val):
self.__generateRecentlyRead = val
return property(fget=fget, fset=fset)
@dynamic_property
def genres(self): def genres(self):
def fget(self): def fget(self):
return self.__genres return self.__genres
@ -917,7 +928,8 @@ class EPUB_MOBI(CatalogPlugin):
self.generateHTMLByTitle() self.generateHTMLByTitle()
if self.opts.generate_recently_added: if self.opts.generate_recently_added:
self.generateHTMLByDateAdded() self.generateHTMLByDateAdded()
self.generateHTMLByDateRead() if self.generateRecentlyRead:
self.generateHTMLByDateRead()
self.generateHTMLByTags() self.generateHTMLByTags()
from calibre.utils.PythonMagickWand import ImageMagick from calibre.utils.PythonMagickWand import ImageMagick
@ -932,7 +944,8 @@ class EPUB_MOBI(CatalogPlugin):
self.generateNCXByTitle("Titles") self.generateNCXByTitle("Titles")
if self.opts.generate_recently_added: if self.opts.generate_recently_added:
self.generateNCXByDateAdded("Recently Added") self.generateNCXByDateAdded("Recently Added")
self.generateNCXByDateRead("Recently Read") if self.generateRecentlyRead:
self.generateNCXByDateRead("Recently Read")
self.generateNCXByGenre("Genres") self.generateNCXByGenre("Genres")
self.writeNCX() self.writeNCX()
return True return True
@ -1196,7 +1209,7 @@ class EPUB_MOBI(CatalogPlugin):
def get_bookmark_data(self, path): def get_bookmark_data(self, path):
''' Return the timestamp and last_read_location ''' ''' Return the timestamp and last_read_location '''
with open(path) as f: with open(path,'rb') as f:
stream = StringIO(f.read()) stream = StringIO(f.read())
data = StreamSlicer(stream) data = StreamSlicer(stream)
self.timestamp, = unpack('>I', data[0x24:0x28]) self.timestamp, = unpack('>I', data[0x24:0x28])
@ -1253,7 +1266,7 @@ class EPUB_MOBI(CatalogPlugin):
self.book_length = 0 self.book_length = 0
return return
# Read the book len from the header # Read the book len from the header
with open(book_fs) as f: with open(book_fs,'rb') as f:
self.stream = StringIO(f.read()) self.stream = StringIO(f.read())
self.data = StreamSlicer(self.stream) self.data = StreamSlicer(self.stream)
self.nrecs, = unpack('>H', self.data[76:78]) self.nrecs, = unpack('>H', self.data[76:78])
@ -1283,7 +1296,7 @@ class EPUB_MOBI(CatalogPlugin):
N+=length N+=length
print result print result
if self.opts.connected_kindle: if self.generateRecentlyRead:
self.opts.log.info(" Collecting Kindle bookmarks matching catalog entries") self.opts.log.info(" Collecting Kindle bookmarks matching catalog entries")
d = BookmarkDevice(None) d = BookmarkDevice(None)