mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-07 18:24:30 -04:00
Pull from driver-dev
This commit is contained in:
commit
e4f1b2bd78
@ -171,6 +171,17 @@ class TXTMetadataReader(MetadataReaderPlugin):
|
||||
from calibre.ebooks.metadata.txt import get_metadata
|
||||
return get_metadata(stream)
|
||||
|
||||
class PDBMetadataReader(MetadataReaderPlugin):
|
||||
|
||||
name = 'Read PDB metadata'
|
||||
file_types = set(['pdb'])
|
||||
description = _('Read metadata from %s files') % 'PDB'
|
||||
author = 'John Schember'
|
||||
|
||||
def get_metadata(self, stream, ftype):
|
||||
from calibre.ebooks.metadata.pdb import get_metadata
|
||||
return get_metadata(stream)
|
||||
|
||||
class LRXMetadataReader(MetadataReaderPlugin):
|
||||
|
||||
name = 'Read LRX metadata'
|
||||
|
43
src/calibre/ebooks/metadata/ereader.py
Normal file
43
src/calibre/ebooks/metadata/ereader.py
Normal file
@ -0,0 +1,43 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
'''
|
||||
Read meta information from eReader pdb files.
|
||||
'''
|
||||
|
||||
__license__ = 'GPL v3'
|
||||
__copyright__ = '2009, John Schember <john@nachtimwald.com>'
|
||||
__docformat__ = 'restructuredtext en'
|
||||
|
||||
import re
|
||||
|
||||
from calibre.ebooks.metadata import MetaInformation
|
||||
from calibre.ebooks.pdb.header import PdbHeaderReader
|
||||
from calibre.ebooks.pdb.ereader.reader import HeaderRecord
|
||||
|
||||
def get_metadata(stream, extract_cover=True):
|
||||
"""
|
||||
Return metadata as a L{MetaInfo} object
|
||||
"""
|
||||
mi = MetaInformation(None, [_('Unknown')])
|
||||
stream.seek(0)
|
||||
|
||||
pheader = PdbHeaderReader(stream)
|
||||
hr = HeaderRecord(pheader.section_data(0))
|
||||
|
||||
if hr.version in (2, 10):
|
||||
try:
|
||||
mdata = pheader.section_data(hr.metadata_offset)
|
||||
|
||||
mdata = mdata.split('\x00')
|
||||
mi.title = mdata[0]
|
||||
mi.authors = [mdata[1]]
|
||||
mi.publisher = mdata[3]
|
||||
mi.isbn = mdata[4]
|
||||
except:
|
||||
pass
|
||||
|
||||
if not mi.title:
|
||||
mi.title = pheader.title if pheader.title else _('Unknown')
|
||||
|
||||
return mi
|
||||
|
36
src/calibre/ebooks/metadata/pdb.py
Normal file
36
src/calibre/ebooks/metadata/pdb.py
Normal file
@ -0,0 +1,36 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
'''
|
||||
Read meta information from eReader pdb files.
|
||||
'''
|
||||
|
||||
__license__ = 'GPL v3'
|
||||
__copyright__ = '2009, John Schember <john@nachtimwald.com>'
|
||||
__docformat__ = 'restructuredtext en'
|
||||
|
||||
import re
|
||||
|
||||
from calibre.ebooks.metadata import MetaInformation
|
||||
from calibre.ebooks.pdb.header import PdbHeaderReader
|
||||
from calibre.ebooks.metadata.ereader import get_metadata as eReader
|
||||
|
||||
MREADER = {
|
||||
'PNPdPPrs' : eReader,
|
||||
'PNRdPPrs' : eReader,
|
||||
}
|
||||
|
||||
def get_metadata(stream, extract_cover=True):
|
||||
"""
|
||||
Return metadata as a L{MetaInfo} object
|
||||
"""
|
||||
|
||||
pheader = PdbHeaderReader(stream)
|
||||
|
||||
MetadataReader = MREADER.get(pheader.ident, None)
|
||||
|
||||
if MetadataReader is None:
|
||||
return MetaInformation(_('Unknown'), [_('Unknown')])
|
||||
|
||||
|
||||
return MetadataReader(stream, extract_cover)
|
||||
|
@ -1,5 +1,5 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import with_statement
|
||||
|
||||
'''
|
||||
Read content from ereader pdb file.
|
||||
'''
|
||||
@ -127,7 +127,6 @@ class Reader(FormatReader):
|
||||
with open('index.html', 'wb') as index:
|
||||
self.log.debug('Writing text to index.html')
|
||||
index.write(html)
|
||||
# print html
|
||||
|
||||
if not os.path.exists(os.path.join(output_dir, 'images/')):
|
||||
os.makedirs(os.path.join(output_dir, 'images/'))
|
||||
|
@ -1,9 +1,13 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import with_statement
|
||||
|
||||
'''
|
||||
Write content to ereader pdb file.
|
||||
'''
|
||||
|
||||
__license__ = 'GPL v3'
|
||||
__copyright__ = '2009, John Schember <john@nachtimwald.com>'
|
||||
__docformat__ = 'restructuredtext en'
|
||||
|
||||
import struct, zlib
|
||||
|
||||
import Image, cStringIO
|
||||
|
Loading…
x
Reference in New Issue
Block a user