[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