From c9fa1d673e34fafef47eeaba4d02f514963428ee Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 16 Aug 2008 15:41:54 -0700 Subject: [PATCH] Read series number from fb2 files --- src/calibre/ebooks/metadata/__init__.py | 2 +- src/calibre/ebooks/metadata/fb2.py | 4 ++++ src/calibre/ebooks/metadata/meta.py | 6 +++--- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/calibre/ebooks/metadata/__init__.py b/src/calibre/ebooks/metadata/__init__.py index 180a07afa8..c9468c812e 100644 --- a/src/calibre/ebooks/metadata/__init__.py +++ b/src/calibre/ebooks/metadata/__init__.py @@ -201,7 +201,7 @@ class MetaInformation(object): #: mi.cover_data = (ext, data) self.cover_data = mi.cover_data if (mi and hasattr(mi, 'cover_data')) else (None, None) self.application_id = mi.application_id if (mi and hasattr(mi, 'application_id')) else None - self.manifest = getattr(mi, 'manifest', None) + self.manifest = getattr(mi, 'manifest', None) self.toc = getattr(mi, 'toc', None) self.spine = getattr(mi, 'spine', None) self.guide = getattr(mi, 'guide', None) diff --git a/src/calibre/ebooks/metadata/fb2.py b/src/calibre/ebooks/metadata/fb2.py index 672fc3e9ee..f66a25e703 100644 --- a/src/calibre/ebooks/metadata/fb2.py +++ b/src/calibre/ebooks/metadata/fb2.py @@ -41,6 +41,10 @@ def get_metadata(stream): mi.author_sort = lastname+'; '+firstname if series: mi.series = series.get('name', None) + try: + mi.series_index = int(series.get('number', None)) + except (TypeError, ValueError): + pass if cdata: mi.cover_data = cdata return mi diff --git a/src/calibre/ebooks/metadata/meta.py b/src/calibre/ebooks/metadata/meta.py index 4fa0f180be..35d89a51be 100644 --- a/src/calibre/ebooks/metadata/meta.py +++ b/src/calibre/ebooks/metadata/meta.py @@ -12,7 +12,7 @@ from calibre.ebooks.metadata.lit import get_metadata as lit_metadata from calibre.ebooks.metadata.epub import get_metadata as epub_metadata from calibre.ebooks.metadata.html import get_metadata as html_metadata from calibre.ebooks.mobi.reader import get_metadata as mobi_metadata -from calibre.ebooks.metadata.opf import OPFReader +from calibre.ebooks.metadata.opf import OPFReader from calibre.ebooks.metadata.rtf import set_metadata as set_rtf_metadata from calibre.ebooks.lrf.meta import set_metadata as set_lrf_metadata from calibre.ebooks.metadata.epub import set_metadata as set_epub_metadata @@ -29,14 +29,14 @@ _METADATA_PRIORITIES = [ # Higher values should be used to update metadata from lower values METADATA_PRIORITIES = collections.defaultdict(lambda:0) for i, ext in enumerate(_METADATA_PRIORITIES): - METADATA_PRIORITIES[ext] = i + METADATA_PRIORITIES[ext] = i def path_to_ext(path): return os.path.splitext(path)[1][1:].lower() def metadata_from_formats(formats): mi = MetaInformation(None, None) - formats.sort(cmp=lambda x,y: cmp(METADATA_PRIORITIES[path_to_ext(x)], + formats.sort(cmp=lambda x,y: cmp(METADATA_PRIORITIES[path_to_ext(x)], METADATA_PRIORITIES[path_to_ext(y)])) for path in formats: ext = path_to_ext(path)