diff --git a/src/channels.py b/src/channels.py index 8d0d350..d414a38 100644 --- a/src/channels.py +++ b/src/channels.py @@ -62,8 +62,8 @@ class Channel(IRCContext): is_channel = True - def __init__(self, name, client, **kwargs): - super().__init__(name, client, **kwargs) + def __init__(self, name, client): + super().__init__(name, client) self.users = set() self.modes = {} self.timestamp = None diff --git a/src/context.py b/src/context.py index 85b13ca..9052aee 100644 --- a/src/context.py +++ b/src/context.py @@ -39,13 +39,15 @@ def context_types(*types): class IRCContext: """Base class for channels and users.""" - def __init__(self, name, client, *, ref=None): + def __init__(self, name, client): self.name = name self.client = client - self.ref = ref + self.ref = None def lower(self): - return type(self)(lower(name), client, ref=(self.ref or self)) + temp = type(self)(lower(name), client) + temp.ref = self.ref or self + return temp def get_send_type(self, *, is_notice=False, is_privmsg=False): if is_notice and not is_privmsg: diff --git a/src/users.py b/src/users.py index c324fa6..545f2ce 100644 --- a/src/users.py +++ b/src/users.py @@ -171,9 +171,9 @@ class User(IRCContext): _messages = defaultdict(list) - def __new__(cls, cli, nick, ident, host, realname, account, **kwargs): + def __new__(cls, cli, nick, ident, host, realname, account): self = super().__new__(cls) - super(User, self).__init__(nick, cli, **kwargs) + super(User, self).__init__(nick, cli) self._ident = ident self._host = host @@ -229,7 +229,10 @@ class User(IRCContext): return done def lower(self): - return type(self)(self.client, lower(self.nick), lower(self.ident), lower(self.host), lower(self.realname), lower(self.account), channels, ref=(self.ref or self)) + temp = type(self)(self.client, lower(self.nick), lower(self.ident), lower(self.host), lower(self.realname), lower(self.account)) + temp.channels = self.channels + temp.ref = self.ref or self + return temp def is_owner(self): if self.is_fake: