Mercurial > hg > webaudioevaluationtool
comparison python2.py @ 921:533d51508e93
Stash for project creator
author | Nicholas Jillings <n.g.r.jillings@se14.qmul.ac.uk> |
---|---|
date | Mon, 01 Jun 2015 12:55:21 +0100 |
parents | |
children | 2dc61bd6494e |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 921:533d51508e93 |
---|---|
1 import BaseHTTPServer | |
2 from os import walk | |
3 from os import path | |
4 import urllib2 | |
5 import pickle | |
6 import datetime | |
7 | |
8 curSaveIndex = 0; | |
9 curFileName = 'test-0.xml' | |
10 while(path.isfile('saves/'+curFileName)): | |
11 curSaveIndex += 1; | |
12 curFileName = 'test-'+str(curSaveIndex)+'.xml' | |
13 | |
14 print curFileName | |
15 | |
16 def send404(s): | |
17 s.send_response(404) | |
18 s.send_header("Content-type", "text/html") | |
19 s.end_headers() | |
20 | |
21 def processFile(s): | |
22 s.path = s.path[1:len(s.path)] | |
23 st = s.path.rsplit(',') | |
24 lenSt = len(st) | |
25 fmt = st[lenSt-1].rsplit('.') | |
26 size = path.getsize(urllib2.unquote(s.path)) | |
27 fileDump = open(urllib2.unquote(s.path)) | |
28 s.send_response(200) | |
29 | |
30 if (fmt[1] == 'html'): | |
31 s.send_header("Content-type", 'text/html') | |
32 elif (fmt[1] == 'css'): | |
33 s.send_header("Content-type", 'text/css') | |
34 elif (fmt[1] == 'js'): | |
35 s.send_header("Content-type", 'application/javascript') | |
36 else: | |
37 s.send_header("Content-type", 'application/octet-stream') | |
38 s.send_header("Content-Length", size) | |
39 s.end_headers() | |
40 s.wfile.write(fileDump.read()) | |
41 fileDump.close() | |
42 | |
43 def saveFile(self): | |
44 global curFileName | |
45 global curSaveIndex | |
46 varLen = int(self.headers['Content-Length']) | |
47 postVars = self.rfile.read(varLen) | |
48 print curFileName | |
49 file = open('saves/'+curFileName,'w') | |
50 curSaveIndex += 1; | |
51 curFileName = 'test-'+str(curSaveIndex)+'.xml' | |
52 print curFileName | |
53 file.write(postVars) | |
54 file.close() | |
55 self.send_response(200) | |
56 self.send_header("Content-type", "text/xml") | |
57 self.end_headers() | |
58 self.wfile.write('<response><state>OK</state><file>saves/'+curFileName+'</file></response>') | |
59 | |
60 class MyHandler(BaseHTTPServer.BaseHTTPRequestHandler): | |
61 def do_HEAD(s): | |
62 s.send_response(200) | |
63 s.send_header("Content-type", "text/html") | |
64 s.end_headers() | |
65 def do_GET(request): | |
66 if(request.client_address[0] == "127.0.0.1"): | |
67 if (request.path == "/favicon.ico"): | |
68 send404(request) | |
69 else: | |
70 if (request.path == '/'): | |
71 request.path = '/index.html' | |
72 processFile(request) | |
73 else: | |
74 send404(request) | |
75 def do_POST(request): | |
76 if(request.client_address[0] == "127.0.0.1"): | |
77 if (request.path == "/save"): | |
78 saveFile(request) | |
79 else: | |
80 send404(request) | |
81 | |
82 def run(server_class=BaseHTTPServer.HTTPServer, | |
83 handler_class=MyHandler): | |
84 server_address = ('', 8000) | |
85 httpd = server_class(server_address, handler_class) | |
86 httpd.serve_forever() | |
87 | |
88 run() |