home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- from __future__ import with_statement
- __license__ = 'GPL v3'
- __copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
- from functools import partial
- from calibre import prints
- from calibre.constants import plugins
- from calibre.ebooks.metadata import MetaInformation, string_to_authors
- (pdfreflow, pdfreflow_error) = plugins['pdfreflow']
-
- def get_metadata(stream, cover = True):
- if pdfreflow is None:
- raise RuntimeError(pdfreflow_error)
- pdfreflow is None
- raw = stream.read()
- info = pdfreflow.get_metadata(raw, cover)
- title = info.get('Title', None)
- au = info.get('Author', None)
- if au is None:
- au = [
- _('Unknown')]
- else:
- au = string_to_authors(au)
- mi = MetaInformation(title, au)
- creator = info.get('Creator', None)
- if creator:
- mi.book_producer = creator
-
- keywords = info.get('Keywords', None)
- mi.tags = []
- subject = info.get('Subject', None)
- if subject:
- mi.tags.insert(0, subject)
-
- if cover and 'cover' in info:
- data = info['cover']
- if data is None:
- prints(title, 'has no pages, cover extraction impossible.')
- else:
- mi.cover_data = ('png', data)
-
- return mi
-
- get_quick_metadata = partial(get_metadata, cover = False)
- from calibre.utils.podofo import set_metadata as podofo_set_metadata
-
- def set_metadata(stream, mi):
- stream.seek(0)
- return podofo_set_metadata(stream, mi)
-
-