From: zonidjan Date: Fri, 17 Jan 2014 13:21:29 +0000 (-0600) Subject: Added auth-checking when User() object is created X-Git-Url: https://jfr.im/git/erebus.git/commitdiff_plain/8af0407d500b8e27e8f3628f1083be30b6d2cf75?hp=5477b368b6f982ae96db41d62bbd3ce7abbc9d5d Added auth-checking when User() object is created (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 --- diff --git a/bot.py b/bot.py index ab97605..603b966 100644 --- 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) diff --git a/erebus.py b/erebus.py index 4e1934b..7c7dc92 100644 --- 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: