import MySQLdb


HOST_SYMPA="sympav6.ac-nice.fr"
USER_MYSQL_SYMPA="listaire"
PASSWORD_MYSQL_SYMPA="rqp60umh"
PORT_SYMPA="3306"
DB_SYMPA="sympaV6117"


class MySQLSympaApp():

    def __init__(self, h, u, p, d):
        self.u = u
        self.p = p
        self.h = h
        self.d = d
        self.requestlistes = []

    def requete_sympa(self,requete):
        connectionObject_sympa = MySQLdb.connect(host=self.h, user=self.u, passwd=self.p, db=self.d)
        c_sympa = connectionObject_sympa.cursor()
        c_sympa.execute(requete)
        return c_sympa.fetchall()

    def recupUserSympas(self,mail):
        listes = []
        requete = 'SELECT `list_subscriber` FROM `subscriber_table` WHERE `user_subscriber` = "%s";' % (mail)
        for liste in self.requete_sympa(requete) :
             listes.append (liste[0]+"@ac-nice.fr")
        return listes

    def recursiveWhich(self,mail,recur = 0):
            listes = self.recupUserSympas(mail)
            for liste in listes:
                if not liste in self.requestlistes:
                    self.requestlistes.append(liste)
                    if recur == 1:
                        self.recursiveWhich(liste,1)

def RecupListesSympasSQL(mails,recur) :
    MySQLSympa = MySQLSympaApp(HOST_SYMPA, USER_MYSQL_SYMPA, PASSWORD_MYSQL_SYMPA, DB_SYMPA)
    for mail in mails :
        MySQLSympa.recursiveWhich(mail,recur)
    return MySQLSympa.requestlistes

def calc_info(user_infos):
    mails = user_infos.get('mail') if isinstance(user_infos.get('mail'), list) else []
    mailalts = user_infos.get('mailAlternateAddress') if isinstance(user_infos.get('mailAlternateAddress'), list) else []
    maileqs = user_infos.get('mailEquivalentAddress') if isinstance(user_infos.get('mailEquivalentAddress'), list) else []
    allmails = mails+mailalts+maileqs
    listsSQL = RecupListesSympasSQL(allmails,1)
    if "l-e-s-t-utlstr@ac-nice.fr" not in listsSQL:
        listsSQL.append("unsupported")
    return listsSQL
