From e7ec12575d51ad4e2a645fdb74295e5d4cbc0058 Mon Sep 17 00:00:00 2001 From: John Schember Date: Sat, 25 Apr 2009 16:57:29 -0400 Subject: [PATCH] ereader writer working --- src/calibre/ebooks/pdb/ereader/pmlconverter.py | 4 ++-- src/calibre/ebooks/pdb/ereader/reader.py | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/calibre/ebooks/pdb/ereader/pmlconverter.py b/src/calibre/ebooks/pdb/ereader/pmlconverter.py index a9c9d2f7a7..391f70a504 100644 --- a/src/calibre/ebooks/pdb/ereader/pmlconverter.py +++ b/src/calibre/ebooks/pdb/ereader/pmlconverter.py @@ -39,7 +39,7 @@ PML_HTML_RULES = [ (re.compile(r'\\k(?P.+?)\\k', re.DOTALL), lambda match: '%s' % match.group('text')), (re.compile(r'\\a(?P\d\d\d)'), lambda match: '&#%s;' % match.group('num')), (re.compile(r'\\U(?P\d+)'), lambda match: '%s' % unichr(int(match.group('num'), 16))), - (re.compile(r'\\m="(?P.+?)"'), lambda match: '' % match.group('name')), + (re.compile(r'\\m="(?P.+?)"'), lambda match: '' % image_name(match.group('name')).strip('\x00')), (re.compile(r'\\q="(?P#.+?)"(?P.+?)\\q', re.DOTALL), lambda match: '%s' % (match.group('target'), match.group('text'))), (re.compile(r'\\Q="(?P.+?)"'), lambda match: '
' % match.group('target')), (re.compile(r'\\-'), lambda match: ''), @@ -83,7 +83,7 @@ HTML_PML_RULES = [ (re.compile('.+?).*?">'), lambda match: '\\\\Q="%s"' % match.group('target')), (re.compile('#.+?).*?">(?P)', re.DOTALL), lambda match: '\\q="%s"%s\\q' % (match.group('target'), match.group('text'))), #(re.compile('.+?)".*?>'), lambda match: '\\m="%s"' % match.group('name')), - (re.compile('.+?)".*?>(.*?)*'), lambda match: '\\m="%s"' % image_name(match.group('name'))), + (re.compile('.+?)".*?>(.*?)*'), lambda match: '\\m="%s"' % image_name(match.group('name').strip('\x00'))), #(re.compile('&#(?P\d\d\d\d);'), lambda match: '\\U%s' % int(match.group('num'))), (re.compile('&#(?P\d\d\d);'), lambda match: '\\a%s' % match.group('num')), (re.compile('(?P.+?)', re.DOTALL), lambda match: '\\k%s\\k' % match.group('text')), diff --git a/src/calibre/ebooks/pdb/ereader/reader.py b/src/calibre/ebooks/pdb/ereader/reader.py index e0953753f4..d36e01ed69 100644 --- a/src/calibre/ebooks/pdb/ereader/reader.py +++ b/src/calibre/ebooks/pdb/ereader/reader.py @@ -76,7 +76,7 @@ class Reader(FormatReader): if number < self.header_record.image_data_offset or number > self.header_record.image_data_offset + self.header_record.num_image_pages - 1: return 'empty', '' data = self.section_data(number) - name = data[4:4+32].strip('\0') + name = data[4:4+32].strip('\x00') img = data[62:] return name, img @@ -97,7 +97,7 @@ class Reader(FormatReader): if not os.path.exists(output_dir): os.makedirs(output_dir) - html = '' + html = u'' for i in range(1, self.header_record.num_text_pages + 1): self.log.debug('Extracting text page %i' % i) @@ -110,8 +110,7 @@ class Reader(FormatReader): self.log.debug('Extracting footnote page %i' % i) html += '
' html += footnote_sidebar_to_html(footnoteids[fid], self.decompress_text(i)) - html += '
' - + html += '' if self.header_record.sidebar_rec > 0: html += '

%s

' % _('Sidebar') @@ -127,7 +126,8 @@ class Reader(FormatReader): with CurrentDir(output_dir): with open('index.html', 'wb') as index: self.log.debug('Writing text to index.html') - index.write(html.encode('utf-8')) + index.write(html) +# print html if not os.path.exists(os.path.join(output_dir, 'images/')): os.makedirs(os.path.join(output_dir, 'images/'))