51 lines
1.4 KiB
Python
51 lines
1.4 KiB
Python
|
from . import cli
|
||
|
from . import mail
|
||
|
from . import headerExtractor
|
||
|
from . import mailParser
|
||
|
from . import competitionParser
|
||
|
from . import mboxReader
|
||
|
|
||
|
import logging
|
||
|
import debugpy
|
||
|
import os
|
||
|
|
||
|
def main():
|
||
|
args = cli.getArgs()
|
||
|
|
||
|
logging.basicConfig()
|
||
|
logger = logging.getLogger(__name__)
|
||
|
|
||
|
verbosityMap = {
|
||
|
0: logging.WARNING,
|
||
|
1: logging.INFO,
|
||
|
}
|
||
|
rootLogger = logging.getLogger()
|
||
|
rootLogger.setLevel(verbosityMap.get(args.verbose, logging.DEBUG))
|
||
|
|
||
|
if args.debug:
|
||
|
debugpy.listen(5678)
|
||
|
debugpy.wait_for_client()
|
||
|
|
||
|
mp = mailParser.MailParser()
|
||
|
cp = competitionParser.CompetitionParser()
|
||
|
|
||
|
if args.read_mbox is not None:
|
||
|
if args.output_folder is None:
|
||
|
logger.error('Cannot use batch mode without explicit output folder.')
|
||
|
exit(1)
|
||
|
|
||
|
reader = mboxReader.MBocReader()
|
||
|
mails = reader.parseMBoxFile(args.read_mbox[0])
|
||
|
for mail in mails:
|
||
|
body = mp.parseMail(mail)
|
||
|
cp.parseMail(body)
|
||
|
filename = cp.getFilename(args.output_folder[0])
|
||
|
logger.info('Using file %s to generate the output.', filename)
|
||
|
folder = os.path.dirname(filename)
|
||
|
os.makedirs(folder, exist_ok=True)
|
||
|
with open(filename, 'w') as fp:
|
||
|
fp.write(cp.getContent())
|
||
|
else:
|
||
|
raise Exception('Not yet implemented')
|
||
|
|