changeset 1243:9cf727420c29

Python 2.x server can perform intermediate saves.
author Nicholas Jillings <n.g.r.jillings@se14.qmul.ac.uk>
date Wed, 09 Mar 2016 13:12:02 +0000
parents 987ccc04250b
children 75b97c56a9d1
files core.js keygen.php pythonServer.py
diffstat 3 files changed, 32 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/core.js	Wed Mar 09 12:41:26 2016 +0000
+++ b/core.js	Wed Mar 09 13:12:02 2016 +0000
@@ -897,7 +897,6 @@
 			case 'post':
 				this.stateIndex++;
 				this.currentStateMap = null;
-                this.currentStore.finish();
 				this.advanceState();
 				break;
 			};
--- a/keygen.php	Wed Mar 09 12:41:26 2016 +0000
+++ b/keygen.php	Wed Mar 09 13:12:02 2016 +0000
@@ -7,7 +7,7 @@
 
 $xml_good = "<response><state>OK</state><key>".$key_requested."</key></response>";
 $xml_bad = "<response><state>NO</state><key>".$key_requested."</key></response>";
-$xml_bad = "<response><state>ERROR</state><key>".$key_requested."</key></response>";
+$xml_error = "<response><state>ERROR</state><key>".$key_requested."</key></response>";
 if (is_array($saves))
 {
     foreach($saves as $filename) {
--- a/pythonServer.py	Wed Mar 09 12:41:26 2016 +0000
+++ b/pythonServer.py	Wed Mar 09 13:12:02 2016 +0000
@@ -7,6 +7,7 @@
 import inspect
 import os
 import urllib2
+import urlparse
 import pickle
 import datetime
 
@@ -58,18 +59,40 @@
 	s.end_headers()
 	s.wfile.write(fileDump.read())
 	fileDump.close()
-	
+
+def keygen(s):
+	reply = ""
+	options = s.path.rsplit('?')
+	options = options[1].rsplit('=')
+	key = options[1]
+	print key
+	if os.path.isfile("saves/save-"+key+".xml"):
+		reply = "<response><state>NO</state><key>"+key+"</key></response>"
+	else:
+		reply = "<response><state>OK</state><key>"+key+"</key></response>"
+	s.send_response(200)
+	s.send_header("Content-type", "application/xml")
+	s.end_headers()
+	s.wfile.write(reply)
+	file = open("saves/save-"+key+".xml",'w')
+	file.write("<waetresult key="+key+"/>")
+	file.close();
+
 def saveFile(self):
 	global curFileName
 	global curSaveIndex
+	options = self.path.rsplit('?')
+        options = options[1].rsplit('=')
+        key = options[1]
+        print key
 	varLen = int(self.headers['Content-Length'])
 	postVars = self.rfile.read(varLen)
-	print curFileName
-	file = open('saves/'+curFileName,'w')
+	print "Saving file key "+key
+	file = open('saves/save-'+key+'.xml','w')
 	file.write(postVars)
 	file.close()
 	try:
-		wbytes = os.path.getsize('saves/'+curFileName)
+		wbytes = os.path.getsize('saves/save-'+key+'.xml')
 	except OSError:
 		self.send_response(200)
 		self.send_header("Content-type", "text/xml")
@@ -94,6 +117,8 @@
 		if(request.client_address[0] == "127.0.0.1"):
 			if (request.path == "/favicon.ico"):
 				send404(request)
+			elif (request.path.split('?',1)[0] == "/keygen.php"):
+				keygen(request);
 			else:
 				if (request.path == '/'):
 					request.path = '/index.html'
@@ -108,7 +133,7 @@
 
 	def do_POST(request):
 		if(request.client_address[0] == "127.0.0.1"):
-			if (request.path == "/save" or request.path == "/save.php"):
+			if (request.path.rsplit('?',1)[0] == "/save" or request.path.rsplit('?',1)[0] == "/save.php"):
 				saveFile(request)
 		else:
 			send404(request)
@@ -119,4 +144,4 @@
     httpd = server_class(server_address, handler_class)
     httpd.serve_forever()
 
-run()
\ No newline at end of file
+run()