35
|
1 #!/usr/bin/python3
|
|
2
|
|
3 import sys
|
|
4 import cgi
|
|
5 import rlgall
|
|
6
|
|
7 checkstr = '{0}:<input type="checkbox" name="g" value="{1}" checked="checked"> '
|
|
8 uncheckstr = '{0}:<input type="checkbox" name="g" value="{1}"> '
|
|
9
|
|
10 cgidata = cgi.FieldStorage()
|
|
11
|
|
12 formgames = cgidata.getlist("g")
|
|
13 if "all" in formgames:
|
|
14 games = rlgall.gamelist
|
|
15 else:
|
|
16 games = []
|
|
17 for g in rlgall.gamelist:
|
|
18 if g.uname in formgames:
|
|
19 games.append(g)
|
|
20 if not games:
|
|
21 games = rlgall.gamelist
|
|
22
|
|
23 formstart = cgidata.getfirst("s")
|
|
24 if not formstart:
|
|
25 start = 0
|
|
26 else:
|
|
27 try:
|
|
28 start = int(formstart)
|
|
29 except ValueError:
|
|
30 start = 0
|
|
31 if start < 0:
|
|
32 start = 0
|
|
33
|
|
34 deflimit = (12 // len(games)) * 5
|
|
35 formlimit = cgidata.getfirst("l")
|
|
36 if not formlimit:
|
|
37 limit = deflimit
|
|
38 else:
|
|
39 try:
|
|
40 limit = int(formlimit)
|
|
41 except ValueError:
|
|
42 limit = deflimit
|
|
43 if limit <= 0:
|
|
44 limit = deflimit
|
|
45
|
|
46
|
|
47 sys.stdout.write("Content-Type: text/html; charset=utf-8\r\n\r\n")
|
|
48 sys.stdout.write(rlgall.phead.format("High Scores"))
|
|
49 sys.stdout.write(rlgall.ptop)
|
|
50 sys.stdout.write(rlgall.navscore.format("High Scores"))
|
|
51 if len(games) == 1:
|
|
52 if start == 0:
|
|
53 intitle = "Top {0} scores for {1}".format(limit, games[0].name)
|
|
54 else:
|
|
55 intitle = "Scores {0} - {1} for {2}".format(start + 1, start + limit,
|
|
56 games[0].name)
|
|
57 sys.stdout.write(rlgall.pti.format(intitle))
|
|
58 highlist = games[0].getHigh(limit, start)
|
|
59 rlgall.printTable(highlist, games[0].rankfields, sys.stdout)
|
|
60 else:
|
|
61 if start == 0:
|
|
62 intitle = "Top {0} scores".format(limit)
|
|
63 else:
|
|
64 intitle = "Scores {0} - {1}".format(start + 1, start + limit)
|
|
65 sys.stdout.write(rlgall.pti.format(intitle))
|
|
66 for g in games:
|
|
67 sys.stdout.write(rlgall.secthead.format(g.name))
|
|
68 highlist = g.getHigh(limit, start)
|
|
69 rlgall.printTable(highlist, g.rankfields, sys.stdout)
|
|
70 sys.stdout.write('<form action="/scoring/high.cgi" method="get">\n')
|
|
71 sys.stdout.write('<div>Number of scores: ')
|
|
72 sys.stdout.write('<input type="text" name="l" value="{0}">'.format(limit))
|
|
73 sys.stdout.write(' Skip the first: ')
|
|
74 sys.stdout.write('<input type="text" name="s" value="{0}">'.format(start))
|
|
75 sys.stdout.write('</div><div>')
|
|
76 for game in rlgall.gamelist:
|
|
77 if game in games:
|
|
78 sys.stdout.write(checkstr.format(game.name, game.uname))
|
|
79 else:
|
|
80 sys.stdout.write(uncheckstr.format(game.name, game.uname))
|
|
81 sys.stdout.write('</div><div><input type="submit" value="Get Scores">')
|
|
82 sys.stdout.write('</div></form>')
|
|
83 sys.stdout.write(rlgall.pend)
|
|
84 exit()
|