#!/usr/bin/python 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 '%s

' % "Your query has been saved" print 'time: %s
' % tm print 'comments: %s

' % 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 '%s

' % "Your query has been deleted" print 'View saved queries  ' print '

' if not 'delete' in dict_url.keys(): print 'Back to Autotest
' % HTTP_REFERER else: print 'Autotest Results
' def main(): print "Content-type: text/html\n" print '' print '' print '' body() print '' print '' main()