1
# -*- coding: utf-8 -*-
4
__copyright__ = '2011, John Schember <john@nachtimwald.com>'
7
Read meta information from TXT files
12
from cStringIO import StringIO
14
from calibre.ebooks.metadata import MetaInformation
15
from calibre.ebooks.metadata.opf2 import OPF, metadata_to_opf
16
from calibre.ptempfile import TemporaryDirectory
17
from calibre.utils.zipfile import ZipFile, safe_replace
19
def get_metadata(stream, extract_cover=True):
21
Return metadata as a L{MetaInfo} object
23
mi = MetaInformation(_('Unknown'), [_('Unknown')])
26
with TemporaryDirectory('_untxtz_mdata') as tdir:
29
zf.extract('metadata.opf', tdir)
30
with open(os.path.join(tdir, 'metadata.opf'), 'rb') as opff:
31
mi = OPF(opff).to_book_metadata()
36
def set_metadata(stream, mi):
37
opf = StringIO(metadata_to_opf(mi))
38
safe_replace(stream, 'metadata.opf', opf)