forked from tsc-vfl/hugo-page
31 lines
1.0 KiB
Python
31 lines
1.0 KiB
Python
|
import competitionNotificationReader as cnr
|
||
|
import logging
|
||
|
|
||
|
def splitHeaders(lines: list[str]) -> cnr.mail.Mail:
|
||
|
l = logging.getLogger(__name__)
|
||
|
|
||
|
l.debug('Separating headers of an email')
|
||
|
|
||
|
def _getHeaders(lines: list[str]):
|
||
|
headerLines = []
|
||
|
for idx,l in enumerate(lines):
|
||
|
if l == '':
|
||
|
remainingLines = lines[idx+1:]
|
||
|
for j,rl in enumerate(remainingLines):
|
||
|
if rl.strip() != '':
|
||
|
return headerLines, remainingLines[j:]
|
||
|
return headerLines, []
|
||
|
|
||
|
if l.startswith('\t') or l.startswith(' '):
|
||
|
lastLine = headerLines.pop()
|
||
|
newLine = f'{lastLine[1]} {l.strip()}'
|
||
|
headerLines.append(tuple([lastLine[0], newLine]))
|
||
|
else:
|
||
|
parts = l.split(':', 1)
|
||
|
headerLines.append(tuple([parts[0].strip(), parts[1].strip()]))
|
||
|
|
||
|
headerLines, bodyLines = _getHeaders(lines)
|
||
|
|
||
|
mail = cnr.mail.Mail(headerLines, bodyLines)
|
||
|
return mail
|