'
-import os, sys, textwrap, collections, traceback, time
+import os, sys, textwrap, collections, traceback, time, re
from xml.parsers.expat import ExpatError
from functools import partial
from PyQt4.QtCore import Qt, SIGNAL, QObject, QCoreApplication, QUrl
@@ -43,6 +43,7 @@ from calibre.gui2.dialogs.choose_format import ChooseFormatDialog
from calibre.gui2.dialogs.book_info import BookInfo
from calibre.ebooks.metadata.meta import set_metadata
from calibre.ebooks.metadata import MetaInformation
+from calibre.ebooks.html import gui_main as html2oeb
from calibre.ebooks import BOOK_EXTENSIONS
from calibre.ebooks.lrf import preferred_source_formats as LRF_PREFERRED_SOURCE_FORMATS
from calibre.library.database2 import LibraryDatabase2, CoverCache
@@ -480,6 +481,15 @@ class Main(MainWindow, Ui_MainWindow):
if not to_device:
model = self.current_view().model()
+ html_pat = re.compile(r'\.x{0,1}htm(l{0,1})\s*$', re.IGNORECASE)
+ paths = list(paths)
+ for i, path in enumerate(paths):
+ if html_pat.search(path) is not None:
+ paths[i] = html2oeb(path)
+ if paths[i] is None:
+ paths[i] = path
+ else:
+ formats[i] = 'zip'
duplicates = model.add_books(paths, formats, metadata)
if duplicates:
files = _('Books with the same title as the following already exist in the database. Add them anyway?