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

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. __license__ = 'GPL v3'
  5. __copyright__ = '2009, John Schember <john@nachtimwald.com>'
  6. __docformat__ = 'restructuredtext en'
  7. import re
  8. from calibre.ebooks.metadata import MetaInformation
  9. from calibre.ebooks.pdb.header import PdbHeaderReader
  10. from calibre.ebooks.metadata.ereader import get_metadata as get_eReader
  11. MREADER = {
  12.     'PNPdPPrs': get_eReader,
  13.     'PNRdPPrs': get_eReader }
  14. from calibre.ebooks.metadata.ereader import set_metadata as set_eReader
  15. MWRITER = {
  16.     'PNPdPPrs': set_eReader,
  17.     'PNRdPPrs': set_eReader }
  18.  
  19. def get_metadata(stream, extract_cover = True):
  20.     pheader = PdbHeaderReader(stream)
  21.     MetadataReader = MREADER.get(pheader.ident, None)
  22.     if MetadataReader is None:
  23.         return MetaInformation(pheader.title, [
  24.             _('Unknown')])
  25.     return MetadataReader(stream, extract_cover)
  26.  
  27.  
  28. def set_metadata(stream, mi):
  29.     stream.seek(0)
  30.     pheader = PdbHeaderReader(stream)
  31.     MetadataWriter = MWRITER.get(pheader.ident, None)
  32.     if MetadataWriter:
  33.         MetadataWriter(stream, mi)
  34.     
  35.     stream.seek(0)
  36.     stream.write('%s\x00' % re.sub('[^-A-Za-z0-9 ]+', '_', mi.title).ljust(31, '\x00')[:31].encode('ascii', 'replace'))
  37.  
  38.