aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/relay.py14
1 files changed, 12 insertions, 2 deletions
diff --git a/modules/relay.py b/modules/relay.py
index 5920445f..7c2f768b 100644
--- a/modules/relay.py
+++ b/modules/relay.py
@@ -1,11 +1,17 @@
from src import ModuleManager, utils
class Module(ModuleManager.BaseModule):
+ @utils.hook("new.server")
+ def new_server(self, event):
+ event["server"]._relay_ignore = []
+
def _get_relays(self, channel):
return channel.get_setting("channel-relays", [])
def _relay(self, event, channel):
- if "from_self" in event and event["from_self"]:
+ if ("parsed_line" in event and
+ event["parsed_line"].id in event["server"]._relay_ignore):
+ event["server"]._relay_ignore.remove(event["parsed_line"].id)
return
relays = self._get_relays(channel)
@@ -28,7 +34,11 @@ class Module(ModuleManager.BaseModule):
relay_message = "[relay/%s%s] %s" % (str(event["server"]),
relay_prefix_channel, event["line"])
- other_channel.send_message(relay_message)
+
+ message = utils.irc.protocol.privmsg(other_channel.name,
+ relay_message)
+ server._relay_ignore.append(message.id)
+ server.send(message)
def _has_relay_for(self, channel, server_id, channel_name):
relays = self._get_relays(channel)