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 import prints
from calibre.constants import iswindows from calibre.constants import iswindows
from calibre.ptempfile import TemporaryDirectory 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 from calibre.utils.ipc.simple_worker import fork_job, WorkerError
#_isbn_pat = re.compile(r'ISBN[: ]*([-0-9Xx]+)') #_isbn_pat = re.compile(r'ISBN[: ]*([-0-9Xx]+)')
@ -134,6 +135,15 @@ def get_metadata(stream, cover=True):
if 'xmp_metadata' in info: if 'xmp_metadata' in info:
from calibre.ebooks.metadata.xmp import consolidate_metadata from calibre.ebooks.metadata.xmp import consolidate_metadata
mi = consolidate_metadata(mi, info['xmp_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: if cdata:
mi.cover_data = ('jpeg', cdata) mi.cover_data = ('jpeg', cdata)
return mi return mi

View File

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