from .exceptions import MemberNotFoundException import hashlib class Group: def __init__(self, group_id, name, admidio): self.__c = admidio.db.cursor() self.id = group_id self.name = name self.admidio = admidio self.members = list() self.leaders = list() sql = f"""SELECT mem_usr_id, mem_leader FROM {self.admidio.prefix}_members WHERE mem_rol_id = {self.id} AND mem_end = '9999-12-31'""" self.__c.execute(sql) for row in self.__c.fetchall(): try: if row[1] == 1: self.leaders.append(admidio.getMemberFromID(row[0])) else: self.members.append(admidio.getMemberFromID(row[0])) except MemberNotFoundException: print( f"Member with id {row[0]} not found, group id: {self.id}") def __eq__(self, other): if isinstance(other, Group): return self.hash() == other.hash() def hash(self): return hashlib.md5((str(self.id) + self.name + (''.join(str(x) for x in self.members) or '') + (''.join(str(x) for x in self.leaders) or '') ).encode('utf-8')).hexdigest() def getAllMembers(self): """Return leaders and members in group, combined""" return self.leaders.append(self.members)