mirror of
https://github.com/nichkara/InfinitumBotty.git
synced 2026-06-10 22:26:23 +02:00
57 lines
1.9 KiB
Python
57 lines
1.9 KiB
Python
from FaustBot.Model.RemoteUser import RemoteUser
|
|
from FaustBot.Modules.JoinObserverPrototype import JoinObserverPrototype
|
|
from FaustBot.Modules.ModuleType import ModuleType
|
|
from ..Modules.KickObserverPrototype import KickObserverPrototype
|
|
from ..Modules.LeaveObserverPrototype import LeaveObserverPrototype
|
|
from ..Modules.NickChangeObserverPrototype import NickChangeObserverPrototype
|
|
|
|
|
|
class UserList(JoinObserverPrototype, KickObserverPrototype, LeaveObserverPrototype, NickChangeObserverPrototype):
|
|
@staticmethod
|
|
def cmd():
|
|
return None
|
|
|
|
@staticmethod
|
|
def help():
|
|
return None
|
|
|
|
def __init__(self):
|
|
super().__init__()
|
|
self.userList = {}
|
|
|
|
@staticmethod
|
|
def get_module_types():
|
|
return [ModuleType.ON_JOIN, ModuleType.ON_KICK, ModuleType.ON_LEAVE, ModuleType.ON_NICK_CHANGE]
|
|
|
|
def update_on_kick(self, data, connection):
|
|
if data['nick'] in self.userList:
|
|
del self.userList[data['nick']]
|
|
# print(self.userList)
|
|
|
|
def update_on_leave(self, data, connection):
|
|
if data['nick'] in self.userList:
|
|
del self.userList[data['nick']]
|
|
# print(self.userList)
|
|
|
|
def update_on_join(self, data, connection):
|
|
self.userList[data['nick']] = RemoteUser(data['nick'], data['user'], data['host'])
|
|
# print(self.userList)
|
|
|
|
def update_on_nick_change(self, data, connection):
|
|
if data['old_nick'] in self.userList:
|
|
remuser = self.userList[data['old_nick']]
|
|
del self.userList[data['old_nick']]
|
|
else:
|
|
# shouldn't happen but let's be safe.
|
|
remuser = RemoteUser('UN.KNOWN', 'UN.KNOWN', 'UN.KNOWN')
|
|
|
|
remuser.nick = data['new_nick']
|
|
self.userList[data['new_nick']] = remuser
|
|
# print(self.userList)
|
|
|
|
def clear_list(self):
|
|
self.userList = {}
|
|
|
|
def add_user(self, remuser):
|
|
self.userList[remuser.nick] = remuser
|