home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_969 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  2.0 KB  |  53 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. from __future__ import with_statement
  5. __license__ = 'GPL v3'
  6. __copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
  7. from functools import partial
  8. from calibre import prints
  9. from calibre.constants import plugins
  10. from calibre.ebooks.metadata import MetaInformation, string_to_authors
  11. (pdfreflow, pdfreflow_error) = plugins['pdfreflow']
  12.  
  13. def get_metadata(stream, cover = True):
  14.     if pdfreflow is None:
  15.         raise RuntimeError(pdfreflow_error)
  16.     pdfreflow is None
  17.     raw = stream.read()
  18.     info = pdfreflow.get_metadata(raw, cover)
  19.     title = info.get('Title', None)
  20.     au = info.get('Author', None)
  21.     if au is None:
  22.         au = [
  23.             _('Unknown')]
  24.     else:
  25.         au = string_to_authors(au)
  26.     mi = MetaInformation(title, au)
  27.     creator = info.get('Creator', None)
  28.     if creator:
  29.         mi.book_producer = creator
  30.     
  31.     keywords = info.get('Keywords', None)
  32.     mi.tags = []
  33.     subject = info.get('Subject', None)
  34.     if subject:
  35.         mi.tags.insert(0, subject)
  36.     
  37.     if cover and 'cover' in info:
  38.         data = info['cover']
  39.         if data is None:
  40.             prints(title, 'has no pages, cover extraction impossible.')
  41.         else:
  42.             mi.cover_data = ('png', data)
  43.     
  44.     return mi
  45.  
  46. get_quick_metadata = partial(get_metadata, cover = False)
  47. from calibre.utils.podofo import set_metadata as podofo_set_metadata
  48.  
  49. def set_metadata(stream, mi):
  50.     stream.seek(0)
  51.     return podofo_set_metadata(stream, mi)
  52.  
  53.