1
0
mirror of https://github.com/gryf/ebook-converter.git synced 2026-03-18 15:53:41 +01:00

Convert calibre modules to ebook_converter.

Here is the first batch of modules, which are needed for converting
several formats to LRF. Some of the logic has been change, more cleanups
will follow.
This commit is contained in:
2020-04-11 19:33:43 +02:00
parent 69d2e536c5
commit 0f9792df36
252 changed files with 1925 additions and 2344 deletions

View File

@@ -15,12 +15,12 @@ FORMAT_READERS = None
def _import_readers():
global FORMAT_READERS
from calibre.ebooks.pdb.ereader.reader import Reader as ereader_reader
from calibre.ebooks.pdb.palmdoc.reader import Reader as palmdoc_reader
from calibre.ebooks.pdb.ztxt.reader import Reader as ztxt_reader
from calibre.ebooks.pdb.pdf.reader import Reader as pdf_reader
from calibre.ebooks.pdb.plucker.reader import Reader as plucker_reader
from calibre.ebooks.pdb.haodoo.reader import Reader as haodoo_reader
from ebook_converter.ebooks.pdb.ereader.reader import Reader as ereader_reader
from ebook_converter.ebooks.pdb.palmdoc.reader import Reader as palmdoc_reader
from ebook_converter.ebooks.pdb.ztxt.reader import Reader as ztxt_reader
from ebook_converter.ebooks.pdb.pdf.reader import Reader as pdf_reader
from ebook_converter.ebooks.pdb.plucker.reader import Reader as plucker_reader
from ebook_converter.ebooks.pdb.haodoo.reader import Reader as haodoo_reader
FORMAT_READERS = {
'PNPdPPrs': ereader_reader,
@@ -40,9 +40,9 @@ FORMAT_WRITERS = None
def _import_writers():
global FORMAT_WRITERS
from calibre.ebooks.pdb.palmdoc.writer import Writer as palmdoc_writer
from calibre.ebooks.pdb.ztxt.writer import Writer as ztxt_writer
from calibre.ebooks.pdb.ereader.writer import Writer as ereader_writer
from ebook_converter.ebooks.pdb.palmdoc.writer import Writer as palmdoc_writer
from ebook_converter.ebooks.pdb.ztxt.writer import Writer as ztxt_writer
from ebook_converter.ebooks.pdb.ereader.writer import Writer as ereader_writer
FORMAT_WRITERS = {
'doc': palmdoc_writer,

View File

@@ -9,10 +9,10 @@ __license__ = 'GPL v3'
__copyright__ = '2009, John Schember <john@nachtimwald.com>'
__docformat__ = 'restructuredtext en'
from calibre.ebooks.pdb.ereader import EreaderError
from calibre.ebooks.pdb.formatreader import FormatReader
from calibre.ebooks.pdb.ereader.reader132 import Reader132
from calibre.ebooks.pdb.ereader.reader202 import Reader202
from ebook_converter.ebooks.pdb.ereader import EreaderError
from ebook_converter.ebooks.pdb.formatreader import FormatReader
from ebook_converter.ebooks.pdb.ereader.reader132 import Reader132
from ebook_converter.ebooks.pdb.ereader.reader202 import Reader202
class Reader(FormatReader):

View File

@@ -14,12 +14,12 @@ import re
import struct
import zlib
from calibre import CurrentDir
from calibre.ebooks import DRMError
from calibre.ebooks.metadata.opf2 import OPFCreator
from calibre.ebooks.pdb.ereader import EreaderError
from calibre.ebooks.pdb.formatreader import FormatReader
from polyglot.builtins import unicode_type, range
from ebook_converter import CurrentDir
from ebook_converter.ebooks import DRMError
from ebook_converter.ebooks.metadata.opf2 import OPFCreator
from ebook_converter.ebooks.pdb.ereader import EreaderError
from ebook_converter.ebooks.pdb.formatreader import FormatReader
from ebook_converter.polyglot.builtins import unicode_type, range
class HeaderRecord(object):
@@ -73,7 +73,7 @@ class Reader132(FormatReader):
else:
raise EreaderError('Unknown book compression %i.' % self.header_record.compression)
from calibre.ebooks.metadata.pdb import get_metadata
from ebook_converter.ebooks.metadata.pdb import get_metadata
self.mi = get_metadata(stream, False)
def section_data(self, number):
@@ -81,7 +81,7 @@ class Reader132(FormatReader):
def decompress_text(self, number):
if self.header_record.compression == 2:
from calibre.ebooks.compression.palmdoc import decompress_doc
from ebook_converter.ebooks.compression.palmdoc import decompress_doc
return decompress_doc(self.section_data(number)).decode('cp1252' if self.encoding is None else self.encoding, 'replace')
if self.header_record.compression == 10:
return zlib.decompress(self.section_data(number)).decode('cp1252' if self.encoding is None else self.encoding, 'replace')
@@ -106,8 +106,8 @@ class Reader132(FormatReader):
return self.decompress_text(number)
def extract_content(self, output_dir):
from calibre.ebooks.pml.pmlconverter import footnote_to_html, sidebar_to_html
from calibre.ebooks.pml.pmlconverter import PML_HTMLizer
from ebook_converter.ebooks.pml.pmlconverter import footnote_to_html, sidebar_to_html
from ebook_converter.ebooks.pml.pmlconverter import PML_HTMLizer
output_dir = os.path.abspath(output_dir)

View File

@@ -12,11 +12,11 @@ __docformat__ = 'restructuredtext en'
import os
import struct
from calibre import CurrentDir
from calibre.ebooks.metadata.opf2 import OPFCreator
from calibre.ebooks.pdb.formatreader import FormatReader
from calibre.ebooks.pdb.ereader import EreaderError
from polyglot.builtins import unicode_type, range
from ebook_converter import CurrentDir
from ebook_converter.ebooks.metadata.opf2 import OPFCreator
from ebook_converter.ebooks.pdb.formatreader import FormatReader
from ebook_converter.ebooks.pdb.ereader import EreaderError
from ebook_converter.polyglot.builtins import unicode_type, range
class HeaderRecord(object):
@@ -51,14 +51,14 @@ class Reader202(FormatReader):
if self.header_record.version not in (2, 4):
raise EreaderError('Unknown book version %i.' % self.header_record.version)
from calibre.ebooks.metadata.pdb import get_metadata
from ebook_converter.ebooks.metadata.pdb import get_metadata
self.mi = get_metadata(stream, False)
def section_data(self, number):
return self.sections[number]
def decompress_text(self, number):
from calibre.ebooks.compression.palmdoc import decompress_doc
from ebook_converter.ebooks.compression.palmdoc import decompress_doc
data = bytearray(self.section_data(number))
data = bytes(bytearray(x ^ 0xA5 for x in data))
return decompress_doc(data).decode(self.encoding or 'cp1252', 'replace')
@@ -86,7 +86,7 @@ class Reader202(FormatReader):
return self.decompress_text(number)
def extract_content(self, output_dir):
from calibre.ebooks.pml.pmlconverter import pml_to_html
from ebook_converter.ebooks.pml.pmlconverter import pml_to_html
output_dir = os.path.abspath(output_dir)

View File

@@ -13,11 +13,11 @@ __docformat__ = 'restructuredtext en'
import struct
import os
from calibre import prepare_string_for_xml
from calibre.ebooks.pdb.formatreader import FormatReader
from calibre.ebooks.metadata import MetaInformation
from calibre.ebooks.txt.processor import opf_writer, HTML_TEMPLATE
from polyglot.builtins import range, map
from ebook_converter import prepare_string_for_xml
from ebook_converter.ebooks.pdb.formatreader import FormatReader
from ebook_converter.ebooks.metadata import MetaInformation
from ebook_converter.ebooks.txt.processor import opf_writer, HTML_TEMPLATE
from ebook_converter.polyglot.builtins import range, map
BPDB_IDENT = b'BOOKMTIT'
UPDB_IDENT = b'BOOKMTIU'

View File

@@ -13,7 +13,7 @@ __docformat__ = 'restructuredtext en'
import re
import struct
import time
from polyglot.builtins import long_type
from ebook_converter.polyglot.builtins import long_type
class PdbHeaderReader(object):

View File

@@ -12,7 +12,7 @@ __docformat__ = 'restructuredtext en'
import struct, io
from calibre.ebooks.pdb.formatreader import FormatReader
from ebook_converter.ebooks.pdb.formatreader import FormatReader
class HeaderRecord(object):
@@ -48,7 +48,7 @@ class Reader(FormatReader):
if self.header_record.compression == 1:
return self.section_data(number)
if self.header_record.compression == 2 or self.header_record.compression == 258:
from calibre.ebooks.compression.palmdoc import decompress_doc
from ebook_converter.ebooks.compression.palmdoc import decompress_doc
return decompress_doc(self.section_data(number))
return b''
@@ -63,7 +63,7 @@ class Reader(FormatReader):
self.log.info('Converting text to OEB...')
stream = io.BytesIO(raw_txt)
from calibre.customize.ui import plugin_for_input_format
from ebook_converter.customize.ui import plugin_for_input_format
txt_plugin = plugin_for_input_format('txt')
for opt in txt_plugin.options:

View File

@@ -10,9 +10,9 @@ __copyright__ = '2010, John Schember <john@nachtimwald.com>'
__docformat__ = 'restructuredtext en'
from calibre.ebooks.pdb.formatreader import FormatReader
from calibre.ptempfile import PersistentTemporaryFile
from polyglot.builtins import range
from ebook_converter.ebooks.pdb.formatreader import FormatReader
from ebook_converter.ptempfile import PersistentTemporaryFile
from ebook_converter.polyglot.builtins import range
class Reader(FormatReader):
@@ -33,7 +33,7 @@ class Reader(FormatReader):
pdf.write(self.header.section_data(x))
pdf.close()
from calibre.customize.ui import plugin_for_input_format
from ebook_converter.customize.ui import plugin_for_input_format
pdf_plugin = plugin_for_input_format('pdf')
for opt in pdf_plugin.options:

View File

@@ -12,12 +12,12 @@ import zlib
from collections import OrderedDict
from calibre import CurrentDir
from calibre.ebooks.pdb.formatreader import FormatReader
from calibre.ebooks.compression.palmdoc import decompress_doc
from calibre.utils.imghdr import identify
from calibre.utils.img import save_cover_data_to, Canvas, image_from_data
from polyglot.builtins import codepoint_to_chr, range
from ebook_converter import CurrentDir
from ebook_converter.ebooks.pdb.formatreader import FormatReader
from ebook_converter.ebooks.compression.palmdoc import decompress_doc
from ebook_converter.utils.imghdr import identify
from ebook_converter.utils.img import save_cover_data_to, Canvas, image_from_data
from ebook_converter.polyglot.builtins import codepoint_to_chr, range
DATATYPE_PHTML = 0
DATATYPE_PHTML_COMPRESSED = 1
@@ -353,7 +353,7 @@ class Reader(FormatReader):
self.owner_id = mdata_section.owner_id
# Get the metadata (tile, author, ...) with the metadata reader.
from calibre.ebooks.metadata.pdb import get_metadata
from ebook_converter.ebooks.metadata.pdb import get_metadata
self.mi = get_metadata(stream, False)
def extract_content(self, output_dir):
@@ -445,7 +445,7 @@ class Reader(FormatReader):
self.log.error('Failed to write composite image with uid %s: %s' % (uid, e))
# Run the HTML through the html processing plugin.
from calibre.customize.ui import plugin_for_input_format
from ebook_converter.customize.ui import plugin_for_input_format
html_input = plugin_for_input_format('html')
for opt in html_input.options:
setattr(self.options, opt.option.name, opt.recommended_value)
@@ -474,7 +474,7 @@ class Reader(FormatReader):
raise NotImplementedError
return zlib.decompress(data)
elif self.header_record.compression == 1:
from calibre.ebooks.compression.palmdoc import decompress_doc
from ebook_converter.ebooks.compression.palmdoc import decompress_doc
return decompress_doc(data)
def process_phtml(self, d, paragraph_offsets=[]):

View File

@@ -14,8 +14,8 @@ import zlib
import io
from calibre.ebooks.pdb.formatreader import FormatReader
from calibre.ebooks.pdb.ztxt import zTXTError
from ebook_converter.ebooks.pdb.formatreader import FormatReader
from ebook_converter.ebooks.pdb.ztxt import zTXTError
SUPPORTED_VERSION = (1, 40)
@@ -83,7 +83,7 @@ class Reader(FormatReader):
self.log.info('Converting text to OEB...')
stream = io.BytesIO(raw_txt)
from calibre.customize.ui import plugin_for_input_format
from ebook_converter.customize.ui import plugin_for_input_format
txt_plugin = plugin_for_input_format('txt')
for opt in txt_plugin.options: