aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar jesopo2020-01-22 11:19:44 +0000
committerGravatar jesopo2020-01-22 11:19:44 +0000
commit1c5d67f836fcc54ad602634684882a00faf75aee (patch)
tree4d33f5c951ba38d792b07d0896c8517edacd56c1 /src
parent!mute -> !quiet, refactor quiets to be mode,prefix,listnum,endnum (diff)
signature
parse proposed ISUPPORT QUIET token
Diffstat (limited to 'src')
-rw-r--r--src/IRCServer.py1
-rw-r--r--src/core_modules/line_handler/core.py6
2 files changed, 7 insertions, 0 deletions
diff --git a/src/IRCServer.py b/src/IRCServer.py
index 92c82350..c3460a4b 100644
--- a/src/IRCServer.py
+++ b/src/IRCServer.py
@@ -57,6 +57,7 @@ class Server(IRCObject.Object):
self.channel_modes = [
"n", "i", "m", "t", "p", "s"
] # type: typing.List[str]
+ self.quiet: typing.Optional[typing.List[str]] = None
self.channel_types = ["#"]
self.case_mapping = "rfc1459"
diff --git a/src/core_modules/line_handler/core.py b/src/core_modules/line_handler/core.py
index 60bde125..c72bcb77 100644
--- a/src/core_modules/line_handler/core.py
+++ b/src/core_modules/line_handler/core.py
@@ -55,6 +55,12 @@ def handle_005(events, event):
event["server"].case_mapping = isupport["CASEMAPPING"]
if "STATUSMSG" in isupport:
event["server"].statusmsg = list(isupport["STATUSMSG"])
+ if "QUIET" in isupport:
+ quiet = dict(enumerate(isupport["QUIET"].split(",")))
+ prefix = quiet.get(1, "")
+ list_numeric = qiuet.get(2, "367") # RPL_BANLIST
+ end_numeric = quiet.get(3, "368") # RPL_ENDOFBANLIST
+ event["server"].quiet = [quiet[0], prefix, list_numeric, end_numeric]
events.on("received.005").call(isupport=isupport,
server=event["server"])