]>
jfr.im git - erebus.git/blob - erebus.py
17 def __init__(self
, nick
, auth
=None):
24 def authed(self
, auth
):
28 def checklevel(self
): self
.level
= 9999 #TODO get level from db
29 def __str__(self
): return self
.nick
30 def __repr__(self
): return "<User %r>" % (self
.nick
)
31 class Channel(object):
36 def __init__(self
, name
):
39 def userjoin(self
, user
, level
=None):
40 if user
not in self
.users
: self
.users
.append(user
)
41 if level
== 'op' and user
not in self
.ops
: self
.ops
.append(user
)
42 if level
== 'voice' and user
not in self
.voices
: self
.voices
.append(user
)
44 def userpart(self
, user
):
45 if user
in self
.ops
: self
.ops
.remove(user
)
46 if user
in self
.voices
: self
.voices
.remove(user
)
47 if user
in self
.users
: self
.users
.remove(user
)
49 def userop(self
, user
):
50 if user
in self
.users
and user
not in self
.ops
: self
.ops
.append(user
)
52 def uservoice(self
, user
):
53 if user
in self
.users
and user
not in self
.voices
: self
.voices
.append(user
)
55 def userdeop(self
, user
):
56 if user
in self
.ops
: self
.ops
.remove(user
)
58 def userdevoice(self
, user
):
59 if user
in self
.voices
: self
.voices
.remove(user
)
61 def __str__(self
): return self
.name
62 def __repr__(self
): return "<Channel %r>" % (self
.name
)
65 self
.po
= select
.poll()
67 def newbot(self
, nick
, user
, bind
, server
, port
, realname
, chans
):
68 if bind
is None: bind
= ''
69 obj
= bot
.Bot(self
, nick
, user
, bind
, server
, port
, realname
, chans
)
70 self
.bots
[nick
.lower()] = obj
72 def newfd(self
, obj
, fileno
):
73 print "newfd(Erebus(), %r, %r)" % (obj
, fileno
)
74 self
.fds
[fileno
] = obj
75 self
.po
.register(fileno
, select
.POLLIN
)
78 return self
.bots
[name
.lower()]
81 return self
.fds
[fileno
]
83 def user(self
, nick
): #TODO
84 return self
.User(nick
.lower())
86 def channel(self
, name
): #TODO
87 return self
.Channel(name
.lower())
90 return self
.po
.poll(60000)
93 for bot
in self
.bots
.itervalues():
94 if bot
.conn
.state
== 0:
98 def modlist(self
): pass
99 def hasmod(self
, name
): pass
100 def loadmod(self
, name
): pass
101 def unloadmod(self
, name
): pass
102 def reloadmod(self
, name
): pass
105 def bind(self
, word
, handler
): pass
106 def addbind(self
, word
, handler
): pass
107 def rmbind(self
, word
, handler
): pass
108 def getbind(self
, word
, handler
): pass
114 main
.newbot('Erebus', 'erebus', None, 'irc.quakenet.org', 6667, 'Erebus', ['#dimetest'])
115 main
.bot('erebus').connect()
118 poready
= main
.poll()
120 for (fileno
,mask
) in poready
:
121 main
.fd(fileno
).getdata()
123 if __name__
== '__main__':