parent
716fa5675a
commit
1bb3617049
19
message.py
19
message.py
|
@ -107,21 +107,22 @@ class Message:
|
|||
else:
|
||||
self.realname = self.sender
|
||||
|
||||
if self.cmd == 'PRIVMSG':
|
||||
if len(words) > 2:
|
||||
self.channel = words[2]
|
||||
|
||||
if self.cmd == 'PRIVMSG':
|
||||
self.content = words[3]
|
||||
if self.content[0] == ':':
|
||||
self.content = line.split(':', 2)[2]
|
||||
else:
|
||||
print (line)
|
||||
else:
|
||||
print (line)
|
||||
if self.cmd == 'PRIVMSG':
|
||||
self.channel = words[2]
|
||||
self.content = words[3]
|
||||
if self.content[0] == ':':
|
||||
self.content = line.split(':', 2)[2]
|
||||
else:
|
||||
print (line)
|
||||
|
||||
@property
|
||||
def is_owner(self):
|
||||
|
@ -167,12 +168,12 @@ class Message:
|
|||
self.parsectcp ()
|
||||
elif self.cmd == "PRIVMSG" and self.authorize():
|
||||
self.parsemsg (mods)
|
||||
elif self.cmd == "NICK":
|
||||
print ("%s change de nom pour %s" % (self.sender, self.content))
|
||||
elif self.cmd == "PART":
|
||||
print ("%s vient de quitter %s" % (self.sender, self.channel))
|
||||
elif self.cmd == "JOIN":
|
||||
print ("%s arrive sur %s" % (self.sender, self.channel))
|
||||
# elif self.cmd == "NICK":
|
||||
# print ("%s change de nom pour %s" % (self.sender, self.content))
|
||||
# elif self.cmd == "PART":
|
||||
# print ("%s vient de quitter %s" % (self.sender, self.channel))
|
||||
# elif self.cmd == "JOIN":
|
||||
# print ("%s arrive sur %s" % (self.sender, self.channel))
|
||||
|
||||
|
||||
def pong (self):
|
||||
|
|
|
@ -69,7 +69,7 @@ def speak(endstate):
|
|||
stopSpk = 0
|
||||
|
||||
if lastmsg is None:
|
||||
lastmsg = message.Message(None, "")
|
||||
lastmsg = message.Message(None, ":Quelqun!someone@p0m.fr PRIVMSG channel nothing")
|
||||
|
||||
while not stopSpk and len(g_queue) > 0:
|
||||
msg = g_queue.pop(0)
|
||||
|
@ -179,6 +179,9 @@ class Server:
|
|||
try:
|
||||
msg = message.Message(self, line)
|
||||
except:
|
||||
print ("Une erreur est survenue lors du traitement du message : %s"%line)
|
||||
exc_type, exc_value, exc_traceback = sys.exc_info()
|
||||
traceback.print_exception(exc_type, exc_value, exc_traceback)
|
||||
continue
|
||||
|
||||
if msg.cmd == "PING":
|
||||
|
|
32
prompt.py
32
prompt.py
|
@ -115,6 +115,12 @@ def liste(cmds, servers):
|
|||
if l == "server" or l == "servers":
|
||||
for srv in servers.keys():
|
||||
print (" - %s ;" % srv)
|
||||
elif l == "chan" or l == "channel" or l == "channels":
|
||||
if selectedServer is not None:
|
||||
for chn in selectedServer.channels:
|
||||
print (" - %s ;" % chn)
|
||||
else:
|
||||
print (" Please SELECT a server before ask for channels list.")
|
||||
else:
|
||||
print (" Unknown list `%s'" % l)
|
||||
else:
|
||||
|
@ -133,6 +139,30 @@ def connect(cmds, servers):
|
|||
else:
|
||||
print (" Please SELECT a server or give its name in argument.")
|
||||
|
||||
def join(cmds, servers):
|
||||
rd = 1
|
||||
if len(cmds) <= rd:
|
||||
print ("%s: not enough arguments." % cmds[0])
|
||||
return
|
||||
|
||||
if cmds[rd] in servers:
|
||||
srv = servers[cmds[rd]]
|
||||
rd += 1
|
||||
elif selectedServer is not None:
|
||||
srv = selectedServer
|
||||
else:
|
||||
print (" Please SELECT a server or give its name in argument.")
|
||||
return
|
||||
|
||||
if len(cmds) <= rd:
|
||||
print ("%s: not enough arguments." % cmds[0])
|
||||
return
|
||||
|
||||
if cmds[0] == "join":
|
||||
srv.join(cmds[rd])
|
||||
elif cmds[0] == "leave" or cmds[0] == "part":
|
||||
srv.leave(cmds[rd])
|
||||
|
||||
def send(cmds, servers):
|
||||
rd = 1
|
||||
if len(cmds) <= rd:
|
||||
|
@ -215,6 +245,8 @@ CAPS = {
|
|||
'select': select, #Select a server
|
||||
'list': liste, #Show lists
|
||||
'connect': connect, #Connect to a server
|
||||
'join': join, #Join a new channel
|
||||
'leave': join, #Leave a channel
|
||||
'send': send, #Send a message on a channel
|
||||
'disconnect': disconnect, #Disconnect from a server
|
||||
'zap': zap, #Reverse internal connection state without check
|
||||
|
|
16
server.py
16
server.py
|
@ -86,6 +86,22 @@ class Server(threading.Thread):
|
|||
else:
|
||||
return False
|
||||
|
||||
def join(self, channel):
|
||||
if channel is not None and self.connected:
|
||||
self.channels.append(channel)
|
||||
self.s.send(("JOIN %s\r\n" % channel).encode ())
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
def leave(self, channel):
|
||||
if channel is not None and self.connected and channel in self.channels:
|
||||
self.channels.remove(channel)
|
||||
self.s.send(("PART %s\r\n" % channel.split()[0]).encode ())
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
def launch(self, mods):
|
||||
if not self.connected:
|
||||
self.stop = False
|
||||
|
|
Loading…
Reference in New Issue