81 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
| #!/usr/bin/python2
 | |
| 
 | |
| import os, cgi, cgitb, time, urllib
 | |
| import db, unique_cookie
 | |
| 
 | |
| ## setting script globals
 | |
| form = cgi.FieldStorage()
 | |
| if 'label' in form.keys():
 | |
|     comment = form['label'].value
 | |
| else:
 | |
|     comment = ''
 | |
| dict_url = {}
 | |
| for key in form.keys():
 | |
|     dict_url[key] = form[key].value
 | |
| 
 | |
| tm = time.asctime()
 | |
| uid = unique_cookie.unique_id('tko_history')
 | |
| HTTP_REFERER = os.environ.get('HTTP_REFERER')
 | |
| if HTTP_REFERER is None:
 | |
|     ## fall back strategy for proxy connection
 | |
|     ## substitute relative url
 | |
|     HTTP_REFERER = 'compose_query.cgi?' + urllib.urlencode(dict_url)    
 | |
| 
 | |
| 
 | |
| class QueryHistoryError(Exception):
 | |
|     pass
 | |
| 
 | |
| 
 | |
| def log_query():
 | |
|     db_obj = db.db()
 | |
|     data_to_insert = {'uid':uid, 'time_created':tm,
 | |
|               'user_comment':comment, 'url':HTTP_REFERER }
 | |
|     try:
 | |
|         db_obj.insert('tko_query_history', data_to_insert)
 | |
|     except:
 | |
|         raise QueryHistoryError("Could not save query")
 | |
| 
 | |
| 
 | |
| def delete_query(time_stamp):
 | |
|     ## query is marked for delete by time stamp
 | |
|     db_obj = db.db()
 | |
|     data_to_delete = {'time_created':time_stamp}
 | |
|     try:
 | |
|         db_obj.delete('tko_query_history', data_to_delete)
 | |
|     except Exception:
 | |
|         raise QueryHistoryError("Could not delete query")
 | |
|     
 | |
| 
 | |
| def body():
 | |
|     if not 'delete' in dict_url.keys():
 | |
|         log_query()
 | |
|         print '<b>%s</b><br><br>' % "Your query has been saved"
 | |
|         print 'time: %s<br>' % tm
 | |
|         print 'comments: %s<br><br>' % comment
 | |
|     else:
 | |
|         ## key 'delete' has arg value of time_stamp
 | |
|         ## which identifies the query to be deleted
 | |
|         time_stamp = dict_url['delete']
 | |
|         delete_query(time_stamp)
 | |
|         print '<b>%s</b><br><br>' % "Your query has been deleted"
 | |
| 
 | |
|     print '<a href="query_history.cgi">View saved queries</a>  '
 | |
|     print '<br><br>'
 | |
|     if not 'delete' in dict_url.keys():
 | |
|         print '<a href="%s">Back to Autotest</a><br>' % HTTP_REFERER
 | |
|     else:
 | |
|         print '<a href="compose_query.cgi">Autotest Results</a><br>'
 | |
| 
 | |
| 
 | |
| def main():
 | |
|     print "Content-type: text/html\n"
 | |
|     print '<html><head><title>'
 | |
|     print '</title></head>'
 | |
|     print '<body>'
 | |
|     body()
 | |
|     print '</body>'
 | |
|     print '</html>'
 | |
| 
 | |
| 
 | |
| main()
 |