This commit is contained in:
Sengian 2011-01-08 08:37:37 +01:00
commit df85aacb47
9 changed files with 19 additions and 15 deletions

View File

@ -977,6 +977,8 @@ def create_oebbook(log, path_or_stream, opts, input_plugin, reader=None,
from calibre.ebooks.oeb.base import OEBBook from calibre.ebooks.oeb.base import OEBBook
html_preprocessor = HTMLPreProcessor(input_plugin.preprocess_html, html_preprocessor = HTMLPreProcessor(input_plugin.preprocess_html,
opts.preprocess_html, opts) opts.preprocess_html, opts)
if not encoding:
encoding = None
oeb = OEBBook(log, html_preprocessor, oeb = OEBBook(log, html_preprocessor,
pretty_print=opts.pretty_print, input_encoding=encoding) pretty_print=opts.pretty_print, input_encoding=encoding)
if not populate: if not populate:

View File

@ -119,7 +119,7 @@ class HTMLFile(object):
self.is_binary = level > 0 and not bool(self.HTML_PAT.search(src[:4096])) self.is_binary = level > 0 and not bool(self.HTML_PAT.search(src[:4096]))
if not self.is_binary: if not self.is_binary:
if encoding is None: if not encoding:
encoding = xml_to_unicode(src[:4096], verbose=verbose)[-1] encoding = xml_to_unicode(src[:4096], verbose=verbose)[-1]
self.encoding = encoding self.encoding = encoding
else: else:

View File

@ -139,7 +139,7 @@ class BookHeader(object):
65001: 'utf-8', 65001: 'utf-8',
}[self.codepage] }[self.codepage]
except (IndexError, KeyError): except (IndexError, KeyError):
self.codec = 'cp1252' if user_encoding is None else user_encoding self.codec = 'cp1252' if not user_encoding else user_encoding
log.warn('Unknown codepage %d. Assuming %s' % (self.codepage, log.warn('Unknown codepage %d. Assuming %s' % (self.codepage,
self.codec)) self.codec))
if ident == 'TEXTREAD' or self.length < 0xE4 or 0xE8 < self.length \ if ident == 'TEXTREAD' or self.length < 0xE4 or 0xE8 < self.length \

View File

@ -1892,7 +1892,7 @@ class OEBBook(object):
return fix_data(data.decode(bom_enc)) return fix_data(data.decode(bom_enc))
except UnicodeDecodeError: except UnicodeDecodeError:
pass pass
if self.input_encoding is not None: if self.input_encoding:
try: try:
return fix_data(data.decode(self.input_encoding, 'replace')) return fix_data(data.decode(self.input_encoding, 'replace'))
except UnicodeDecodeError: except UnicodeDecodeError:

View File

@ -65,9 +65,9 @@ class Reader(FormatReader):
from calibre.customize.ui import plugin_for_input_format from calibre.customize.ui import plugin_for_input_format
txt_plugin = plugin_for_input_format('txt') txt_plugin = plugin_for_input_format('txt')
for option in txt_plugin.options: for opt in txt_plugin.options:
if not hasattr(self.options, option.option.name): if not hasattr(self.options, opt.option.name):
setattr(self.options, option.name, option.recommended_value) setattr(self.options, opt.option.name, opt.recommended_value)
stream.seek(0) stream.seek(0)
return txt_plugin.convert(stream, self.options, 'txt', self.log, {}) return txt_plugin.convert(stream, self.options, 'txt', self.log, {})

View File

@ -31,9 +31,9 @@ class Reader(FormatReader):
from calibre.customize.ui import plugin_for_input_format from calibre.customize.ui import plugin_for_input_format
pdf_plugin = plugin_for_input_format('pdf') pdf_plugin = plugin_for_input_format('pdf')
for option in pdf_plugin.options: for opt in pdf_plugin.options:
if not hasattr(self.options, option.option.name): if not hasattr(self.options, opt.option.name):
setattr(self.options, option.name, option.recommended_value) setattr(self.options, opt.option.name, opt.recommended_value)
pdf.seek(0) pdf.seek(0)
return pdf_plugin.convert(pdf, self.options, 'pdf', self.log, {}) return pdf_plugin.convert(pdf, self.options, 'pdf', self.log, {})

View File

@ -83,9 +83,9 @@ class Reader(FormatReader):
from calibre.customize.ui import plugin_for_input_format from calibre.customize.ui import plugin_for_input_format
txt_plugin = plugin_for_input_format('txt') txt_plugin = plugin_for_input_format('txt')
for option in txt_plugin.options: for opt in txt_plugin.options:
if not hasattr(self.options, option.option.name): if not hasattr(self.options, opt.option.name):
setattr(self.options, option.name, option.recommended_value) setattr(self.options, opt.option.name, opt.recommended_value)
stream.seek(0) stream.seek(0)
return txt_plugin.convert(stream, self.options, 'txt', self.log, {}) return txt_plugin.convert(stream, self.options, 'txt', self.log, {})

View File

@ -26,9 +26,9 @@ class TCRInput(InputFormatPlugin):
from calibre.customize.ui import plugin_for_input_format from calibre.customize.ui import plugin_for_input_format
txt_plugin = plugin_for_input_format('txt') txt_plugin = plugin_for_input_format('txt')
for option in txt_plugin.options: for opt in txt_plugin.options:
if not hasattr(options, option.option.name): if not hasattr(self.options, opt.option.name):
setattr(options, option.name, option.recommended_value) setattr(self.options, opt.option.name, opt.recommended_value)
stream.seek(0) stream.seek(0)
return txt_plugin.convert(stream, options, return txt_plugin.convert(stream, options,

View File

@ -146,6 +146,8 @@ class Widget(QWidget):
codecs.lookup(ans) codecs.lookup(ans)
except: except:
ans = '' ans = ''
if not ans:
ans = None
return ans return ans
elif isinstance(g, QComboBox): elif isinstance(g, QComboBox):
return unicode(g.currentText()) return unicode(g.currentText())