Files
secretary/src/email/main.py

71 lines
2.2 KiB
Python

import argparse
import os
from common.helper.logging import Logging
from setup.config import load_config
import pytz
from src.bosses import Bosses
from src.instrucciones import Instrucciones
from src.email.supervisor import Email
def set_params(args, configs):
log_name = 'email'
params = {
'folders': {
'config': args.config_folder,
'log': args.log_folder,
'data': args.data_folder
},
'bosses': Bosses(args.data_folder),
'instrucciones': Instrucciones(args.data_folder),
'logging': Logging(configs.get('timezone'), args.log_folder, log_name),
'logger': {
'name': log_name
},
'filenames': {
'consultas': os.path.join(args.data_folder, configs.get('email.consultas')),
'spam': os.path.join(args.data_folder, configs.get('email.spam')),
'revisados': os.path.join(args.data_folder, configs.get('email.revisados'))
}
}
return params
def set_setup():
return {
'workers': [
('common.helper.logger', 'Worker'),
('src.email.workers', 'Obtenedor'),
('src.email.workers', 'Validador'),
('src.email.workers', 'Consultador'),
('src.email.workers', 'Borrador'),
('src.email.workers', 'Procesador')
],
'queues': ['log', 'emails', 'valid', 'invalid', 'borrar'],
'events': [],
'locks': []
}
def main(args):
configs = load_config(args.config_folder)
configs.set('timezone', pytz.timezone(configs.get('supervisor.timezone')))
params = set_params(args, configs)
setup = set_setup()
email = Email(configs=configs, params=params, setup=setup)
email.start()
email.join()
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('-c', '--config_folder', default=os.path.join(os.path.realpath('../..'), 'config'))
parser.add_argument('-d', '--data_folder', default=os.path.join(os.path.realpath('../..'), 'data'))
parser.add_argument('-l', '--log_folder', default=os.path.join(os.path.realpath('../..'), 'logs'))
_args = parser.parse_args()
main(_args)