[pypy-svn] r28748 - in pypy/dist/pypy/translator/js/proxy/testme: . static/javascript

ericvrp at codespeak.net ericvrp at codespeak.net
Tue Jun 13 17:43:56 CEST 2006


Author: ericvrp
Date: Tue Jun 13 17:43:52 2006
New Revision: 28748

Modified:
   pypy/dist/pypy/translator/js/proxy/testme/controllers.py
   pypy/dist/pypy/translator/js/proxy/testme/msgstruct.py
   pypy/dist/pypy/translator/js/proxy/testme/servermessage.py
   pypy/dist/pypy/translator/js/proxy/testme/static/javascript/bnb.js
Log:
Allow multiple connects and page refreshes restart the connection too


Modified: pypy/dist/pypy/translator/js/proxy/testme/controllers.py
==============================================================================
--- pypy/dist/pypy/translator/js/proxy/testme/controllers.py	(original)
+++ pypy/dist/pypy/translator/js/proxy/testme/controllers.py	Tue Jun 13 17:43:52 2006
@@ -7,12 +7,13 @@
 import urllib
 import re
 from servermessage import ServerMessage, log
+from random import random
+from md5 import md5
 
 
 class Root(controllers.Root):
 
     _serverMessage = {}
-    n_header_lines = 2
 
     host = 'localhost'
     port = re.findall('value=".*"', urllib.urlopen('http://%s:8000' % host).read())[0]
@@ -34,6 +35,8 @@
 
     @expose(html='testme.templates.bnb')
     def index(self):
+        self._close()
+        session['_id'] = md5(str(random())).hexdigest() #force new session id to restart a game!
         return dict()
 
     @expose(format='json')
@@ -48,8 +51,8 @@
         sm   = self.serverMessage()
         size = 1024
         data = sm.data + self.sessionSocket().recv(size)
-        while self.n_header_lines > 0 and '\n' in data:
-            self.n_header_lines -= 1
+        while sm.n_header_lines > 0 and '\n' in data:
+            sm.n_header_lines -= 1
             header_line, data = data.split('\n',1)
             log('RECEIVED HEADER LINE: %s' % header_line)
         
@@ -68,12 +71,16 @@
         log('MESSAGES:%s' % messages)
         return dict(messages=messages)
 
+    def _close(self):
+        sessionid = session['_id']
+        if sessionid in self._serverMessage:
+            sm = self.serverMessage()
+            if sm.socket is not None:
+                sm.socket.close()
+            del self._serverMessage[sessionid]
+
     @expose(format='json')
     def close(self):
-        sessionid = session['_id']
-        sm = self.serverMessage()
-        if sm.socket is not None:
-            sm.socket.close()
-        del self._serverMessage[sessionid]
+        self._close()
         return dict()
 

Modified: pypy/dist/pypy/translator/js/proxy/testme/msgstruct.py
==============================================================================
--- pypy/dist/pypy/translator/js/proxy/testme/msgstruct.py	(original)
+++ pypy/dist/pypy/translator/js/proxy/testme/msgstruct.py	Tue Jun 13 17:43:52 2006
@@ -67,7 +67,10 @@
         limit = ord(data[0]) + 1
         if len(data) >= limit:
             typecodes = "!c" + data[1:limit]
-            end = limit + calcsize(typecodes)
+            try:
+                end = limit + calcsize(typecodes)
+            except TypeError:
+                return None, ''
             if len(data) >= end:
                 return unpack(typecodes, data[limit:end]), data[end:]
             elif end > 1000000:

Modified: pypy/dist/pypy/translator/js/proxy/testme/servermessage.py
==============================================================================
--- pypy/dist/pypy/translator/js/proxy/testme/servermessage.py	(original)
+++ pypy/dist/pypy/translator/js/proxy/testme/servermessage.py	Tue Jun 13 17:43:52 2006
@@ -9,7 +9,7 @@
 from md5 import md5
 
 
-debug = False
+debug = True
 def log(msg):
     if debug:
         print msg
@@ -34,7 +34,8 @@
     def __init__(self):
         self.socket = None
         self.data   = ''
-        self.gfx_dir = self.base_gfx_dir
+        self.n_header_lines = 2
+        self.gfx_dir = self.base_gfx_dir    #gets overwritten depending on playfield FnDesc
         self.gfx_url = self.base_gfx_url
 
     def dispatch(self, *values):

Modified: pypy/dist/pypy/translator/js/proxy/testme/static/javascript/bnb.js
==============================================================================
--- pypy/dist/pypy/translator/js/proxy/testme/static/javascript/bnb.js	(original)
+++ pypy/dist/pypy/translator/js/proxy/testme/static/javascript/bnb.js	Tue Jun 13 17:43:52 2006
@@ -28,9 +28,8 @@
 		    body.setAttribute('bgcolor', bgcolor); //XXX hack!
 		} else if (msg.type == 'def_icon') {
 		    if (!(msg.code in icon)) {
-			icon[msg.code] = new Image();
-			icon[msg.code].src = msg.filename
-			var img = IMG({'src':icon[msg.code].src,
+			icon[msg.code] = true; //new Image();
+			var img = IMG({'src':msg.filename, 'title':msg.filename,
 				'width':msg.width, 'height':msg.height});
 			appendChildNodes(playfield, img);
 		    }



More information about the Pypy-commit mailing list