Пример #1
0
	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.'))
Пример #2
0
	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