Check doi in usual info fields

This commit is contained in:
sengian 2014-02-16 22:12:48 +01:00
parent 7b3c699c7a
commit f6ed89ddb7
2 changed files with 11 additions and 2 deletions

View File

@ -9,7 +9,8 @@ from functools import partial
from calibre import prints
from calibre.constants import iswindows
from calibre.ptempfile import TemporaryDirectory
from calibre.ebooks.metadata import MetaInformation, string_to_authors, check_isbn
from calibre.ebooks.metadata import MetaInformation, string_to_authors, \
check_isbn, check_doi
from calibre.utils.ipc.simple_worker import fork_job, WorkerError
#_isbn_pat = re.compile(r'ISBN[: ]*([-0-9Xx]+)')
@ -134,6 +135,15 @@ def get_metadata(stream, cover=True):
if 'xmp_metadata' in info:
from calibre.ebooks.metadata.xmp import consolidate_metadata
mi = consolidate_metadata(mi, info['xmp_metadata'])
if 'doi' not in mi.get_identifiers().iterkeys():
for k,v in info.iteritems():
if k != 'xmp_metadata':
doi = check_doi(v)
if doi:
mi.set_identifiers({'doi':doi})
break
if cdata:
mi.cover_data = ('jpeg', cdata)
return mi

View File

@ -13,7 +13,6 @@ from collections import defaultdict
from lxml import etree
from lxml.builder import ElementMaker
from calibre import prints
from calibre import replace_entities
from calibre.ebooks.metadata import check_isbn, check_doi
from calibre.ebooks.metadata.book.base import Metadata