import logging

from ircbot.lib import Plugin, reply_destination_for_event


log = logging.getLogger('ircbot.lib')


class Echo(Plugin):

    """Have IRC commands to do IRC things (join channels, quit, etc.)."""

    def start(self):
        """Set up the handlers."""

        self.connection.reactor.add_global_regex_handler('pubmsg', r'^!echo\s+(.*)$',
                                                         getattr(self, 'handle_echo'), -20)
        self.connection.reactor.add_global_regex_handler('privmsg', r'^!echo\s+(.*)$',
                                                         getattr(self, 'handle_echo'), -20)

        super(Echo, self).start()

    def stop(self):
        """Tear down handlers."""

        self.connection.reactor.remove_global_regex_handler('pubmsg', getattr(self, 'handle_echo'))
        self.connection.reactor.remove_global_regex_handler('privmsg', getattr(self, 'handle_echo'))

        super(Echo, self).stop()

    def handle_echo(self, connection, event, match):
        """Handle the echo command... by echoing."""

        return self.bot.reply(event, match.group(1))


plugin = Echo