mirror of
				https://github.com/kovidgoyal/calibre.git
				synced 2025-10-31 02:27:01 -04:00 
			
		
		
		
	fix exth bug when no exth present
This commit is contained in:
		
							parent
							
								
									b817c151b5
								
							
						
					
					
						commit
						ebdf1e0558
					
				| @ -17,8 +17,6 @@ from calibre.ebooks.mobi import MobiError | |||||||
| from calibre.ebooks.mobi.writer import rescale_image, MAX_THUMB_DIMEN | from calibre.ebooks.mobi.writer import rescale_image, MAX_THUMB_DIMEN | ||||||
| from calibre.ebooks.mobi.langcodes import iana2mobi | from calibre.ebooks.mobi.langcodes import iana2mobi | ||||||
| 
 | 
 | ||||||
| import struct |  | ||||||
| 
 |  | ||||||
| class StreamSlicer(object): | class StreamSlicer(object): | ||||||
| 
 | 
 | ||||||
|     def __init__(self, stream, start=0, stop=None): |     def __init__(self, stream, start=0, stop=None): | ||||||
| @ -110,7 +108,7 @@ class MetadataUpdater(object): | |||||||
|         self.original_exth_records = {} |         self.original_exth_records = {} | ||||||
|         if not have_exth: |         if not have_exth: | ||||||
|             self.create_exth() |             self.create_exth() | ||||||
|         else: |             self.have_exth = True | ||||||
|         # Fetch timestamp, cover_record, thumbnail_record |         # Fetch timestamp, cover_record, thumbnail_record | ||||||
|         self.fetchEXTHFields() |         self.fetchEXTHFields() | ||||||
| 
 | 
 | ||||||
| @ -191,9 +189,9 @@ class MetadataUpdater(object): | |||||||
|         # self.hexdump(self.record0) |         # self.hexdump(self.record0) | ||||||
| 
 | 
 | ||||||
|         # Fetch the existing title |         # Fetch the existing title | ||||||
|         title_offset, = struct.unpack('>L', self.record0[0x54:0x58]) |         title_offset, = unpack('>L', self.record0[0x54:0x58]) | ||||||
|         title_length, = struct.unpack('>L', self.record0[0x58:0x5c]) |         title_length, = unpack('>L', self.record0[0x58:0x5c]) | ||||||
|         title_in_file, = struct.unpack('%ds' % (title_length), self.record0[title_offset:title_offset + title_length]) |         title_in_file, = unpack('%ds' % (title_length), self.record0[title_offset:title_offset + title_length]) | ||||||
| 
 | 
 | ||||||
|         # Adjust length to accommodate PrimaryINDX if necessary |         # Adjust length to accommodate PrimaryINDX if necessary | ||||||
|         mobi_header_length, = unpack('>L', self.record0[0x14:0x18]) |         mobi_header_length, = unpack('>L', self.record0[0x14:0x18]) | ||||||
| @ -256,7 +254,7 @@ class MetadataUpdater(object): | |||||||
|     def get_pdbrecords(self): |     def get_pdbrecords(self): | ||||||
|         pdbrecords = [] |         pdbrecords = [] | ||||||
|         for i in xrange(self.nrecs): |         for i in xrange(self.nrecs): | ||||||
|             offset, a1,a2,a3,a4 = struct.unpack('>LBBBB', self.data[78+i*8:78+i*8+8]) |             offset, a1,a2,a3,a4 = unpack('>LBBBB', self.data[78+i*8:78+i*8+8]) | ||||||
|             flags, val = a1, a2<<16|a3<<8|a4 |             flags, val = a1, a2<<16|a3<<8|a4 | ||||||
|             pdbrecords.append( [offset, flags, val] ) |             pdbrecords.append( [offset, flags, val] ) | ||||||
|         return pdbrecords |         return pdbrecords | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user