--- yaccc.py-dist 2003-07-06 20:53:21.000000000 +0000 +++ yaccc.py 2003-07-06 20:55:12.000000000 +0000 @@ -42,6 +42,30 @@ usedebugserver = 0 # ========== DO NOT MODIFY BELOW HERE ========== +class cc_connection: + def __init__(self, host, port): + self.host = host + self.port = port + self.buf = "" + self.socket = None + def connect(self): + self.socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) + self.socket.connect((self.host,self.port)) + return 1 + def send_welcome(self): + self.write("40|1") + def send_nick(self,nick): + self.write("10|"+nick) + def send_quit(self): + self.write("15|") + def send_msg(self, msg): + self.write("30|^1" + msg) + def send_pmsg(self, who, msg): + self.write("20|0" + who + "|^1" + msg) + def write(self, msg): + msg = msg.rstrip() + self.socket.send(msg+"\n") + class server: def __init__(self,host,port): self.host = host @@ -53,22 +77,21 @@ self.userlistavailable = 0 self.connected = 0 self.querying = 0 + self.conn = cc_connection(self.host,self.port) def connect(self): # connect print "=== Connecting..." - self.socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) - self.socket.connect((self.host,self.port)) - self.connected = 1 + self.connected = self.conn.connect() print "=== Connected!" - self.socket.send("40|1\n") + self.conn.send_welcome() if autologin == 1: # autologin print "=== Logging in..." - self.socket.send("10|" + self.nickname + "\n") + self.conn.send_nick(self.nickname) while self.connected: - inputfds = select.select([self.socket,sys.stdin],[],[],0.2) + inputfds = select.select([self.conn.socket,sys.stdin],[],[],0.2) for s in inputfds[0]: if s is sys.stdin: self.buf = sys.stdin.readline(); @@ -76,26 +99,24 @@ if self.buf == "/login\n": # login with default nickname - self.socket.send("10|" + self.nickname + "\n") - + self.conn.send_nick( self.nickname) elif splited[0] == "/login": # login with chosen nickname - self.socket.send("10|" + splited[1]) - + self.conn.send_nick(splited[1]) elif splited[0] == "/nick": # login with a new nickname - self.socket.send("10|" + splited[1]) + self.conn.send_nick(splited[1]) elif self.buf == "/quit\n" or splited[0] == "/quit": # logout and quit - self.socket.send("15\n") + self.conn.send_quit() self.connected = 0 print "\n=== Disconnected." elif self.buf == "/logout\n" or splited[0] == "/logout": # logout if self.isloggedin == 1: - self.socket.send("15\n") + self.conn.send_quit() self.isloggedin = 0 print "=== Logged out." else: @@ -197,7 +218,7 @@ # no query; no command # send as chat text if self.isloggedin == 1: - self.socket.send("30|^1" + self.buf) + self.conn.send_msg(self.buf) else: print "=== You must login before you can chat." else: @@ -209,7 +230,7 @@ # send as private text if self.isloggedin == 1: print ">" + self.querying + "< " + self.buf[:-1] - self.socket.send("20|0" + self.querying + "|^1" + self.buf) + self.conn.send_pmsg(self.querying,self.buf) else: print "=== You must login before you can chat." else: