]>
jfr.im git - erebus.git/blob - erebus.py
16 def __init__(self
, nick
, auth
=None):
21 def authed(self
, auth
):
24 def checklevel(self
): self
.level
= 9999 #TODO get level from db
25 def __str__(self
): return self
.nick
26 def __repr__(self
): return "<User %r>" % (self
.nick
)
27 class Channel(object):
31 def __init__(self
, name
):
33 def userjoin(self
, user
, level
=None):
34 if user
not in self
.users
: self
.users
.append(user
)
35 if level
== 'op' and user
not in self
.ops
: self
.ops
.append(user
)
36 if level
== 'voice' and user
not in self
.voices
: self
.voices
.append(user
)
37 def userpart(self
, user
):
38 if user
in self
.ops
: self
.ops
.remove(user
)
39 if user
in self
.voices
: self
.voices
.remove(user
)
40 if user
in self
.users
: self
.users
.remove(user
)
41 def userop(self
, user
):
42 if user
in self
.users
and user
not in self
.ops
: self
.ops
.append(user
)
43 def uservoice(self
, user
):
44 if user
in self
.users
and user
not in self
.voices
: self
.voices
.append(user
)
45 def userdeop(self
, user
):
46 if user
in self
.ops
: self
.ops
.remove(user
)
47 def userdevoice(self
, user
):
48 if user
in self
.voices
: self
.voices
.remove(user
)
50 def __str__(self
): return self
.name
51 def __repr__(self
): return "<Channel %r>" % (self
.name
)
54 self
.po
= select
.poll()
56 def newbot(self
, nick
, user
, bind
, server
, port
, realname
, chans
):
57 if bind
is None: bind
= ''
58 obj
= bot
.Bot(self
, nick
, user
, bind
, server
, port
, realname
, chans
)
59 self
.bots
[nick
.lower()] = obj
60 def newfd(self
, obj
, fileno
):
61 print "newfd(Erebus(), %r, %r)" % (obj
, fileno
)
62 self
.fds
[fileno
] = obj
63 self
.po
.register(fileno
, select
.POLLIN
)
65 return self
.bots
[name
.lower()]
67 return self
.fds
[fileno
]
69 def user(self
, nick
): #TODO
70 return self
.User(nick
.lower())
71 def channel(self
, name
): #TODO
72 return self
.Channel(name
.lower())
75 return self
.po
.poll(60000)
78 for bot
in self
.bots
.itervalues():
79 if bot
.conn
.state
== 0:
83 def modlist(self
): pass
84 def hasmod(self
, name
): pass
85 def loadmod(self
, name
): pass
86 def unloadmod(self
, name
): pass
87 def reloadmod(self
, name
): pass
90 def bind(self
, word
, handler
): pass
91 def addbind(self
, word
, handler
): pass
92 def rmbind(self
, word
, handler
): pass
93 def getbind(self
, word
, handler
): pass
100 main
.newbot('Erebus', 'erebus', None, 'irc.quakenet.org', 6667, 'Erebus', ['#dimetest'])
101 main
.bot('erebus').connect()
104 poready
= main
.poll()
105 for (fileno
,mask
) in poready
:
106 main
.fd(fileno
).getdata()
108 if __name__
== '__main__':