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
|
from calibre.ebooks.metadata.txt import get_metadata
|
||||||
return get_metadata(stream)
|
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):
|
class LRXMetadataReader(MetadataReaderPlugin):
|
||||||
|
|
||||||
name = 'Read LRX metadata'
|
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 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import with_statement
|
|
||||||
'''
|
'''
|
||||||
Read content from ereader pdb file.
|
Read content from ereader pdb file.
|
||||||
'''
|
'''
|
||||||
@ -127,8 +127,7 @@ class Reader(FormatReader):
|
|||||||
with open('index.html', 'wb') as index:
|
with open('index.html', 'wb') as index:
|
||||||
self.log.debug('Writing text to index.html')
|
self.log.debug('Writing text to index.html')
|
||||||
index.write(html)
|
index.write(html)
|
||||||
# print html
|
|
||||||
|
|
||||||
if not os.path.exists(os.path.join(output_dir, 'images/')):
|
if not os.path.exists(os.path.join(output_dir, 'images/')):
|
||||||
os.makedirs(os.path.join(output_dir, 'images/'))
|
os.makedirs(os.path.join(output_dir, 'images/'))
|
||||||
images = []
|
images = []
|
||||||
|
@ -1,9 +1,13 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import with_statement
|
|
||||||
'''
|
'''
|
||||||
Write content to ereader pdb file.
|
Write content to ereader pdb file.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
__license__ = 'GPL v3'
|
||||||
|
__copyright__ = '2009, John Schember <john@nachtimwald.com>'
|
||||||
|
__docformat__ = 'restructuredtext en'
|
||||||
|
|
||||||
import struct, zlib
|
import struct, zlib
|
||||||
|
|
||||||
import Image, cStringIO
|
import Image, cStringIO
|
||||||
|
Loading…
x
Reference in New Issue
Block a user