diff --git a/src/calibre/ebooks/html/input.py b/src/calibre/ebooks/html/input.py
index 059aeca324..6f875ae803 100644
--- a/src/calibre/ebooks/html/input.py
+++ b/src/calibre/ebooks/html/input.py
@@ -314,6 +314,8 @@ class HTMLInput(InputFormatPlugin):
rewrite_links, urlnormalize, urldefrag, BINARY_MIME, OEB_STYLES, \
xpath
from calibre import guess_type
+ from calibre.ebooks.oeb.transforms.metadata import \
+ meta_info_to_oeb_metadata
import cssutils
self.OEB_STYLES = OEB_STYLES
oeb = create_oebbook(log, None, opts, self,
@@ -321,15 +323,7 @@ class HTMLInput(InputFormatPlugin):
self.oeb = oeb
metadata = oeb.metadata
- if mi.title:
- metadata.add('title', mi.title)
- if mi.authors:
- for a in mi.authors:
- metadata.add('creator', a, attrib={'role':'aut'})
- if mi.publisher:
- metadata.add('publisher', mi.publisher)
- if mi.isbn:
- metadata.add('identifier', mi.isbn, attrib={'scheme':'ISBN'})
+ meta_info_to_oeb_metadata(mi, metadata, log)
if not metadata.language:
oeb.logger.warn(u'Language not specified')
metadata.add('language', get_lang().replace('_', '-'))
diff --git a/src/calibre/ebooks/metadata/html.py b/src/calibre/ebooks/metadata/html.py
index f4eaa7cc61..fd42b2882f 100644
--- a/src/calibre/ebooks/metadata/html.py
+++ b/src/calibre/ebooks/metadata/html.py
@@ -170,7 +170,27 @@ def get_metadata_(src, encoding=None):
if match:
series = match.group(1)
if series:
+ pat = re.compile(r'\[([.0-9]+)\]')
+ match = pat.search(series)
+ series_index = None
+ if match is not None:
+ try:
+ series_index = float(match.group(1))
+ except:
+ pass
+ series = series.replace(match.group(), '').strip()
+
mi.series = ent_pat.sub(entity_to_unicode, series)
+ if series_index is None:
+ pat = get_meta_regexp_("Seriesnumber")
+ match = pat.search(src)
+ if match:
+ try:
+ series_index = float(match.group(1))
+ except:
+ pass
+ if series_index is not None:
+ mi.series_index = series_index
# RATING
rating = None