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()
 |