1 """Common WWW/CGI utilities"""
4 from __future__ import print_function
8 def exception(str = ""):
9 if sys.exc_type == SystemExit: # pass exit() normally
12 # Add the second linefeed to terminate HTTP headers
13 print("Content-Type: text/html\n")
16 print(html.exception())
26 err_str = "Unknown error"
28 # Add the second linefeed to terminate HTTP headers
29 print("Content-Type: text/html\n")
35 def get_redirect(_str = ""):
36 server_name = os.environ["SERVER_NAME"]
37 server_port = os.environ["SERVER_PORT"]
39 if server_port == "80":
42 server_port = ":" + server_port
44 return "http://" + server_name + server_port + _str
47 def convert_empty(estr):
55 def gen_html(title, body):
71 def mkexpires(hours=1, minutes=0, seconds=0):
72 from datetime import datetime, timedelta
73 expire = datetime.now() + timedelta(hours=hours, minutes=minutes, seconds=seconds)
74 return "Expires: %s" % expire.strftime("%a, %d %b %Y %H:%M:%S GMT")
79 for format in ("%a, %d %b %Y %H:%M:%S GMT", "%A, %d-%b-%y %H:%M:%S GMT", "%A, %d-%b-%Y %H:%M:%S GMT"):
81 return time.mktime(time.strptime(t, format)) - time.timezone
82 except (ValueError, OverflowError):