Version 5 with dataclasses and new vote system

This commit is contained in:
adator85
2024-08-17 13:32:11 +02:00
parent ab593b0ae6
commit deae79db57
8 changed files with 1074 additions and 383 deletions

View File

@@ -68,7 +68,7 @@ class User:
if record.uid == uid:
self.UID_DB.remove(record)
result = True
self.log.debug(f'UID ({record.uid}) has been created')
self.log.debug(f'UID ({record.uid}) has been deleted')
if not result:
self.log.critical(f'The UID {uid} was not deleted')
@@ -111,7 +111,6 @@ class User:
self.log.debug(f'The value {uidornickname} -- {nickname}')
return nickname
class Admin:
@dataclass
@@ -216,3 +215,108 @@ class Admin:
nickname = record.nickname
self.log.debug(f'The value {uidornickname} -- {nickname}')
return nickname
class Channel:
@dataclass
class ChannelModel:
name: str
mode: str
uids: list
UID_CHANNEL_DB: list[ChannelModel] = []
def __init__(self, Base: Base) -> None:
self.log = Base.logs
pass
def insert(self, newChan: ChannelModel) -> bool:
result = False
exist = False
for record in self.UID_CHANNEL_DB:
if record.name == newChan.name:
exist = True
self.log.debug(f'{record.name} already exist')
for user in newChan.uids:
record.uids.append(user)
# Supprimer les doublons
del_duplicates = list(set(record.uids))
record.uids = del_duplicates
self.log.debug(f'Updating a new UID to the channel {record}')
if not exist:
self.UID_CHANNEL_DB.append(newChan)
result = True
self.log.debug(f'New Channel Created: ({newChan})')
if not result:
self.log.critical(f'The Channel Object was not inserted {newChan}')
return result
def update(self, name: str, newMode: str) -> bool:
result = False
for record in self.UID_CHANNEL_DB:
if record.name == name:
record.mode = newMode
result = True
self.log.debug(f'Mode ({record.name}) has been updated with new mode {newMode}')
if not result:
self.log.critical(f'The channel mode {newMode} was not updated, name = {name}')
return result
def delete(self, name: str) -> bool:
result = False
for record in self.UID_CHANNEL_DB:
if record.name == name:
self.UID_CHANNEL_DB.remove(record)
result = True
self.log.debug(f'Channel ({record.name}) has been created')
if not result:
self.log.critical(f'The Channel {name} was not deleted')
return result
def delete_user_from_channel(self,chan_name: str, uid:str) -> bool:
result = False
for record in self.UID_CHANNEL_DB:
if record.name == chan_name:
record.uids.remove(uid)
self.log.debug(f'uid {uid} has been removed, here is the new object: {record}')
result = True
return result
def get_Channel(self, name: str) -> Union[ChannelModel, None]:
Channel = None
for record in self.UID_CHANNEL_DB:
if record.name == name:
Channel = record
self.log.debug(f'Search {name} -- result = {Channel}')
return Channel
def get_mode(self, name:str) -> Union[str, None]:
mode = None
for record in self.UID_CHANNEL_DB:
if record.name == name:
mode = record.mode
self.log.debug(f'The mode of the channel {name} has been found: {mode}')
return mode