From efc095fcc69ea5d6da6fbf2e6d14679b9a9e1f40 Mon Sep 17 00:00:00 2001 From: Jeremy Fincher Date: Fri, 6 Aug 2004 17:35:00 +0000 Subject: [PATCH] Broke user and last commands off. --- plugins/Seen.py | 87 +++++++++++++++++++++++++++++------------------ test/test_Seen.py | 6 ++-- 2 files changed, 56 insertions(+), 37 deletions(-) diff --git a/plugins/Seen.py b/plugins/Seen.py index 9906e1afd..6e893603e 100644 --- a/plugins/Seen.py +++ b/plugins/Seen.py @@ -110,44 +110,63 @@ class Seen(callbacks.Privmsg): pass # Not in the database. def seen(self, irc, msg, args): - """[] [--user] [] + """[] - Returns the last time was seen and what was last seen - saying. --user will look for user instead of using as - a nick (registered users, remember, can be recognized under any number - of nicks) is only necessary if the message isn't sent on the - channel itself. If is not specified, the last person that was - seen and their message will be returned. + Returns the last time was seen and what was last seen + saying. is only necessary if the message isn't sent on the + channel itself. """ channel = privmsgs.getChannel(msg, args) - (optlist, rest) = getopt.getopt(args, '', ['user']) - name = privmsgs.getArgs(rest, required=0, optional=1) - if name: - nickOrId = name - if ('--user', '') in optlist: - try: - nickOrId = ircdb.users.getUserId(name) - except KeyError: - try: - hostmask = irc.state.nickToHostmask(name) - nickOrId = ircdb.users.getUserId(hostmask) - except KeyError: - irc.errorNoUser() - return - try: - (when, said) = self.db.seen(channel, nickOrId) - irc.reply('%s was last seen here %s ago saying: %s' % - (name, utils.timeElapsed(time.time()-when), said)) - except KeyError: - irc.reply('I have not seen %s.' % name) - else: - try: - (when, said) = self.db.seen(channel, '') - irc.reply('Someone was last seen here %s ago saying: %s' % - (utils.timeElapsed(time.time()-when), said)) - except KeyError: - irc.reply('I have never seen anyone.') + name = privmsgs.getArgs(args) + try: + (when, said) = self.db.seen(channel, name) + irc.reply('%s was last seen here %s ago saying: %s' % + (name, utils.timeElapsed(time.time()-when), said)) + except KeyError: + irc.reply('I have not seen %s.' % name) + def last(self, irc, msg, args): + """[] + + Returns the last thing said in . is only necessary + if the message isn't sent in the channel itself. + """ + channel = privmsgs.getChannel(msg, args) + try: + (when, said) = self.db.seen(channel, '') + irc.reply('Someone was last seen here %s ago saying: %s' % + (utils.timeElapsed(time.time()-when), said)) + except KeyError: + irc.reply('I have never seen anyone.') + + + def user(self, irc, msg, args): + """[] + + Returns the last time was seen and what was last seen + saying. This looks up in the user seen database, which means + that it could be any nick recognized as user that was seen. + is only necessary if the message isn't sent in the channel + itself. + """ + channel = privmsgs.getChannel(msg, args) + name = privmsgs.getArgs(args) + try: + id = ircdb.users.getUserId(name) + except KeyError: + try: + hostmask = irc.state.nickToHostmask(name) + id = ircdb.users.getUserId(hostmask) + except KeyError: + irc.errorNoUser() + return + try: + (when, said) = self.db.seen(channel, id) + irc.reply('%s was last seen here %s ago saying: %s' % + (name, utils.timeElapsed(time.time()-when), said)) + except KeyError: + irc.reply('I have not seen %s.' % name) + Class = Seen diff --git a/test/test_Seen.py b/test/test_Seen.py index e39818b5d..abbee528c 100644 --- a/test/test_Seen.py +++ b/test/test_Seen.py @@ -51,16 +51,16 @@ class ChannelDBTestCase(ChannelPluginTestCase): self.assertNotRegexp('seen asldfkjasdlfkj', 'KeyError') def testSeen(self): - self.assertNotError('seen') + self.assertNotError('seen last') self.assertNotError('list') self.assertNotError('seen %s' % self.nick) m = self.assertNotError('seen %s' % self.nick.upper()) self.failUnless(self.nick.upper() in m.args[1]) - self.assertRegexp('seen --user %s' % self.nick, + self.assertRegexp('seen user %s' % self.nick, '^%s was last seen' % self.nick) def testSeenNoUser(self): - self.assertNotRegexp('seen --user alsdkfjalsdfkj', 'KeyError') + self.assertNotRegexp('seen user alsdkfjalsdfkj', 'KeyError') # vim:set shiftwidth=4 tabstop=8 expandtab textwidth=78: