Mercurial > hg > rlgallery-misc
comparison web/archive.cgi @ 30:e8f3b7994d88
Port to Python 3.
All scripts and modules have been ported to Python 3 and appear to
work. Some changes to the lighttpd configuration were needed.
author | John "Elwin" Edwards |
---|---|
date | Tue, 31 Dec 2013 13:36:19 -0500 |
parents | 4778ab7de7aa |
children | 25843238434a |
comparison
equal
deleted
inserted
replaced
29:23a769aa487e | 30:e8f3b7994d88 |
---|---|
1 #!/usr/bin/python | 1 #!/usr/bin/python3 |
2 | 2 |
3 import cgi | 3 import cgi |
4 import os | 4 import os |
5 import sys | 5 import sys |
6 import time | 6 import time |
7 import calendar | 7 import calendar |
8 from datetime import datetime | 8 from datetime import datetime |
9 import pytz | |
9 import rlgalldb as rlgall | 10 import rlgalldb as rlgall |
10 #import cgitb | 11 #import cgitb |
11 | 12 |
12 #cgitb.enable() | 13 #cgitb.enable() |
13 | 14 |
53 soptstr = '<option value="{0}" label="{1}" selected="selected">{1}</option>\n' | 54 soptstr = '<option value="{0}" label="{1}" selected="selected">{1}</option>\n' |
54 tf = '<input type="text" size="2" maxlength="2" name="{0}" value="{1:02}">' | 55 tf = '<input type="text" size="2" maxlength="2" name="{0}" value="{1:02}">' |
55 emptf = '<input type="text" size="2" maxlength="2" name="{0}">' | 56 emptf = '<input type="text" size="2" maxlength="2" name="{0}">' |
56 sstr = '<div>Date: <select name="year">\n' | 57 sstr = '<div>Date: <select name="year">\n' |
57 # Default to today | 58 # Default to today |
58 now = datetime.now(rlgall.utc) | 59 now = datetime.now(pytz.utc) |
59 if dvals[0] == None: | 60 if dvals[0] == None: |
60 dvals[0] = now.year | 61 dvals[0] = now.year |
61 if dvals[1] == None: | 62 if dvals[1] == None: |
62 dvals[1] = now.month | 63 dvals[1] = now.month |
63 if dvals[2] == None: | 64 if dvals[2] == None: |
162 utime = 0 | 163 utime = 0 |
163 if utime != None: | 164 if utime != None: |
164 chtime = time.gmtime(utime) | 165 chtime = time.gmtime(utime) |
165 for i in range(6): | 166 for i in range(6): |
166 hlist[i] = chtime[i] | 167 hlist[i] = chtime[i] |
167 return datetime.fromtimestamp(utime, rlgall.utc) | 168 return datetime.fromtimestamp(utime, pytz.utc) |
168 | 169 |
169 # Now try to get a human-readable specification. | 170 # Now try to get a human-readable specification. |
170 lerrors = [] | 171 lerrors = [] |
171 year = month = day = hour = minute = second = None | 172 year = month = day = hour = minute = second = None |
172 fyear = fdata.getfirst("year") | 173 fyear = fdata.getfirst("year") |
259 hlist[5] = second | 260 hlist[5] = second |
260 if lerrors: | 261 if lerrors: |
261 errlist.extend(lerrors) | 262 errlist.extend(lerrors) |
262 return None | 263 return None |
263 #return calendar.timegm([year, month, day, hour, minute, second, 0, 0, 0]) | 264 #return calendar.timegm([year, month, day, hour, minute, second, 0, 0, 0]) |
264 return datetime(year, month, day, hour, minute, second, 0, rlgall.utc) | 265 return datetime(year, month, day, hour, minute, second, 0, pytz.utc) |
265 | 266 |
266 # Begin processing | 267 # Begin processing |
267 fdata = cgi.FieldStorage() | 268 fdata = cgi.FieldStorage() |
268 | 269 |
269 # If this is true, the user didn't supply any search criteria, so assume it | 270 # If this is true, the user didn't supply any search criteria, so assume it |
305 gamefiles = result[0] | 306 gamefiles = result[0] |
306 cur.close() | 307 cur.close() |
307 conn.close() | 308 conn.close() |
308 | 309 |
309 # Now we are ready to print the page. | 310 # Now we are ready to print the page. |
310 sys.stdout.write("Content-type: text/html\r\n\r\n") | 311 sys.stdout.write("Content-Type: text/html; charset=utf-8\r\n\r\n") |
311 | 312 |
312 sys.stdout.write(rlgall.phead.format("Archive")) | 313 sys.stdout.write(rlgall.phead.format("Archive")) |
313 sys.stdout.write(rlgall.ptop) | 314 sys.stdout.write(rlgall.ptop) |
314 sys.stdout.write(rlgall.navtop.format("Archive")) | 315 sys.stdout.write(rlgall.navtop.format("Archive")) |
315 sys.stdout.write('<div class="content">\n') | 316 sys.stdout.write('<div class="content">\n') |