| 14 | | from nevow import rend |
| 15 | | from nevow import appserver |
| 16 | | from nevow.inevow import IRequest |
| 17 | | |
| 18 | | from twisted.application import internet, service |
| | 14 | from twisted.application import internet, service, strports |
| | 15 | from twisted.web2 import http, resource, channel, stream, server, static, http_headers, responsecode |
| | 16 | import cometd |
| 39 | | def dataRecieved(self,line): |
| 40 | | try: |
| 41 | | decoded = decodejson(line) |
| 42 | | if decoded == None or "method" not in decoded: |
| 43 | | self.sendMessageViaTransport( encodejson( |
| 44 | | protocol.MakeError(101,"Messages must contain methods")) ) |
| | 37 | def dataRecieved(self,data): |
| | 38 | |
| | 39 | if data == None or "method" not in data: |
| | 40 | self.sendMessageViaTransport( |
| | 41 | protocol.MakeError(101,"Messages must contain methods")) |
| | 42 | return |
| | 43 | else: method = data["method"] |
| | 44 | if method == "connect": |
| | 45 | if self.table or self.id: |
| | 46 | self.sendMessageViaTransport( |
| | 47 | protocol.MakeError(103,"Already connected")) |
| 46 | | else: method = decoded["method"] |
| 47 | | if method == "connect": |
| 48 | | if self.table or self.id: |
| 49 | | self.sendMessageViaTransport( encodejson( |
| 50 | | protocol.MakeError(103,"Already connected")) ) |
| 51 | | return |
| 52 | | table_name = decoded["table_name"] |
| 53 | | |
| 54 | | if not table_name in tables: |
| 55 | | tables[table_name]=holdemtable(table_name) |
| 56 | | |
| 57 | | self.table = tables[table_name] |
| 58 | | if self.table.isFull(): |
| 59 | | self.sendMessageViaTransport( encodejson( |
| 60 | | protocol.MakeError(104,"Table is full"))) |
| 61 | | return |
| 62 | | else: |
| 63 | | self.id = decoded['client_id'] |
| 64 | | d = defer.Deferred() |
| 65 | | d.addCallback(self.sendMessage) |
| 66 | | self.table.addPlayer(decoded, d) |
| 67 | | elif method == "action": |
| 68 | | value = decoded["value"] |
| 69 | | if value == "null": value = None |
| 70 | | if value != None: value = float(value) |
| 71 | | self.table.action(self.id, decoded["action"],value) |
| | 49 | table_name = data["table_name"] |
| | 50 | |
| | 51 | if not table_name in tables: |
| | 52 | tables[table_name]=holdemtable(table_name) |
| | 53 | |
| | 54 | self.table = tables[table_name] |
| | 55 | if self.table.isFull(): |
| | 56 | self.sendMessageViaTransport( |
| | 57 | protocol.MakeError(104,"Table is full")) |
| | 58 | return |
| 73 | | self.sendMessageViaTransport( encodejson(protocol.MakeError(102,"Unknown Method")) ) |
| 74 | | except cjson.DecodeError: |
| 75 | | self.sendMessageViaTransport( encodejson(protocol.MakeError( 100, "Message must be in JSON")) ) |
| 76 | | print line |
| 77 | | return |
| 78 | | |
| 79 | | print self.id |
| 80 | | |
| | 60 | self.id = data['client_id'] |
| | 61 | d = defer.Deferred() |
| | 62 | d.addCallback(self.sendMessage) |
| | 63 | self.table.addPlayer(data, d) |
| | 64 | elif method == "action": |
| | 65 | value = data["value"] |
| | 66 | if value == "null": value = None |
| | 67 | if value != None: value = float(value) |
| | 68 | self.table.action(self.id, data["action"],value) |
| | 69 | else: |
| | 70 | self.sendMessageViaTransport( protocol.MakeError(102,"Unknown Method")) |