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)