From 301dd7378a77671f00c0b7e2be127f0d72792bae Mon Sep 17 00:00:00 2001 From: jesopo Date: Thu, 24 Jan 2019 17:12:50 +0000 Subject: Add `irc_lower()` and `irc_equals()` to IRCServer.Server so that no where else in the code has to know about the server having a casemapping --- src/IRCBuffer.py | 7 +++---- src/IRCChannel.py | 2 +- src/IRCChannels.py | 2 +- src/IRCServer.py | 18 +++++++++++------- src/IRCUser.py | 3 +-- 5 files changed, 17 insertions(+), 15 deletions(-) (limited to 'src') diff --git a/src/IRCBuffer.py b/src/IRCBuffer.py index 9d0684cf..dd4d11ae 100644 --- a/src/IRCBuffer.py +++ b/src/IRCBuffer.py @@ -45,8 +45,7 @@ class Buffer(object): ) -> typing.Optional[BufferLine]: from_self = kwargs.get("from_self", True) for_user = kwargs.get("for_user", "") - for_user = utils.irc.lower(self.server.case_mapping, for_user - ) if for_user else None + for_user = self.server.irc_lower(for_user) if for_user else None not_pattern = kwargs.get("not_pattern", None) for line in self.lines: if line.from_self and not from_self: @@ -54,8 +53,8 @@ class Buffer(object): elif re.search(pattern, line.message): if not_pattern and re.search(not_pattern, line.message): continue - if for_user and not utils.irc.lower(self.server.case_mapping, - line.sender) == for_user: + if for_user and not self.server.irc_lower(line.sender + ) == for_user: continue return line return None diff --git a/src/IRCChannel.py b/src/IRCChannel.py index 843133e0..0e272732 100644 --- a/src/IRCChannel.py +++ b/src/IRCChannel.py @@ -6,7 +6,7 @@ class Channel(IRCObject.Object): name = "" def __init__(self, name: str, id, server: "IRCServer.Server", bot: "IRCBot.Bot"): - self.name = utils.irc.lower(server.case_mapping, name) + self.name = server.irc_lower(name) self.id = id self.server = server self.bot = bot diff --git a/src/IRCChannels.py b/src/IRCChannels.py index fc96a2e1..f07a7143 100644 --- a/src/IRCChannels.py +++ b/src/IRCChannels.py @@ -30,7 +30,7 @@ class Channels(object): return self._bot.database.channels.get_id(self._server.id, channel_name) def _name_lower(self, channel_name: str) -> str: - return utils.irc.lower(self._server.case_mapping, channel_name) + return self._server.irc_lower(channel_name) def contains(self, name: str) -> bool: lower = self._name_lower(name) diff --git a/src/IRCServer.py b/src/IRCServer.py index 7a3aa150..3d6d5a8f 100644 --- a/src/IRCServer.py +++ b/src/IRCServer.py @@ -173,12 +173,11 @@ class Server(IRCObject.Object): def set_own_nickname(self, nickname: str): self.nickname = nickname - self.nickname_lower = utils.irc.lower(self.case_mapping, nickname) + self.nickname_lower = self.irc_lower(nickname) def is_own_nickname(self, nickname: str) -> bool: if self.nickname == None: return False - return utils.irc.equals(self.case_mapping, nickname, - typing.cast(str, self.nickname)) + return self.irc_equals(nickname, typing.cast(str, self.nickname)) def add_own_mode(self, mode: str, arg: str=None): self.own_modes[mode] = arg @@ -191,7 +190,7 @@ class Server(IRCObject.Object): self.add_own_mode(mode, arg) def has_user(self, nickname: str) -> bool: - return utils.irc.lower(self.case_mapping, nickname) in self.users + return self.irc_lower(nickname) in self.users def get_user(self, nickname: str, create: bool=True ) -> typing.Optional[IRCUser.User]: if not self.has_user(nickname) and create: @@ -200,7 +199,7 @@ class Server(IRCObject.Object): self.events.on("new.user").call(user=new_user, server=self) self.users[new_user.nickname_lower] = new_user self.new_users.add(new_user) - return self.users.get(utils.irc.lower(self.case_mapping, nickname), + return self.users.get(self.irc_lower(nickname), None) def get_user_id(self, nickname: str) -> int: self.bot.database.users.add(self.id, nickname) @@ -221,9 +220,14 @@ class Server(IRCObject.Object): return None def change_user_nickname(self, old_nickname: str, new_nickname: str): - user = self.users.pop(utils.irc.lower(self.case_mapping, old_nickname)) + user = self.users.pop(self.irc_lower(old_nickname)) user._id = self.get_user_id(new_nickname) - self.users[utils.irc.lower(self.case_mapping, new_nickname)] = user + self.users[self.irc_lower(new_nickname)] = user + + def irc_lower(self, s: str) -> bool: + return utils.irc.lower(self.case_mapping, s) + def irc_equal(self, s1: str, s2: str) -> bool: + return utils.irc.equals(self.case_mapping, s1, s2) def parse_data(self, line: str): if not line: diff --git a/src/IRCUser.py b/src/IRCUser.py index ecb03342..63e41036 100644 --- a/src/IRCUser.py +++ b/src/IRCUser.py @@ -38,8 +38,7 @@ class User(IRCObject.Object): def set_nickname(self, nickname: str): self.nickname = nickname - self.nickname_lower = utils.irc.lower(self.server.case_mapping, - nickname) + self.nickname_lower = self.server.irc_lower(nickname) self.name = self.nickname_lower def join_channel(self, channel: "IRCChannel.Channel"): self.channels.add(channel) -- cgit v1.3.1-10-gc9f91