HTML To Zip: Ignore user specified encoding if it is invalid

This commit is contained in:
Kovid Goyal 2015-06-16 11:01:38 +05:30
parent b1c059a6e9
commit a430138f93

View File

@ -26,6 +26,8 @@ every time you add an HTML file to the library.\
on_import = True on_import = True
def run(self, htmlfile): def run(self, htmlfile):
import codecs
from calibre import prints
from calibre.ptempfile import TemporaryDirectory from calibre.ptempfile import TemporaryDirectory
from calibre.gui2.convert.gui_conversion import gui_convert from calibre.gui2.convert.gui_conversion import gui_convert
from calibre.customize.conversion import OptionRecommendation from calibre.customize.conversion import OptionRecommendation
@ -38,8 +40,12 @@ every time you add an HTML file to the library.\
sc = self.site_customization.strip() sc = self.site_customization.strip()
enc, _, bf = sc.partition('|') enc, _, bf = sc.partition('|')
if enc: if enc:
recs.append(['input_encoding', enc, try:
OptionRecommendation.HIGH]) codecs.lookup(enc)
except Exception:
prints('Ignoring invalid input encoding for HTML:', enc)
else:
recs.append(['input_encoding', enc, OptionRecommendation.HIGH])
if bf == 'bf': if bf == 'bf':
recs.append(['breadth_first', True, recs.append(['breadth_first', True,
OptionRecommendation.HIGH]) OptionRecommendation.HIGH])
@ -84,8 +90,7 @@ every time you add an HTML file to the library.\
help_text = self.customization_help(gui=True) help_text = self.customization_help(gui=True)
help_text = QLabel(help_text, config_dialog) help_text = QLabel(help_text, config_dialog)
help_text.setWordWrap(True) help_text.setWordWrap(True)
help_text.setTextInteractionFlags(Qt.LinksAccessibleByMouse help_text.setTextInteractionFlags(Qt.LinksAccessibleByMouse | Qt.LinksAccessibleByKeyboard)
| Qt.LinksAccessibleByKeyboard)
help_text.setOpenExternalLinks(True) help_text.setOpenExternalLinks(True)
v.addWidget(help_text) v.addWidget(help_text)
bf = QCheckBox(_('Add linked files in breadth first order')) bf = QCheckBox(_('Add linked files in breadth first order'))