From 1c474771c513beaaecea90ec30e732d8c8cdc9c0 Mon Sep 17 00:00:00 2001 From: jesopo Date: Mon, 3 Sep 2018 22:17:34 +0100 Subject: Support IRCv3's echo-message --- IRCServer.py | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) (limited to 'IRCServer.py') diff --git a/IRCServer.py b/IRCServer.py index dbfbdf8e..a1d42476 100644 --- a/IRCServer.py +++ b/IRCServer.py @@ -329,27 +329,28 @@ class Server(object): def send_message(self, target, message, prefix=None): full_message = message if not prefix else prefix+message - self.send("PRIVMSG %s :%s" % (target, full_message)) - action = full_message.startswith("\01ACTION " - ) and full_message.endswith("\01") - - if action: - message = full_message.split("\01ACTION ", 1)[1][:-1] - - full_message_split = full_message.split() - if self.has_channel(target): - channel = self.get_channel(target) - channel.buffer.add_line(None, message, action, True) - self.events.on("self").on("message").on("channel").call( - message=full_message, message_split=full_message_split, - channel=channel, action=action, server=self) - else: - user = self.get_user(target) - user.buffer.add_line(None, message, action, True) - self.events.on("self").on("message").on("private").call( - message=full_message, message_split=full_message_split, - user=user, action=action, server=self) + + if not "echo-message" in self.capabilities: + action = full_message.startswith("\01ACTION " + ) and full_message.endswith("\01") + + if action: + message = full_message.split("\01ACTION ", 1)[1][:-1] + + full_message_split = full_message.split() + if self.has_channel(target): + channel = self.get_channel(target) + channel.buffer.add_line(None, message, action, True) + self.events.on("self").on("message").on("channel").call( + message=full_message, message_split=full_message_split, + channel=channel, action=action, server=self) + else: + user = self.get_user(target) + user.buffer.add_line(None, message, action, True) + self.events.on("self").on("message").on("private").call( + message=full_message, message_split=full_message_split, + user=user, action=action, server=self) def send_notice(self, target, message): self.send("NOTICE %s :%s" % (target, message)) -- cgit v1.3.1-10-gc9f91