nicholas@120: import BaseHTTPServer nicholas@120: from os import walk nicholas@120: from os import path nicholas@120: import urllib2 nicholas@121: import pickle nicholas@121: import datetime nicholas@121: nicholas@121: curSaveIndex = 0; nicholas@121: curFileName = 'test-0.xml' nicholas@121: while(path.isfile('saves/'+curFileName)): nicholas@121: curSaveIndex += 1; nicholas@121: curFileName = 'test-'+str(curSaveIndex)+'.xml' nicholas@121: nicholas@121: print curFileName nicholas@120: nicholas@120: def send404(s): nicholas@120: s.send_response(404) nicholas@120: s.send_header("Content-type", "text/html") nicholas@120: s.end_headers() nicholas@120: nicholas@120: def processFile(s): nicholas@120: s.path = s.path[1:len(s.path)] nicholas@120: st = s.path.rsplit(',') nicholas@120: lenSt = len(st) nicholas@120: fmt = st[lenSt-1].rsplit('.') nicholas@120: size = path.getsize(urllib2.unquote(s.path)) nicholas@120: fileDump = open(urllib2.unquote(s.path)) nicholas@120: s.send_response(200) nicholas@120: nicholas@120: if (fmt[1] == 'html'): nicholas@120: s.send_header("Content-type", 'text/html') nicholas@120: elif (fmt[1] == 'css'): nicholas@120: s.send_header("Content-type", 'text/css') nicholas@120: elif (fmt[1] == 'js'): nicholas@120: s.send_header("Content-type", 'application/javascript') nicholas@120: else: nicholas@120: s.send_header("Content-type", 'application/octet-stream') nicholas@120: s.send_header("Content-Length", size) nicholas@120: s.end_headers() nicholas@120: s.wfile.write(fileDump.read()) nicholas@120: fileDump.close() nicholas@120: nicholas@121: def saveFile(self): nicholas@121: global curFileName nicholas@121: global curSaveIndex nicholas@121: varLen = int(self.headers['Content-Length']) nicholas@121: postVars = self.rfile.read(varLen) nicholas@121: print curFileName nicholas@121: file = open('saves/'+curFileName,'w') nicholas@121: curSaveIndex += 1; nicholas@121: curFileName = 'test-'+str(curSaveIndex)+'.xml' nicholas@121: print curFileName nicholas@121: file.write(postVars) nicholas@121: file.close() nicholas@121: self.send_response(200) nicholas@121: self.send_header("Content-type", "text/xml") nicholas@121: self.end_headers() nicholas@121: self.wfile.write('OKsaves/'+curFileName+'') nicholas@120: nicholas@120: class MyHandler(BaseHTTPServer.BaseHTTPRequestHandler): nicholas@120: def do_HEAD(s): nicholas@120: s.send_response(200) nicholas@120: s.send_header("Content-type", "text/html") nicholas@120: s.end_headers() nicholas@120: def do_GET(request): nicholas@120: if(request.client_address[0] == "127.0.0.1"): nicholas@120: if (request.path == "/favicon.ico"): nicholas@120: send404(request) nicholas@120: else: nicholas@120: if (request.path == '/'): nicholas@120: request.path = '/index.html' nicholas@120: processFile(request) nicholas@120: else: nicholas@120: send404(request) nicholas@121: def do_POST(request): nicholas@121: if(request.client_address[0] == "127.0.0.1"): nicholas@121: if (request.path == "/save"): nicholas@121: saveFile(request) nicholas@121: else: nicholas@121: send404(request) nicholas@120: nicholas@120: def run(server_class=BaseHTTPServer.HTTPServer, nicholas@120: handler_class=MyHandler): nicholas@120: server_address = ('', 8000) nicholas@120: httpd = server_class(server_address, handler_class) nicholas@120: httpd.serve_forever() nicholas@120: nicholas@120: run()