Echo: rewrite to do regex handlers

this is the first implementer of the new regex handler code, by all
accounts it's working fine, hopefully the underlying code in DrBotIRC
won't need to change as i go forward, but it might
This commit is contained in:
Brian S. Stephan 2012-12-20 10:20:33 -06:00
parent 7391e28b9b
commit f09bc06634
1 changed files with 35 additions and 7 deletions

View File

@ -14,9 +14,8 @@ 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 <http://www.gnu.org/licenses/>.
"""
import re
"""
from Module import Module
@ -24,12 +23,41 @@ class Echo(Module):
"""Repeat provided text."""
def do(self, connection, event, nick, userhost, what, admin_unlocked):
"""Repeat provided text."""
def register_handlers(self):
"""Hook handler functions into the IRC library."""
match = re.search('^!echo\s+(.*)$', what)
if match:
return self.irc.reply(event, match.group(1))
self.irc.add_global_regex_handler('pubmsg', r'^!echo\s+(.*)$',
self.echo)
self.irc.add_global_regex_handler('privmsg', r'^!echo\s+(.*)$',
self.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 list 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;