diff options
| author | 2018-09-03 22:17:34 +0100 | |
|---|---|---|
| committer | 2018-09-03 22:17:34 +0100 | |
| commit | 1c474771c513beaaecea90ec30e732d8c8cdc9c0 (patch) | |
| tree | 08b622db9e328a58897649759bcb3f23a2c67709 /IRCServer.py | |
| parent | Keep a list of CAP capabilities in IRCServer (diff) | |
| signature | ||
Support IRCv3's echo-message
Diffstat (limited to 'IRCServer.py')
| -rw-r--r-- | IRCServer.py | 37 |
1 files changed, 19 insertions, 18 deletions
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] + if not "echo-message" in self.capabilities: + action = full_message.startswith("\01ACTION " + ) and full_message.endswith("\01") - 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 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)) |
