Legend:
- Unmodified
- Added
- Removed
-
tabled.py
r26 r27 25 25 26 26 def sendMessage(self, data): 27 try: 28 self.sendMessageViaTransport( encodejson(data) ) 29 except cjson.EncodeError,e: 30 print data 31 print e 27 self.sendMessageViaTransport( data ) 32 28 d = defer.Deferred() 33 29 d.addCallback(self.sendMessage) … … 68 64 elif method == "action": 69 65 value = decoded["value"] 66 if value == "null": value = None 70 67 if value != None: value = float(value) 71 68 self.table.action(self.id, decoded["action"],value) … … 81 78 82 79 class PokerTableProtocol(NetstringReceiver,BasePokerTableHandler): 83 sendMessageViaTransport = NetstringReceiver.sendString 80 81 def sendMessageViaTransport(self,data): 82 NetstringReceiver.sendString(self, encodejson(data)) 83 84 84 85 85 def stringReceived(self, line): … … 97 97 def __init__(self): 98 98 BasePokerTableHandler.__init__(self) 99 self.__waitingRequest=None 99 #request consists of (jsoncallback,deferred) 100 self.__waitingRequest=[] 100 101 self.__messageQueue=[] 101 self.jsoncallback = None102 102 103 103 def sendMessageViaTransport(self, data): … … 113 113 114 114 def checkWaiting(self): 115 if self.__waitingRequest != Noneand len(self.__messageQueue) > 0:115 if len(self.__waitingRequest) > 0 and len(self.__messageQueue) > 0: 116 116 print "SENDING RESPONSE TO HTTP" 117 self.__waitingRequest.callback(self.__messageQueue.pop(0)) 118 self.__waitingRequest = None 117 d = self.__waitingRequest.pop(0) 118 d[1].callback((self.__messageQueue, d[0])) 119 self.__messageQueue = [] 119 120 120 def __doResponse(self,resp): 121 def __doResponse(self,dat): 122 resp,jsoncallback = dat 121 123 return http.Response(stream= 122 str("%s(%s)" % ( self.jsoncallback,resp)),124 str("%s(%s)" % (jsoncallback,encodejson(resp))), 123 125 headers = {"content-type": MimeType.fromString("text/javascript")}) 124 126 125 127 def doRenderStuff(self,nargs): 126 128 if "jsoncallback" in nargs: 127 self.jsoncallback = nargs["jsoncallback"] 128 print "json callback set to %s" % self.jsoncallback 129 jsoncallback = nargs["jsoncallback"] 129 130 130 131 d = defer.Deferred() 131 132 #yeah, i know we're going to unparse 132 133 d.addCallback( self.__doResponse ) 133 if self.__waitingRequest != None:134 print "WE ALREADY HAVE A REQUEST,WTF"135 134 print "ADDING REQUEST" 136 self.__waitingRequest = d135 self.__waitingRequest.append( (jsoncallback, d) ) 137 136 138 137 if "method" in nargs and not nargs["method"] == "get_update": 139 self.dataRecieved(encodejson(nargs)) 138 self.dataRecieved(encodejson(nargs)) 139 140 self.checkWaiting() 140 141 141 142
