Example #1
0
 def lineReceived_recomposed(self, line):
     
         
     meth,rest = json.loads(line)
     if meth == "close":
         self.stop()
     elif meth == "ping":
         self.missed_heartbeats=-1
         
     elif meth == "hello":
         self.log.write('Hello received\n')
         name = rest[0]
         self.name = name
         
     elif meth == 'mud_line':
         metaline = json_to_metaline(rest[0])
         display_line = bool(rest[1])
         #self.match_triggers(metaline, display_line)
         #self.transport.write(json.dumps(['display_line', [metaline_to_json(metaline), 1]])+'\n')
         self.send_to_client('display_line', [metaline_to_json(metaline),1])
     elif meth == 'user_line':
         line = rest[0]
         self.log.write('User Line: %s\n'%line)
         #self.transport.write(json.dumps(['send_to_mud',line])+'\n')
         self.send_to_client('send_to_mud', line)
     elif meth == 'do_block':
         lines = json.loads(rest[0])
         block = []
         for l in lines:
             block.append(json_to_metaline(l))
         self.blockReceived(block)
     
     elif meth == 'do_triggers':
         metaline=json_to_metaline(rest[0])
         display_line = bool(rest[1])
         self.metalineReceived(metaline, display_line)
     
     elif meth == 'do_aliases':
         line = rest[0]
         self.server_echo = bool(rest[1])
         echo = bool(rest[2])
         self.parseSend(line, echo)
     elif meth == 'do_gmcp':
         pair = rest[0]
         gmcp_key,gmcp_data = pair
         self.gmcp[gmcp_key]=gmcp_data
         for gmcp_event in self.gmcp_events:
             gmcp_event(pair, self)
     else:
         raise ValueError("bad line: %s" % line)
     #self.transport.write(json.dumps(["ack", [meth,rest]]) + "\n")
     self.send_to_client('ack', [meth,rest])
Example #2
0
 def lineReceived_recomposed(self, line):
     meth, rest = json.loads(line)
     if meth == 'ack':
         self.messages_not_acknowledged -= 1
         if not self.messages_not_acknowledged:
             process_time = time.time() - self.client_started_processing_at
             self.communicator.total_client_time += process_time
             self.client_started_processing_at = None
             #print('Process Time: %(process_time)d, Total Process Time: %(total_process_time)d\n'%
             #      {'process_time':process_time, 'total_process_time':self.communicator.total_client_time})
     elif meth == 'send_to_mud':
         self.communicator.telnet.sendLine(rest)   
     elif meth == 'ping':
         self.send_to_client('ping', []) 
     elif meth == "display_line":
         metaline = json_to_metaline(rest[0])
         soft_line_start = bool(rest[1])
         self.communicator.write(metaline, soft_line_start)
     elif meth == 'set_active_channels':
         self.communicator.setActiveChannels(rest)
     elif meth == "hello":
         macros = rest[0]
         def make_macro(cmd):
             def macro(cc):
                 cc.client.do_alias(cmd, False)
             return macro
         self.communicator.macros.clear()
         self.communicator.macros.update(dict((from_string(k), make_macro(l)) for k, l in macros.items()))
         self.communicator.macros.update(self.communicator.baked_in_macros)
         self.communicator.clientConnectionMade(self)
     elif meth == "error":
         if self.communicator.debug:
             self.communicator.cwrite('<white*:red>ERROR RECEIVED: \n %s'%rest)
         else:
             print(rest)
     elif meth == 'set_state':
         self.communicator.set_state(rest[0],rest[1])
     elif meth == 'event':
         event_name = rest[0]
         args = rest[1]
         self.communicator.fireEventLocal(event_name, *args)
     
     elif meth == 'debug':
         line = rest[0]
         if self.communicator.debug:
             self.communicator.cwrite('<grey:white>PROCESSOR DEBUG [[%s]]'%line)
         else:
             print('PROCESSOR DEBUG [[%s]]'%line)
     else:
         if self.communicator.debug:
             self.communicator.cwrite('<white*:red>UNKNOWN METHOD RECEIVED: \n Method:%(meth)s \n Args: %(rest)s'%{'rest':rest, 'meth':meth})
         else:
             print('UNKNOWN METHOD RECEIVED: \n Method:%(meth)s \n Args: %(rest)s'%{'rest':rest, 'meth':meth})