mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
TXT metadata reader
This commit is contained in:
parent
47b160c9ea
commit
87580e27ba
@ -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):
|
||||||
|
|
||||||
|
30
src/calibre/ebooks/metadata/txt.py
Normal file
30
src/calibre/ebooks/metadata/txt.py
Normal 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
|
Loading…
x
Reference in New Issue
Block a user