''' Ce fichier contient les variables globales du systeme ''' from pymongo import MongoClient from spellchecker import SpellChecker from nltk.stem.snowball import SnowballStemmer import spacy import logging from autocorrect import Speller from nltk.corpus import stopwords import ela_spacy_common as lsc """ Cette variable definit l'environnement de travail """ #MYSY_ENV = "PROD" #MYSY_ENV = "REC" MYSY_ENV = "DEV" # Cette variable definit l'url de base du server CLIENT_URL_BASE = "" if (MYSY_ENV == "PROD"): CONNECTION_STRING = "mongodb://localhost:27017/cherifdb" client = MongoClient(CONNECTION_STRING) dbname = client['cherifdb'] CLIENT_URL_BASE = 'https://www.mysy-training.com/' elif (MYSY_ENV == "DEV"): CONNECTION_STRING = "mongodb://localhost:27017/cherifdb_dev" client = MongoClient(CONNECTION_STRING) dbname = client['cherifdb_dev'] CLIENT_URL_BASE = 'http://localhost:3009/' elif (MYSY_ENV == "REC"): CONNECTION_STRING = "mongodb://localhost:27017/cherifdb_rec" client = MongoClient(CONNECTION_STRING) dbname = client['cherifdb_rec'] CLIENT_URL_BASE = 'https://dev.mysy-training.com/' YTUBES_CONNECTION_STRING = "mongodb://localhost:27017/" YTUBES_client = MongoClient(YTUBES_CONNECTION_STRING) YTUBES_dbname = YTUBES_client['mysyvideodb'] """ Cette Variable definit les port de connexion en dev ou en production """ MYSY_PORT_PROD = 5000 MYSY_PORT_DEV = 5001 MYSY_PORT_REC = 5001 ''' Cette Variable defini le nombre minimum de frequence d'un mot pour qu'il soit indexé. en gros, dans une text, les mots apparaissent moins de 5 fois sont consideré comme des mots à faible raisonnance''' INDEX_MIN_OCCURENCE = 5 ## Gle Variables stemmer = SnowballStemmer(language='french') nlp = spacy.load("fr_core_news_sm") spell = SpellChecker(language='fr') token_fr_pontuation = [] ''' La taille maximal d'un champs à retourner. Au dela de 300 caractère, le système rame ''' MAX_CARACT = 300 # Celui est utilisé pour les affichage courts et tronqués, comme sur la page principale du moteur MAX_CARACT_DEDUIT = 150 TOKEN_SIZE = 25 MAX_CARACT_DETAIL = 1000 # Celui est utilisé pour les affichage globaux (si le texte est trop long, il va tronquer un peut mais cela permet de cadrer un peu les choses DEBUG_LEVEL = logging.DEBUG LOG_FILE_NAME = "./Log/log_file.log" upload_folder = "./Data/" ALLOWED_EXTENSIONS = {'txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif', 'webp'} logging.basicConfig( level=DEBUG_LEVEL, filename=LOG_FILE_NAME) AUTORIZED_SOURCE_IPV4=["127.0.0.1", "localhost", "88.170.110.220", "192.168.1.21", "192.168.1.48"] #assign the default stopwords list to a variable STOP_WORDS = spacy.lang.fr.stop_words.STOP_WORDS stopWords = set(stopwords.words('french')) sentence = "Bouygues a eu une coupure de réseau à Marseille chez ses clients marseillais et son couteau" lsc.update_stopWords(stopWords) #print(type(stopWords)) lsc.update_token_fr_pontuation(token_fr_pontuation) spell_fr = Speller(lang='fr') ''' Repertoire de stockage de video YouTubes ''' YTUBES_ENSCRIPT_LOCATION = "" ''' Email recever des alertes internes ''' INTERNAL_MAIL_RECEVER = "contact@mysy-training.com" INTERNAL_MAIL_SENDER = "contact@mysy-training.com" INTERNAL_TEL_RECEVER = "+33769203945" INTERNAL_TEL_SENDER = "+33769203945" ''' Cette variable definit le nombre max de retour à faire sur une requet de recherche ''' QUERY_LIMIT_ROW = 50 ''' Cette variable definit le nombre max retour à faire sur page d'acceuil ''' MAINPAGE_QUERY_LIMIT_ROW =50 ''' Cette variable definit le nombre de mots retourné dans le cas d'une aide à avec une recherche vide ''' HELP_WORD_QUERY_LIMIT = 3 ''' Les formats d'image accepté ''' IMG_FORMAT=['jpg', 'jpeg', 'png', 'jpe', 'webp', 'gif'] """ Image au formation PNG UNIQUEMENT """ IMG_PNG_FORMAT=['png'] ''' Sendinblue clea API ''' SENDINBLUE_API_KEY = "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" ''' Taux de TVA ''' TVA_TAUX = 0.2 """ Variable defini le mombre max de mots clés dans une formation """ MAX_KEYWORD = 3 """ Connexion SFTP """ #MYSY_FTP_HOST = "192.168.1.21" MYSY_FTP_HOST = "88.170.110.220" MYSY_FTP_LOGIN = "mysysftpuser" MYSY_FTP_PWD = "JvMysedrBsDMy01!+" """ Repertoire de depot des factures """ #INVOICE_DIRECTORY = "/var/www/html/sftp_iexercice/mysy_invoices" INVOICE_DIRECTORY = "./Invoices/" """ Repertoire pour les liste d'emargement """ EMARGEMENT_DIRECTORY = "./Emargement/" """ """ """ Repertoire racine du ftp ou sont stocké les factures """ INVOICE_FTP_DIRECTORY = "https://sftp.iexercice.com/mysy_invoices/" if (MYSY_ENV == "PROD"): INVOICE_FTP_LOCAL_STORAGE_DIRECTORY = "/var/www/html/sftp_iexercice/mysy_invoices/" elif (MYSY_ENV == "DEV"): INVOICE_FTP_LOCAL_STORAGE_DIRECTORY = "/var/www/html/sftp_iexercice/mysy_invoices_dev/" elif (MYSY_ENV == "REC"): INVOICE_FTP_LOCAL_STORAGE_DIRECTORY = "/var/www/html/sftp_iexercice/mysy_invoices_rec/" """ Cette Variable definit le nombre de formation associées à retourner """ LIMIT_ASSOCIATED_TRAINING = 3 """ Valeur MAX du display ranking accordé aux compte de type demo """ DEMO_RANKING_VALUE = "50" """ Sendinblu compte support """ SENDINBLUE_API_KEY_SUPPORT = "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" """ Variable SMTP de OFFICE 365, suite a l'abandon de sendinblu comme relay stmp """ if (MYSY_ENV == "PROD"): O365_SMTP_COUNT_password = 'Xad47198' O365_SMTP_COUNT_smtpsrv = "smtp.office365.com" O365_SMTP_COUNT_user = "support@mysy-training.com" O365_SMTP_COUNT_From_User = "support@mysy-training.com" O365_SMTP_COUNT_port = 587 if (MYSY_ENV == "REC"): O365_SMTP_COUNT_password = 'Xad47198' O365_SMTP_COUNT_smtpsrv = "smtp.office365.com" O365_SMTP_COUNT_user = "support@mysy-training.com" O365_SMTP_COUNT_From_User = "support@mysy-training.com" O365_SMTP_COUNT_port = 587 if (MYSY_ENV == "DEV"): """O365_SMTP_COUNT_password = 'GomboyaVince1234+' O365_SMTP_COUNT_smtpsrv = "smtp.office365.com" O365_SMTP_COUNT_user = "cbalde@mysy-training.com" O365_SMTP_COUNT_From_User = "cbalde@mysy-training.com" O365_SMTP_COUNT_port = 587""" O365_SMTP_COUNT_password = 'Sod78!526+' O365_SMTP_COUNT_smtpsrv = "smtp.office365.com" O365_SMTP_COUNT_user = "communication@mysytraining.fr" O365_SMTP_COUNT_From_User = "communication@mysytraining.fr" O365_SMTP_COUNT_port = 587 """ Repertoire temporaire de telechargement ou de creation de fichier """ TEMPORARY_DIRECTORY = "./temp_direct" """ Nombre maximum de participants importable par csv """ MAX_PARTICIPANT_BY_CSV = 50 """ Nombre maximum de clients de partner importable par csv """ MAX_PARTNER_CLIENT_BY_CSV = 100 """ Stripe : Nom des produits et prix et la clé de config """ if (MYSY_ENV == "PROD"): STRIPE_GOLD_PRICE_ID = "price_1NG2HdAbmaEugrFTMbzVRwj1" STRIPE_GOLD_PRICE_ID_50_OFF = "price_1NG2HsAbmaEugrFTAiHh2SzD" STRIPE_GOLD_PRICE_ID_95_OFF = "price_1NG2IJAbmaEugrFTMPdMIzNH" STRIPE_STANDARD_PRICE_ID = "price_1NG2JmAbmaEugrFTBwRDLlbs" STRIPE_STANDARD_PRICE_ID_50_OFF = "price_1NG2GtAbmaEugrFTyJavt1Lx" STRIPE_STANDARD_PRICE_ID_95_OFF = "price_1NG2HBAbmaEugrFTaMsDGikP" STRIPE_STANDARD_PRICE_ID = "price_1MUSoGAbmaEugrFTTjz5lSye" STRIPE_TEST_PRICE_ID = "price_1MT0f0AbmaEugrFTJjdZZXG7" STRIPE_CONFIG_KEY_PUB = "pk_live_51LUUfAAbmaEugrFTyfNe4Dj0vbxc5qXQqNs0rztjAKy8oSlc5EEQyJGjA8Z5kXmP2gvUMcYLUBYCIyWWzLCw59RY00PtGInkVf" STRIPE_CONFIG_API_KEY = "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" elif (MYSY_ENV == "DEV"): STRIPE_GOLD_PRICE_ID = "price_1MT3FmAbmaEugrFTZ5vyJRcZ" STRIPE_GOLD_PRICE_ID_50_OFF = "price_1NEpALAbmaEugrFTCDhlJyo3" STRIPE_GOLD_PRICE_ID_95_OFF = "price_1NFyUEAbmaEugrFT5sRXixeZ" STRIPE_STANDARD_PRICE_ID = "price_1MT3FLAbmaEugrFTDgw7MVgb" STRIPE_STANDARD_PRICE_ID_50_OFF = "price_1NEpCOAbmaEugrFTcBnOf89X" STRIPE_STANDARD_PRICE_ID_95_OFF = "price_1NFySwAbmaEugrFTxrQHhFN9" STRIPE_TEST_PRICE_ID = "price_1MT3FLAbmaEugrFTDgw7MVgb" STRIPE_CONFIG_KEY_PUB = "pk_test_51LUUfAAbmaEugrFTI25uZBD3IFjbtaL6jUfRV83diDf7nco8worna4NGKhMHbPP71WCwT5EHFRdDNatxPrJWwgZ300kgH5EO4p" STRIPE_CONFIG_API_KEY = "sk_test_51LUUfAAbmaEugrFTrWsfcBWZtbBh9r3HCa2sgeyikG808LjSk3bAdFhV6KxgRZ3vFxooa6RE0c5zBkTuOUrKkyjy00BrsIXAPs" elif (MYSY_ENV == "REC"): STRIPE_GOLD_PRICE_ID = "price_1MT3FmAbmaEugrFTZ5vyJRcZ" STRIPE_GOLD_PRICE_ID_50_OFF = "price_1NEpALAbmaEugrFTCDhlJyo3" STRIPE_GOLD_PRICE_ID_95_OFF = "price_1NFyUEAbmaEugrFT5sRXixeZ" STRIPE_GOLD_PRICE_ID_100_OFF = "price_1NEpeJAbmaEugrFTXT5OFciX" STRIPE_STANDARD_PRICE_ID = "price_1MT3FLAbmaEugrFTDgw7MVgb" STRIPE_STANDARD_PRICE_ID_50_OFF = "price_1NEpCOAbmaEugrFTcBnOf89X" STRIPE_STANDARD_PRICE_ID_95_OFF = "price_1NFySwAbmaEugrFTxrQHhFN9" STRIPE_STANDARD_PRICE_ID_100_OFF = "price_1NEpbrAbmaEugrFTgLABbIOF" STRIPE_TEST_PRICE_ID = "price_1MT3FLAbmaEugrFTDgw7MVgb" STRIPE_CONFIG_KEY_PUB = "pk_test_51LUUfAAbmaEugrFTI25uZBD3IFjbtaL6jUfRV83diDf7nco8worna4NGKhMHbPP71WCwT5EHFRdDNatxPrJWwgZ300kgH5EO4p" STRIPE_CONFIG_API_KEY = "sk_test_51LUUfAAbmaEugrFTrWsfcBWZtbBh9r3HCa2sgeyikG808LjSk3bAdFhV6KxgRZ3vFxooa6RE0c5zBkTuOUrKkyjy00BrsIXAPs" """ Limite des zones de texte des formation - porgramme - objectif - description """ CLASS_ZONE_PROGRAM_LIMIT = 1300 CLASS_ZONE_DESCRIP_LIMIT = 1000 CLASS_ZONE_OBJECTIF_LIMIT = 1000 """ MariaDB database access """ if (MYSY_ENV == "PROD"): MYSY_MARIADB_USER = "mysy_mariadb_user" MYSY_MARIADB_USER_PASS = "fB5z%M)GG&g!n2c" MYSY_MARIADB_HOST = "192.168.1.21" MYSY_MARIADB_PORT = 3306 MYSY_LMS_BDD = "mysy_db_chamilo_prod" MYSY_LMS_URL = "https://prodlms.mysy-hosting.fr/" MYSY_LMS_BASE_DIRECTORY = "/var/www/html/chamilo_mysy_prod/" LMS_BAS_URL = "mysy-hosting.fr/" """ DEV on localHost elif (MYSY_ENV == "DEV"): MYSY_MARIADB_USER = "mysy_mariadb_user" MYSY_MARIADB_USER_PASS = "fB5z%M)GG&g!n2c" MYSY_MARIADB_HOST = "127.0.0.1" MYSY_MARIADB_PORT = 3306 MYSY_LMS_BDD = "chamilo" MYSY_LMS_URL = "http://localhost/mysylms/lmsdev/" MYSY_LMS_BASE_DIRECTORY = "/var/www/html/chamilo_mysy/" LMS_BAS_URL = "mysy-training.fr/" elif (MYSY_ENV == "DEV"): MYSY_MARIADB_USER = "mysy_mariadb_user" MYSY_MARIADB_USER_PASS = "fB5z%M)GG&g!n2c" MYSY_MARIADB_HOST = "192.168.1.21" #MYSY_MARIADB_HOST = "88.170.110.220" MYSY_MARIADB_PORT = 3306 MYSY_LMS_BDD = "chamilo_dev2" MYSY_LMS_URL = "https://lms.mysy-training.com/" MYSY_LMS_BASE_DIRECTORY = "/var/www/html/chamilo_mysy/" LMS_BAS_URL = "mysy-training.fr/" """ elif (MYSY_ENV == "DEV"): MYSY_MARIADB_USER = "mysy_mariadb_user" MYSY_MARIADB_USER_PASS = "fB5z%M)GG&g!n2c" MYSY_MARIADB_HOST = "88.170.110.220" MYSY_MARIADB_PORT = 3306 MYSY_LMS_BDD = "chamilo_dev2" MYSY_LMS_URL = "https://lms.mysy-training.com/" MYSY_LMS_BASE_DIRECTORY = "/var/www/html/chamilo_mysy/" LMS_BAS_URL = "mysy-training.com/" elif (MYSY_ENV == "REC"): MYSY_MARIADB_USER = "mysy_mariadb_user" MYSY_MARIADB_USER_PASS = "fB5z%M)GG&g!n2c" MYSY_MARIADB_HOST = "192.168.1.21" MYSY_MARIADB_PORT = 3306 MYSY_LMS_BDD = "mysy_db_chamilo_rec" MYSY_LMS_URL = "https://reclms.mysy-training.com/" MYSY_LMS_BASE_DIRECTORY = "/var/www/html/chamilo_mysy_rec/" LMS_BAS_URL = "mysy-hosting.com/" """ Variable pour definir les unité de durée acceptées pour une formation """ CLASS_DURATION_UNIT = ['heure', 'jour', 'semaine', 'mois', 'annee', 'user_rythme'] # user_rythme : definit les formations ou la durée depend de la progression de l'utilisateur """ Varibale definit la taille maximiale des repertoire à créer par mysy """ DIRECTORY_MAX_LENGTH = 50 """ Variable defini les type de remise (code promo) acceptés: percent ou fix """ CODE_PROMO_TYPE = ['fix', 'percent'] """ Variable qui defini les type de contact possible """ CONTACT_TYPE = ['liv', 'fac', 'aut', 'nor'] """ Variable qui defini les collections qui accepte des contact """ CONTACT_COLLECTION = ['user_account', 'partnair_account', 'partner_client'] """ Variable qui defini les type d'activité possible """ ACTIVITE_TYPE = ['email', 'call', 'meeting', 'cmd', 'devis', 'facture', 'autre'] """ Variable qui defini les collections qui accepte les activités """ ACTIVITE_COLLECTION = ['user_account', 'partnair_account', 'partner_client'] """ Variable qui defini les status qui sont acceptés pour une activité encours : 0 fait : 1 annulé : -1 """ ACTIVITE_STATUS = ['0', '-1', '1'] """ Les types d'image authorisé a etre stockés en base de données """ BDD_STOCKAGE_IMG = ['logo', 'cachet', 'user'] """ Pour les session, on definit les étapes suivantes : 0 => En projet 1 => En planification 2 => Planifiée 3 => Terminée 4 => Facturée -1 => Annulée """ SESSION_ETAPE = ['-1', '0', '1', '2', '3', '4', '5'] """ Les profils des ressources humaines autorisé """ RESSOURCE_PROFIL = ['enseignant', 'cadre', 'employe', 'autre', ''] """ Dans le processus d'inscription, les statuts accepté sont : - '-1' => Annulé - 0 => Préinscription - 1 => Inscription (validée) - 2 => Encours (Inscription en cours de creation, ici, on ne declenche aucun email) """ INSCRIPTION_STATUS = ['-1', '0', '1', '2'] """ Gestion de modele de courrier : Type de courrier autorisé """ MODELE_DOCUMENT_TYPE = ['sms', 'email', 'pdf'] """ Gestion des commandes et devis des partenaires """ PARTNER_ORDER_TYPE = ['devis', 'commande']