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