""" Echo - repeat text Copyright (C) 2010 Brian S. Stephan This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . """ from Module import Module class Echo(Module): """Repeat provided text.""" def register_handlers(self): """Hook handler functions into the IRC library.""" # register IRC regex handlers self.irc.add_global_regex_handler('pubmsg', r'^!echo\s+(.*)$', self.echo) self.irc.add_global_regex_handler('privmsg', r'^!echo\s+(.*)$', self.echo) # register XML-RPC handlers def echo_wrap(msg): """Get back the sent message. Args: msg the message to get returned Returns: msg """ return self.echo(None, None, None, False, (msg,)) self.irc.xmlrpc_register_function(echo_wrap, 'echo') def unregister_handlers(self): """Unhook handler functions from the IRC library.""" self.irc.remove_global_regex_handler('pubmsg', r'^!echo\s+(.*)$', self.echo) self.irc.remove_global_regex_handler('privmsg', r'^!echo\s+(.*)$', self.echo) def echo(self, nick, userhost, event, from_admin, groups): """Return the message received. Args: nick source nickname (unused) userhost source userhost (unused) event IRC event, used in IRC reply, or none for direct call from_admin whether or not the event came from an admin (unused) groups tuple length 1, the message to echo """ msg = groups[0] self.log.debug("replying with '{0:s}'".format(msg)) if event: return self.irc.reply(event, msg) else: return msg # vi:tabstop=4:expandtab:autoindent # kate: indent-mode python;indent-width 4;replace-tabs on;