X-Git-Url: https://jfr.im/git/erebus.git/blobdiff_plain/96b2156b549941b19ac071218d77b6262fa81656..db57d97fa2dfc4138cca73d43a72debb4fc2e49c:/erebus.py diff --git a/erebus.py b/erebus.py index 755f2b4..bf8305f 100644 --- a/erebus.py +++ b/erebus.py @@ -13,14 +13,18 @@ class Erebus(object): class User(object): chans = [] + def __init__(self, nick, auth=None): self.nick = nick self.auth = auth + if auth is not None: self.checklevel() + def authed(self, auth): self.auth = auth self.checklevel() + def checklevel(self): self.level = 9999 #TODO get level from db def __str__(self): return self.nick def __repr__(self): return "" % (self.nick) @@ -28,22 +32,29 @@ class Erebus(object): users = [] voices = [] ops = [] + def __init__(self, name): self.name = name + def userjoin(self, user, level=None): if user not in self.users: self.users.append(user) if level == 'op' and user not in self.ops: self.ops.append(user) if level == 'voice' and user not in self.voices: self.voices.append(user) + def userpart(self, user): if user in self.ops: self.ops.remove(user) if user in self.voices: self.voices.remove(user) if user in self.users: self.users.remove(user) + def userop(self, user): if user in self.users and user not in self.ops: self.ops.append(user) + def uservoice(self, user): if user in self.users and user not in self.voices: self.voices.append(user) + def userdeop(self, user): if user in self.ops: self.ops.remove(user) + def userdevoice(self, user): if user in self.voices: self.voices.remove(user) @@ -57,17 +68,21 @@ class Erebus(object): if bind is None: bind = '' obj = bot.Bot(self, nick, user, bind, server, port, realname, chans) self.bots[nick.lower()] = obj + def newfd(self, obj, fileno): print "newfd(Erebus(), %r, %r)" % (obj, fileno) self.fds[fileno] = obj self.po.register(fileno, select.POLLIN) + def bot(self, name): return self.bots[name.lower()] + def fd(self, fileno): return self.fds[fileno] def user(self, nick): #TODO return self.User(nick.lower()) + def channel(self, name): #TODO return self.Channel(name.lower()) @@ -101,6 +116,7 @@ def setup(): def loop(): poready = main.poll() + for (fileno,mask) in poready: main.fd(fileno).getdata()