Mercurial > hg > webaudioevaluationtool
comparison pythonServer.py @ 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 | a4ad9e55b5b8 |
children | ba6b9e1aaef5 |
comparison
equal
deleted
inserted
replaced
1242:987ccc04250b | 1243:9cf727420c29 |
---|---|
5 from os import path | 5 from os import path |
6 from os import listdir | 6 from os import listdir |
7 import inspect | 7 import inspect |
8 import os | 8 import os |
9 import urllib2 | 9 import urllib2 |
10 import urlparse | |
10 import pickle | 11 import pickle |
11 import datetime | 12 import datetime |
12 | 13 |
13 # Go to right folder. | 14 # Go to right folder. |
14 scriptdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) # script directory | 15 scriptdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) # script directory |
56 s.send_header("Content-type", 'application/octet-stream') | 57 s.send_header("Content-type", 'application/octet-stream') |
57 s.send_header("Content-Length", size) | 58 s.send_header("Content-Length", size) |
58 s.end_headers() | 59 s.end_headers() |
59 s.wfile.write(fileDump.read()) | 60 s.wfile.write(fileDump.read()) |
60 fileDump.close() | 61 fileDump.close() |
61 | 62 |
63 def keygen(s): | |
64 reply = "" | |
65 options = s.path.rsplit('?') | |
66 options = options[1].rsplit('=') | |
67 key = options[1] | |
68 print key | |
69 if os.path.isfile("saves/save-"+key+".xml"): | |
70 reply = "<response><state>NO</state><key>"+key+"</key></response>" | |
71 else: | |
72 reply = "<response><state>OK</state><key>"+key+"</key></response>" | |
73 s.send_response(200) | |
74 s.send_header("Content-type", "application/xml") | |
75 s.end_headers() | |
76 s.wfile.write(reply) | |
77 file = open("saves/save-"+key+".xml",'w') | |
78 file.write("<waetresult key="+key+"/>") | |
79 file.close(); | |
80 | |
62 def saveFile(self): | 81 def saveFile(self): |
63 global curFileName | 82 global curFileName |
64 global curSaveIndex | 83 global curSaveIndex |
84 options = self.path.rsplit('?') | |
85 options = options[1].rsplit('=') | |
86 key = options[1] | |
87 print key | |
65 varLen = int(self.headers['Content-Length']) | 88 varLen = int(self.headers['Content-Length']) |
66 postVars = self.rfile.read(varLen) | 89 postVars = self.rfile.read(varLen) |
67 print curFileName | 90 print "Saving file key "+key |
68 file = open('saves/'+curFileName,'w') | 91 file = open('saves/save-'+key+'.xml','w') |
69 file.write(postVars) | 92 file.write(postVars) |
70 file.close() | 93 file.close() |
71 try: | 94 try: |
72 wbytes = os.path.getsize('saves/'+curFileName) | 95 wbytes = os.path.getsize('saves/save-'+key+'.xml') |
73 except OSError: | 96 except OSError: |
74 self.send_response(200) | 97 self.send_response(200) |
75 self.send_header("Content-type", "text/xml") | 98 self.send_header("Content-type", "text/xml") |
76 self.end_headers() | 99 self.end_headers() |
77 self.wfile.write('<response state="error"><message>Could not open file</message></response>') | 100 self.wfile.write('<response state="error"><message>Could not open file</message></response>') |
92 global pseudo_files | 115 global pseudo_files |
93 global PSEUDO_PATH | 116 global PSEUDO_PATH |
94 if(request.client_address[0] == "127.0.0.1"): | 117 if(request.client_address[0] == "127.0.0.1"): |
95 if (request.path == "/favicon.ico"): | 118 if (request.path == "/favicon.ico"): |
96 send404(request) | 119 send404(request) |
120 elif (request.path.split('?',1)[0] == "/keygen.php"): | |
121 keygen(request); | |
97 else: | 122 else: |
98 if (request.path == '/'): | 123 if (request.path == '/'): |
99 request.path = '/index.html' | 124 request.path = '/index.html' |
100 elif (request.path == '/pseudo.xml'): | 125 elif (request.path == '/pseudo.xml'): |
101 request.path = '/'+PSEUDO_PATH + pseudo_files[pseudo_index] | 126 request.path = '/'+PSEUDO_PATH + pseudo_files[pseudo_index] |
106 else: | 131 else: |
107 send404(request) | 132 send404(request) |
108 | 133 |
109 def do_POST(request): | 134 def do_POST(request): |
110 if(request.client_address[0] == "127.0.0.1"): | 135 if(request.client_address[0] == "127.0.0.1"): |
111 if (request.path == "/save" or request.path == "/save.php"): | 136 if (request.path.rsplit('?',1)[0] == "/save" or request.path.rsplit('?',1)[0] == "/save.php"): |
112 saveFile(request) | 137 saveFile(request) |
113 else: | 138 else: |
114 send404(request) | 139 send404(request) |
115 | 140 |
116 def run(server_class=BaseHTTPServer.HTTPServer, | 141 def run(server_class=BaseHTTPServer.HTTPServer, |