mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
...
This commit is contained in:
parent
bd4ee5c3e9
commit
785c357da2
@ -11,7 +11,7 @@ import struct, re, os
|
|||||||
from calibre import replace_entities
|
from calibre import replace_entities
|
||||||
from calibre.utils.date import parse_date
|
from calibre.utils.date import parse_date
|
||||||
from calibre.ebooks.mobi import MobiError
|
from calibre.ebooks.mobi import MobiError
|
||||||
from calibre.ebooks.metadata import MetaInformation
|
from calibre.ebooks.metadata import MetaInformation, check_isbn
|
||||||
from calibre.ebooks.mobi.langcodes import main_language, sub_language, mobi2iana
|
from calibre.ebooks.mobi.langcodes import main_language, sub_language, mobi2iana
|
||||||
|
|
||||||
NULL_INDEX = 0xffffffff
|
NULL_INDEX = 0xffffffff
|
||||||
@ -80,7 +80,9 @@ class EXTHHeader(object): # {{{
|
|||||||
elif idx == 103:
|
elif idx == 103:
|
||||||
self.mi.comments = content.decode(codec, 'ignore')
|
self.mi.comments = content.decode(codec, 'ignore')
|
||||||
elif idx == 104:
|
elif idx == 104:
|
||||||
self.mi.isbn = content.decode(codec, 'ignore').strip().replace('-', '')
|
raw = check_isbn(content.decode(codec, 'ignore').strip().replace('-', ''))
|
||||||
|
if raw:
|
||||||
|
self.mi.isbn = raw
|
||||||
elif idx == 105:
|
elif idx == 105:
|
||||||
if not self.mi.tags:
|
if not self.mi.tags:
|
||||||
self.mi.tags = []
|
self.mi.tags = []
|
||||||
@ -94,6 +96,16 @@ class EXTHHeader(object): # {{{
|
|||||||
pass
|
pass
|
||||||
elif idx == 108:
|
elif idx == 108:
|
||||||
self.mi.book_producer = content.decode(codec, 'ignore').strip()
|
self.mi.book_producer = content.decode(codec, 'ignore').strip()
|
||||||
|
elif idx == 112: # dc:source set in some EBSP amazon samples
|
||||||
|
try:
|
||||||
|
content = content.decode(codec).strip()
|
||||||
|
isig = 'urn:isbn:'
|
||||||
|
if content.lower().startswith(isig):
|
||||||
|
raw = check_isbn(content[len(isig):])
|
||||||
|
if raw and not self.mi.isbn:
|
||||||
|
self.mi.isbn = raw
|
||||||
|
except:
|
||||||
|
pass
|
||||||
elif idx == 113:
|
elif idx == 113:
|
||||||
pass # ASIN or UUID
|
pass # ASIN or UUID
|
||||||
elif idx == 116:
|
elif idx == 116:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user