Exemplo n.º 1
0
    def initialize(self):
        from calibre.customize.builtins import PDBMetadataReader
        from calibre.ebooks import BOOK_EXTENSIONS
        from calibre.ebooks.conversion.plugins.pdb_input import PDBInput
        from calibre.ebooks.metadata.pdb import MREADER
        from calibre.ebooks.pdb import (IDENTITY_TO_NAME, get_reader)

        import calibre.ebooks.pdb

        if PDBMetadataReader:
            PDBMetadataReader.file_types.add('updb')

        if PDBInput:
            PDBInput.file_types.add('updb')

        if BOOK_EXTENSIONS:
            if 'updb' not in BOOK_EXTENSIONS:
                BOOK_EXTENSIONS.append('updb')

        if MREADER:
            MREADER[BPDB_IDENT] = get_metadata
            MREADER[UPDB_IDENT] = get_metadata

        if not get_reader(BPDB_IDENT):
            calibre.ebooks.pdb.FORMAT_READERS[BPDB_IDENT] = Reader
            calibre.ebooks.pdb.FORMAT_READERS[UPDB_IDENT] = Reader

        if IDENTITY_TO_NAME:
            IDENTITY_TO_NAME[BPDB_IDENT] = 'Haodoo.net'
            IDENTITY_TO_NAME[UPDB_IDENT] = 'Haodoo.net'
Exemplo n.º 2
0
    def convert(self, stream, options, file_ext, log,
                accelerators):
        from calibre.ebooks.pdb.header import PdbHeaderReader
        from calibre.ebooks.pdb import PDBError, IDENTITY_TO_NAME, get_reader

        header = PdbHeaderReader(stream)
        Reader = get_reader(header.ident)

        if Reader is None:
            raise PDBError('No reader available for format within container.\n Identity is %s. Book type is %s' % (header.ident, IDENTITY_TO_NAME.get(header.ident, _('Unknown'))))

        log.debug('Detected ebook format as: %s with identity: %s' % (IDENTITY_TO_NAME[header.ident], header.ident))

        reader = Reader(header, stream, log, options)
        opf = reader.extract_content(os.getcwdu())

        return opf