aboutsummaryrefslogtreecommitdiff
path: root/IRCServer.py
diff options
context:
space:
mode:
authorGravatar jesopo2018-09-03 22:17:34 +0100
committerGravatar jesopo2018-09-03 22:17:34 +0100
commit1c474771c513beaaecea90ec30e732d8c8cdc9c0 (patch)
tree08b622db9e328a58897649759bcb3f23a2c67709 /IRCServer.py
parentKeep a list of CAP capabilities in IRCServer (diff)
signature
Support IRCv3's echo-message
Diffstat (limited to 'IRCServer.py')
-rw-r--r--IRCServer.py37
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))