From 1ecbacefc253e27fc671bf8f14d032be47c33808 Mon Sep 17 00:00:00 2001 From: jesopo Date: Tue, 25 Feb 2020 14:27:15 +0000 Subject: send_modes takes list[tuple[s,s]], add !down, !deop yourself last --- src/IRCChannel.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/IRCChannel.py b/src/IRCChannel.py index e64077a1..08116120 100644 --- a/src/IRCChannel.py +++ b/src/IRCChannel.py @@ -215,17 +215,18 @@ class Channel(IRCObject.Object): def send_tagmsg(self, tags: dict): return self.server.send_tagmsg(self.name, tags) - def _chunks(self, n: int, l: typing.List[str]): + def _chunks(self, n: int, l: typing.List[typing.Tuple[str, str]]): return [l[i:i+n] for i in range(0, len(l), n)] def send_mode(self, mode: str=None, target: typing.List[str]=None): return self.server.send_mode(self.name, mode, target) - def send_modes(self, mode: str, add: bool, args: typing.List[str]): + def send_modes(self, modes: typing.List[typing.Tuple[str, str]], add: bool): chunk_n = min(6, int(self.server.isupport.get("MODES", "3") or "6")) - for chunk in self._chunks(chunk_n, args): - mode_str = "%s%s" % ("+" if add else "-", mode*len(chunk)) - self.server.send_mode(self.name, mode_str, chunk) + for chunk in self._chunks(chunk_n, modes): + modes, args = list(zip(*chunk)) + mode_str = "%s%s" % ("+" if add else "-", "".join(modes)) + self.server.send_mode(self.name, mode_str, args) def send_kick(self, target: str, reason: str=None): return self.server.send_kick(self.name, target, reason) -- cgit v1.3.1-10-gc9f91