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
This commit is contained in:
parent
5bfa0d2b50
commit
301dd7378a
8 changed files with 20 additions and 21 deletions
|
@ -23,8 +23,7 @@ class Module(ModuleManager.BaseModule):
|
||||||
@utils.hook("self.join")
|
@utils.hook("self.join")
|
||||||
def on_join(self, event):
|
def on_join(self, event):
|
||||||
channels = event["server"].get_setting("autojoin", [])
|
channels = event["server"].get_setting("autojoin", [])
|
||||||
channel_name = utils.irc.lower(event["server"].case_mapping,
|
channel_name = event["server"].irc_lower(event["channel"].name)
|
||||||
event["channel"].name)
|
|
||||||
if not channel_name in channels:
|
if not channel_name in channels:
|
||||||
channels.append(channel_name)
|
channels.append(channel_name)
|
||||||
event["server"].set_setting("autojoin", channels)
|
event["server"].set_setting("autojoin", channels)
|
||||||
|
|
|
@ -36,8 +36,7 @@ class Module(ModuleManager.BaseModule):
|
||||||
if not event["user"].last_karma or (time.time()-event["user"
|
if not event["user"].last_karma or (time.time()-event["user"
|
||||||
].last_karma) >= KARMA_DELAY_SECONDS:
|
].last_karma) >= KARMA_DELAY_SECONDS:
|
||||||
target = match.group(1).strip()
|
target = match.group(1).strip()
|
||||||
if utils.irc.lower(event["server"].case_mapping, target
|
if event["server"].irc_lower(target) == event["user"].name:
|
||||||
) == event["user"].name:
|
|
||||||
if verbose:
|
if verbose:
|
||||||
self.events.on("send.stderr").call(
|
self.events.on("send.stderr").call(
|
||||||
module_name="Karma", target=event["channel"],
|
module_name="Karma", target=event["channel"],
|
||||||
|
|
|
@ -618,8 +618,7 @@ class Module(ModuleManager.BaseModule):
|
||||||
# we need a registered nickname for this channel
|
# we need a registered nickname for this channel
|
||||||
@utils.hook("raw.received.477", default_event=True)
|
@utils.hook("raw.received.477", default_event=True)
|
||||||
def handle_477(self, event):
|
def handle_477(self, event):
|
||||||
channel_name = utils.irc.lower(event["server"].case_mapping,
|
channel_name = event["server"].irc_lower(event["args"][1])
|
||||||
event["args"][1])
|
|
||||||
if channel_name in event["server"].channels:
|
if channel_name in event["server"].channels:
|
||||||
key = event["server"].attempted_join[channel_name]
|
key = event["server"].attempted_join[channel_name]
|
||||||
self.timers.add("rejoin", 5, channel_name=channe_name, key=key,
|
self.timers.add("rejoin", 5, channel_name=channe_name, key=key,
|
||||||
|
|
|
@ -45,8 +45,7 @@ class Buffer(object):
|
||||||
) -> typing.Optional[BufferLine]:
|
) -> typing.Optional[BufferLine]:
|
||||||
from_self = kwargs.get("from_self", True)
|
from_self = kwargs.get("from_self", True)
|
||||||
for_user = kwargs.get("for_user", "")
|
for_user = kwargs.get("for_user", "")
|
||||||
for_user = utils.irc.lower(self.server.case_mapping, for_user
|
for_user = self.server.irc_lower(for_user) if for_user else None
|
||||||
) if for_user else None
|
|
||||||
not_pattern = kwargs.get("not_pattern", None)
|
not_pattern = kwargs.get("not_pattern", None)
|
||||||
for line in self.lines:
|
for line in self.lines:
|
||||||
if line.from_self and not from_self:
|
if line.from_self and not from_self:
|
||||||
|
@ -54,8 +53,8 @@ class Buffer(object):
|
||||||
elif re.search(pattern, line.message):
|
elif re.search(pattern, line.message):
|
||||||
if not_pattern and re.search(not_pattern, line.message):
|
if not_pattern and re.search(not_pattern, line.message):
|
||||||
continue
|
continue
|
||||||
if for_user and not utils.irc.lower(self.server.case_mapping,
|
if for_user and not self.server.irc_lower(line.sender
|
||||||
line.sender) == for_user:
|
) == for_user:
|
||||||
continue
|
continue
|
||||||
return line
|
return line
|
||||||
return None
|
return None
|
||||||
|
|
|
@ -6,7 +6,7 @@ class Channel(IRCObject.Object):
|
||||||
name = ""
|
name = ""
|
||||||
def __init__(self, name: str, id, server: "IRCServer.Server",
|
def __init__(self, name: str, id, server: "IRCServer.Server",
|
||||||
bot: "IRCBot.Bot"):
|
bot: "IRCBot.Bot"):
|
||||||
self.name = utils.irc.lower(server.case_mapping, name)
|
self.name = server.irc_lower(name)
|
||||||
self.id = id
|
self.id = id
|
||||||
self.server = server
|
self.server = server
|
||||||
self.bot = bot
|
self.bot = bot
|
||||||
|
|
|
@ -30,7 +30,7 @@ class Channels(object):
|
||||||
return self._bot.database.channels.get_id(self._server.id, channel_name)
|
return self._bot.database.channels.get_id(self._server.id, channel_name)
|
||||||
|
|
||||||
def _name_lower(self, channel_name: str) -> str:
|
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:
|
def contains(self, name: str) -> bool:
|
||||||
lower = self._name_lower(name)
|
lower = self._name_lower(name)
|
||||||
|
|
|
@ -173,12 +173,11 @@ class Server(IRCObject.Object):
|
||||||
|
|
||||||
def set_own_nickname(self, nickname: str):
|
def set_own_nickname(self, nickname: str):
|
||||||
self.nickname = nickname
|
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:
|
def is_own_nickname(self, nickname: str) -> bool:
|
||||||
if self.nickname == None:
|
if self.nickname == None:
|
||||||
return False
|
return False
|
||||||
return utils.irc.equals(self.case_mapping, nickname,
|
return self.irc_equals(nickname, typing.cast(str, self.nickname))
|
||||||
typing.cast(str, self.nickname))
|
|
||||||
|
|
||||||
def add_own_mode(self, mode: str, arg: str=None):
|
def add_own_mode(self, mode: str, arg: str=None):
|
||||||
self.own_modes[mode] = arg
|
self.own_modes[mode] = arg
|
||||||
|
@ -191,7 +190,7 @@ class Server(IRCObject.Object):
|
||||||
self.add_own_mode(mode, arg)
|
self.add_own_mode(mode, arg)
|
||||||
|
|
||||||
def has_user(self, nickname: str) -> bool:
|
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
|
def get_user(self, nickname: str, create: bool=True
|
||||||
) -> typing.Optional[IRCUser.User]:
|
) -> typing.Optional[IRCUser.User]:
|
||||||
if not self.has_user(nickname) and create:
|
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.events.on("new.user").call(user=new_user, server=self)
|
||||||
self.users[new_user.nickname_lower] = new_user
|
self.users[new_user.nickname_lower] = new_user
|
||||||
self.new_users.add(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)
|
None)
|
||||||
def get_user_id(self, nickname: str) -> int:
|
def get_user_id(self, nickname: str) -> int:
|
||||||
self.bot.database.users.add(self.id, nickname)
|
self.bot.database.users.add(self.id, nickname)
|
||||||
|
@ -221,9 +220,14 @@ class Server(IRCObject.Object):
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def change_user_nickname(self, old_nickname: str, new_nickname: str):
|
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)
|
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):
|
def parse_data(self, line: str):
|
||||||
if not line:
|
if not line:
|
||||||
|
|
|
@ -38,8 +38,7 @@ class User(IRCObject.Object):
|
||||||
|
|
||||||
def set_nickname(self, nickname: str):
|
def set_nickname(self, nickname: str):
|
||||||
self.nickname = nickname
|
self.nickname = nickname
|
||||||
self.nickname_lower = utils.irc.lower(self.server.case_mapping,
|
self.nickname_lower = self.server.irc_lower(nickname)
|
||||||
nickname)
|
|
||||||
self.name = self.nickname_lower
|
self.name = self.nickname_lower
|
||||||
def join_channel(self, channel: "IRCChannel.Channel"):
|
def join_channel(self, channel: "IRCChannel.Channel"):
|
||||||
self.channels.add(channel)
|
self.channels.add(channel)
|
||||||
|
|
Loading…
Reference in a new issue