1# -*- coding: utf-8 -*-
2
3
4__license__   = 'GPL v3'
5__copyright__ = '2009, John Schember <john@nachtimwald.com>'
6
7'''
8Read meta information from TXT files
9'''
10
11import re, os
12
13from calibre.ebooks.metadata import MetaInformation
14
15
16def get_metadata(stream, extract_cover=True):
17    '''
18    Return metadata as a L{MetaInfo} object
19    '''
20    name = getattr(stream, 'name', '').rpartition('.')[0]
21    if name:
22        name = os.path.basename(name)
23    mi = MetaInformation(name or _('Unknown'), [_('Unknown')])
24    stream.seek(0)
25
26    mdata = ''
27    for x in range(0, 4):
28        line = stream.readline().decode('utf-8', 'replace')
29        if not line:
30            break
31        else:
32            mdata += line
33
34    mdata = mdata[:1024]
35
36    mo = re.search('(?u)^[ ]*(?P<title>.+)[ ]*(\n{3}|(\r\n){3}|\r{3})[ ]*(?P<author>.+)[ ]*(\n|\r\n|\r)$', mdata)
37    if mo is not None:
38        mi.title = mo.group('title')
39        mi.authors = mo.group('author').split(',')
40
41    return mi
42