def searchWord(self,word,args): s=showWord() self.send_response(200) self.send_header('Content-type','text/html') self.end_headers() if(s.search(word)): if(serverStateObject.recordState==2): if(args.has_key('traverse')): serverStateObject.recordObj.setCurrentPosition(word) serverStateObject.setAddendum() add=serverStateObject.addendum finalwrite=s.showWord(word) # print finalwrite finalwrite='<html><body>\n'+finalwrite+'\n'+add+'\n</body></html>' self.wfile.write(finalwrite) # print "END" if(serverStateObject.recordState==1): serverStateObject.recordObj.record(word) else: self.wfile.write(self.paintHome(word+' not found in the word list.'))
def do_GET(self): try: print self.path self.path=self.path[1:] funcname='' args=[] arr=self.path.split('?') funcname=arr[0] argsdic={} if(self.path==''): self.path='home.html' if(len(arr)>1): args=arr[1].split('&') for i in args: inarr=i.split('=') argsdic[inarr[0]]=inarr[1] print funcname print argsdic if self.path.endswith(".html"): fname=self.path print "LOADING HTML" print fname if(os.path.exists('html/'+fname)): fd=open('html/'+fname,'rb') self.send_response(200) self.send_header('Content-type','text/html') self.end_headers() self.wfile.write(fd.read()) else: self.send404() else: if(funcname=='starttest'): serverStateObject.testObj=Test() serverStateObject.testWord=-1 serverStateObject.lastOptions=[] serverStateObject.testReport=[] serverStateObject.testCount=int(argsdic['count']) serverStateObject.testTotal=int(argsdic['count']) print 'test' self.wfile.write(serverStateObject.displayQuestion(serverStateObject.testObj.test(4),serverStateObject.testTotal)) serverStateObject.testCount-=1 elif(funcname=='midtest'): print serverStateObject.checkAnswer(argsdic['answer']) if(serverStateObject.testCount): self.wfile.write(serverStateObject.displayQuestion(serverStateObject.testObj.test(4),serverStateObject.testTotal)) serverStateObject.testCount-=1 else: self.wfile.write(serverStateObject.testStatistics()) #TODO END of test else: if(funcname=='startrecord'): serverStateObject.setState(1) serverStateObject.recordObj=RecordReplay() serverStateObject.recordObj.startRecording(argsdic['filename']) serverStateObject.setAddendum() self.wfile.write(self.paintHome('Recording Started')) elif(funcname=='resumerecord'): if(serverStateObject.recordObj.isActive()): print "Resuming" serverStateObject.setState(1) serverStateObject.setAddendum() self.wfile.write(self.paintHome('Resuming session ')) elif(funcname=='pauserecord'): serverStateObject.setState(0) self.wfile.write(backToHome('Recording Paused',serverStateObject.addendum)) self.wfile.write(self.paintHome('Recording Paused')) elif(funcname=='stoprecord'): serverStateObject.setState(0) serverStateObject.recordObj.dumpster() serverStateObject.recordObj.clear() serverStateObject.setAddendum() self.wfile.write(self.paintHome('Recording Stopped and Stored')) elif(funcname=='listrecord'): serverStateObject.recordObj=self.getRecordObject() listing=serverStateObject.recordObj.showRecording() htmlRet='<table cellpadding="2" cellspacing="5">' for arr in listing: htmlRet+='<tr>\n' htmlRet+=printRecordListing(arr) htmlRet+='\n</tr>\n' htmlRet+='</table>' self.send_response(200) self.send_header('Content-type','text/html') self.end_headers() self.wfile.write(htmlRet) elif(funcname=='rewind'): print "REWIND MACHI" serverStateObject.recordObj=self.getRecordObject() print (argsdic['filename']) if(serverStateObject.recordObj.reloadFile(argsdic['filename'])): serverStateObject.setState(2) serverStateObject.setAddendum() self.searchWord(serverStateObject.recordObj.onFirst(),argsdic) print serverStateObject.addendum else: self.send404() print "END OF REWIND MACHI" elif(funcname=='stoprewind'): serverStateObject.setState(0) serverStateObject.setAddendum() self.wfile.write(self.paintHome('Rewind Stopped')) elif(funcname=='search'): print "HERE SEARCH" self.searchWord(argsdic['word'],argsdic) return elif(funcname=='randomword'): self.searchWord(showWord().randomWord(),{}) elif(funcname=='add'): s=Word() self.send_response(200) self.send_header('Content-type','text/html') self.end_headers() if(showWord().search(argsdic['word'])): self.wfile.write(argsdic['word']+" already exists in dictionary"+serverStateObject.addendum) elif(s.addWord(argsdic['word'])): self.wfile.write(paintAdded(argsdic['word'])+showWord().showWord(argsdic['word'])+serverStateObject.addendum) if(serverStateObject.recordState==1): serverStateObject.recordObj.record(argsdic['word']) else: self.wfile.write(argsdic['word']+" does not exist"+serverStateObject.addendum) else: self.send404() return except IOError: self.send_response(404) self.send_error(404,'File Not found') self.send_header('Content-type','text/html') self.end_headers() self.wfile.write("404, Object not found") return