]> jfr.im git - erebus.git/commitdiff
Added auth-checking when User() object is created
authorzonidjan <redacted>
Fri, 17 Jan 2014 13:21:29 +0000 (07:21 -0600)
committerzonidjan <redacted>
Fri, 17 Jan 2014 13:21:29 +0000 (07:21 -0600)
(only if the user has just JOINed a channel.)

Behavior when bot joins is still the same (WHO #chan %ant,1)
New behavior is WHO nick %ant,2

bot.py
erebus.py

diff --git a/bot.py b/bot.py
index ab97605ee52f16bcb91d0f611cd5eff6e76e8eb5..603b966dd1356c4f9a6c5937dc56a60f4ca8bddc 100644 (file)
--- a/bot.py
+++ b/bot.py
@@ -71,12 +71,12 @@ class Bot(object):
 
                elif pieces[1] == "JOIN":
                        nick = pieces[0].split('!')[0][1:]
-                       user = self.parent.user(nick)
                        chan = self.parent.channel(pieces[2])
 
                        if nick == self.nick:
                                self.conn.send("WHO %s %%ant,1" % (chan))
                        else:
+                               user = self.parent.user(nick, justjoined=True)
                                chan.userjoin(user)
                                user.join(chan)
                        
index 4e1934b35f3ef3596206ef51aa8e07edd49032b9..7c7dc920e8fad4b2ddc9094e5bce273de4d261cb 100644 (file)
--- a/erebus.py
+++ b/erebus.py
@@ -109,14 +109,20 @@ class Erebus(object):
                return self.bots[name.lower()]
        def fd(self, fileno): #get Bot() by fd/fileno
                return self.fds[fileno]
+       def randbot(self): #get Bot() randomly
+               for b in self.bots.itervalues(): return b #TODO
 
-       def user(self, nick):
+       def user(self, nick, justjoined=False):
                nick = nick.lower()
                if nick in self.users:
                        return self.users[nick]
                else:
                        user = self.User(nick)
                        self.users[nick] = user
+
+                       if justjoined:
+                               self.randbot().conn.send("WHO %s %%ant,2" % (nick))
+
                        return user
        def channel(self, name): #get Channel() by name
                if name.lower() in self.chans: