Exemplo n.º 1
0
class PSYCProtocol:
	def __init__(self, callback, socket):
		self.callback = callback
		self.state = PSYCState()
		self.mmp = MMPProtocol(self, socket)

	def sendPacket(self, mmp, psyc):
##		print "PSYCProtocol::sendPacket()"
		data = ''
		full = psyc.get_state() 
		for var in full:
			data += ":" + var + '\t' + full[var] + '\n'
		data += psyc.get_mc() + '\n'		
		data += psyc.get_text()
		self.mmp.sendPacket(mmp, data)

	def packetReceived(self, mmp, data):
		self.state.reset_state()
		state = 'psyc'
		for line in data:
			if _isModifier(line) and state == 'psyc':
				self.state.set_state(line)
				
				continue
			elif line.__len__() and line[0] == '_' and state != 'text':
##				print "mc:", line
##				print "source:", mmp.get_source()
				self.state.set_mc(line)
				state = 'text'
				continue
			elif state == 'text':
				self.state.append_text(line)
			else:
				print "unknown psyc stuff:", line

##		print "PSYCProtocol::packetReceived from", mmp.get_source()
##		print "=>PSYC :", self.state.get_state()
##		print "=>mc   :", self.state.get_mc()
##		print "=>text :", self.state.get_text()
##		print "----"				
		self.callback.handle(mmp, self.state)
Exemplo n.º 2
0
	def __init__(self, callback, socket):
		self.callback = callback
		self.state = PSYCState()
		self.mmp = MMPProtocol(self, socket)