From 8fc200ae1f3d6dfac43d3c7f3c6a0d79175f95bb Mon Sep 17 00:00:00 2001 From: Jeremy Fincher Date: Mon, 20 Oct 2003 03:56:15 +0000 Subject: [PATCH] Removed premature optimization of using the regexp to decide when to tokenize. We'll optimize when we have to, likely by making tokenize memoize. --- src/callbacks.py | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/src/callbacks.py b/src/callbacks.py index 06f5653b7..65793d03f 100644 --- a/src/callbacks.py +++ b/src/callbacks.py @@ -274,7 +274,7 @@ def tokenize(s): args = Tokenizer(tokens).tokenize(s) except ValueError, e: raise SyntaxError, str(e) - debug.msg('tokenize took %s seconds.' % (time.time() - start), 'verbose') + #debug.msg('tokenize took %s seconds.' % (time.time() - start), 'verbose') return args def getCommands(tokens): @@ -606,7 +606,6 @@ class Privmsg(irclib.IrcCallback): funcname = '%s.%s' % (f.im_class.__name__, f.im_func.func_name) debug.msg('%s took %s seconds' % (funcname, elapsed), 'verbose') - _r = re.compile(r'^([^\s[]+)(?:\[|\s+|$)') def doPrivmsg(self, irc, msg, rateLimit=True): s = addressed(irc.nick, msg) #debug.printf('Privmsg.doPrivmsg: s == %r' % s) @@ -615,22 +614,24 @@ class Privmsg(irclib.IrcCallback): if ircdb.checkIgnored(msg.prefix, recipient): debug.msg('Privmsg.doPrivmsg: ignoring %s.' % msg.prefix) return - m = self._r.match(s) - if m and self.isCommand(canonicalName(m.group(1))): - if rateLimit: - self.rateLimiter.put(msg) - msg = self.rateLimiter.get() - if msg: - try: - args = tokenize(s) + try: + args = tokenize(s) + except SyntaxError, e: + irc.queueMsg(reply(msg, debug.exnToString(e))) + return + if args and isinstance(args[0], str): + args[0] = canonicalName(args[0]) + if self.isCommand(args[0]): + if rateLimit: + self.rateLimiter.put(msg) + msg = self.rateLimiter.get() + if msg: if conf.replyWhenNotCommand: for command in getCommands(args): command = canonicalName(command) if not findCallbackForCommand(irc, command): return self.Proxy(irc, msg, args) - except SyntaxError, e: - irc.queueMsg(reply(msg, debug.exnToString(e))) class IrcObjectProxyRegexp: