

from AutoMailClassifier import AutoMailClassifier




if __name__ == '__main__':


    # Correu electronic "servidor" que prestarà el servei i será el "bot"
    input_mail = "testing2023tfg@outlook.com"

    # Llista de correus permesos per processar (Motius de seguretat)
    white_list = ["gespinma12@alumnes.ub.edu"]

    # Llista de correus per redirigir el missatge (output) a partir del input. En cas que el numero de categories no
    # conicideixi amb len(output_mail_list), el correu output serà enviat al mateix sender del input (responent) amb
    # el subject modificat indicant el resultat de la classificació (Label).
    output_mail_list = ["gespinma12@alumnes.ub.edu","gespinma12@alumnes.ub.edu","gespinma12@alumnes.ub.edu","gespinma12@alumnes.ub.edu","gespinma12@alumnes.ub.edu","gespinma12@alumnes.ub.edu"]
    categories = 6

    # Tractament de labels (output pur = int) -> output per l'usuari = Label
    labels = {0: 'DR', 1: 'F', 2: 'FD', 3: 'IT', 4: 'NS', 5: 'TG'}

    # Fitxers necessaris per construir el model de xarxes neuronals
    classifier_file = "model.h5"
    tokenizer_file = "count_tokenizer.pk1"

    # Creació del objecte principal amb la configuració minima:
    classifier = AutoMailClassifier(input_mail, white_list, output_mail_list, categories, labels)

    # Funcionalitats "extres" de la classe
    classifier.enable_disable_log_debugging(True)

    classifier.reset_debug_files()
    classifier.enable_disable_mail_categorization(False)
    classifier.reset_classifier()
    classifier.set_classifier(classifier_file,tokenizer_file)
    classifier.set_processing_limit_days(30)

    print(classifier.input_mail)

    # Try service executa el programa un sol cop. Processa tot l'input i el programa finalitza
    classifier.try_service()

    # Start service executa el programa en loop infinit. Es pot deixar obert i a mida que tenim inputs, els anirem processant
    #classifier.start_service()

