diff --git a/plugins/ChannelDB.py b/plugins/ChannelDB.py index a6eb57136..56e93f8b1 100644 --- a/plugins/ChannelDB.py +++ b/plugins/ChannelDB.py @@ -349,6 +349,7 @@ class ChannelDB(callbacks.Privmsg, if ('--user', '') in optlist: table = 'user_stats' criterion = 'user_id=%s' + name = ircdb.users.getUserId(name) if not ircdb.users.hasUser(name): try: hostmask = irc.state.nickToHostmask(name) @@ -367,6 +368,8 @@ class ChannelDB(callbacks.Privmsg, else: (seen, m) = cursor.fetchone() seen = int(seen) + if isinstance(name, int): + name = ircdb.users.getUser(int(name)).name s = '%s was last seen here %s ago saying %r' % \ (name, utils.timeElapsed(time.time() - seen), m) irc.reply(msg, s) diff --git a/test/test_ChannelDB.py b/test/test_ChannelDB.py index 52e55fd72..3b91bc91e 100644 --- a/test/test_ChannelDB.py +++ b/test/test_ChannelDB.py @@ -76,7 +76,7 @@ if sqlite is not None: self.assertEqual(m1.args[1], m2.args[1]) def testNoKeyErrorEscapeFromSeen(self): - self.assertRegexp('seen asldfkjasdlfkj', 'I have not seen') + self.assertRegexp('seen asldfkjasdlfkj', '^I have not seen') self.assertNotRegexp('seen asldfkjasdlfkj', 'KeyError') def testNoKeyErrorStats(self): @@ -86,6 +86,8 @@ if sqlite is not None: self.assertNotError('list') self.assertNotError('seen %s' % self.nick) self.assertNotError('seen %s' % self.nick.upper()) + self.assertRegexp('seen --user %s' % self.nick, + '^%s was last seen' % self.nick) def testWordStatsNoArgs(self): self.assertResponse('wordstats', 'I am not currently keeping any '