You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
2.1 KiB
81 lines
2.1 KiB
#!/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()
|