aboutsummaryrefslogtreecommitdiff
path: root/modules/ircv3_echo_message.py
blob: 276ac55476ed5f35ed41349a914612c49b824a04 (about) (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from src import EventManager, ModuleManager, utils

CAP = utils.irc.Capability("echo-message", depends_on=["labeled-response"])

@utils.export("cap", CAP)
class Module(ModuleManager.BaseModule):
    @utils.hook("raw.send.privmsg", priority=EventManager.PRIORITY_LOW)
    @utils.hook("raw.send.notice", priority=EventManager.PRIORITY_LOW)
    def send_message(self, event):
        if event["server"].has_capability(CAP):
            event.eat()

    @utils.hook("preprocess.send.privmsg")
    @utils.hook("preprocess.send.notice")
    @utils.hook("preprocess.send.tagmsg")
    def preprocess_send(self, event):
        if event["server"].has_capability(CAP):
            event["events"].on("labeled-response").hook(self.on_echo)

    def on_echo(self, event):
        event["responses"][0].id = event["line"].id