]> git.phdru.name Git - m_lib.git/blob - m_lib/net/www/util.py
28b8f09eb8799b347e8319799a2421d24d2de6d2
[m_lib.git] / m_lib / net / www / util.py
1 "Common WWW/CGI utilities"
2
3
4 import sys, os
5
6
7 def exception(str = ""):
8    if sys.exc_type == SystemExit: # pass exit() normally
9       return
10  
11    print "Content-Type: text/html"
12    print # Terminate HTTP headers
13
14    import html
15    print html.exception()
16
17    if str:
18       print str
19
20    sys.exit(1)
21
22
23 def error(err_str):
24    if not err_str:
25       err_str = "Unknown error"
26
27    print "Content-Type: text/html"
28    print # Terminate HTTP headers
29
30    print str(err_str)
31    sys.exit(1)
32
33
34 def get_redirect(_str = ""):
35    server_name = os.environ["SERVER_NAME"]
36    server_port = os.environ["SERVER_PORT"]
37
38    if server_port == "80":
39       server_port = ""
40    else:
41       server_port = ":" + server_port
42
43    return "http://" + server_name + server_port + _str
44
45
46 def convert_empty(estr):
47    if estr:
48       _str = str(estr)
49    else:
50       _str = " "
51    return _str
52
53
54 def gen_html(title, body):
55    print """
56    <HTML>
57       <HEAD>
58          <TITLE>
59             %s
60          </TITLE>
61       </HEAD>
62
63       <BODY>
64          %s
65       </BODY>
66    </HTML>
67    """ % (title, body)
68
69
70 def mkexpires(hours=1, minutes=0, seconds=0):
71    from datetime import datetime, timedelta
72    expire = datetime.now() + timedelta(hours=hours, minutes=minutes, seconds=seconds)
73    return "Expires: %s" % expire.strftime("%a, %d %b %Y %H:%M:%S GMT")
74
75
76 def parse_time(t):
77    import time
78    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"):
79       try:
80          return time.mktime(time.strptime(t, format)) - time.timezone
81       except (ValueError, OverflowError):
82          pass
83
84    return None