TXT metadata reader

This commit is contained in:
John Schember 2009-03-30 19:03:49 -04:00
parent 47b160c9ea
commit 87580e27ba
2 changed files with 40 additions and 0 deletions

View File

@ -159,6 +159,16 @@ class ODTMetadataReader(MetadataReaderPlugin):
def get_metadata(self, stream, ftype): def get_metadata(self, stream, ftype):
from calibre.ebooks.metadata.odt import get_metadata from calibre.ebooks.metadata.odt import get_metadata
return get_metadata(stream) return get_metadata(stream)
class TXTMetadataReader(MetaReaderPlugin):
name = 'Read TXT metadata'
file_types = set(['txt'])
description = _('Read metadata from %s files') % 'TXT'
def get_metadata(self, stream, ftype):
from calibre.ebooks.metadata.txt import get_metadata
return get_metadata(stream)
class LRXMetadataReader(MetadataReaderPlugin): class LRXMetadataReader(MetadataReaderPlugin):

View File

@ -0,0 +1,30 @@
'''Read meta information from TXT files'''
from __future__ import with_statement
__license__ = 'GPL v3'
__copyright__ = '2009, John Schember <john@nachtimwald.com>'
import re
from calibre.ebooks.metadata import MetaInformation
def get_metadata(stream, extract_cover=True):
""" Return metadata as a L{MetaInfo} object """
mi = MetaInformation(_('Unknown'), [_('Unknown')])
stream.seek(0)
mdata = ''
for x in range(0, 4):
line = stream.readline()
if line == '':
break
else:
mdata += line
mo = re.search('(?u)^[ ]*(?P<title>.+)[ ]*\n\n\n[ ]*(?P<author>.+)[ ]*\n$', mdata)
if mo != None:
mi.title = mo.group('title')
mi.authors = mo.group('author').split(',')
return mi