aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar jesopo2018-09-03 21:47:59 +0100
committerGravatar jesopo2018-09-03 21:47:59 +0100
commit5963308bdc1ad529c09c70fc65ea5ba69b9106ba (patch)
tree50254b6b9ce9158b35714a121445e797cb71384b
parentIRCv3 message tag value should not be an array (diff)
signature
Support TAGMSG in IRCLineHandler
-rw-r--r--IRCLineHandler.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/IRCLineHandler.py b/IRCLineHandler.py
index 5c4e06a0..024271b8 100644
--- a/IRCLineHandler.py
+++ b/IRCLineHandler.py
@@ -42,6 +42,7 @@ class LineHandler(object):
events.on("raw").on("NOTICE").hook(self.notice)
events.on("raw").on("CHGHOST").hook(self.chghost)
events.on("raw").on("ACCOUNT").hook(self.account)
+ events.on("raw").on("TAGMSG").hook(self.account)
events.on("raw").on("CAP").hook(self.cap)
events.on("raw").on("authenticate").hook(self.authenticate)
@@ -402,6 +403,21 @@ class LineHandler(object):
message=message, message_split=message_split,
user=user, server=event["server"])
+ # IRCv3 TAGMSG, used to send tags without any other information
+ def tagmsg(self, event):
+ nickname, username, hostname = Utils.seperate_hostmask(
+ event["prefix"])
+ user = event["channel"].get_user(nickname)
+ target = event["args"][0]
+
+ if target[0] in event["server"].channel_types:
+ channel = event["server"].get_channel(target)
+ self.events.on("received.tagmsg.channel").call(channel=channel,
+ user=user, tags=event["tags"], server=server)
+ elif event["server"].is_own_nickname(target):
+ self.events.on("received.tagmsg.private").call(
+ user=user, tags=event["tags"], server=server)
+
# a user's username and/or hostname has changed
def chghost(self, event):
nickname, username, hostname = Utils.seperate_hostmask(