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