Mercurial > hg > rlgallery-misc
annotate web/scoring/high.cgi @ 100:44e8aaa20d02 default tip
Fix the format of archive links.
author | John "Elwin" Edwards |
---|---|
date | Wed, 03 Aug 2022 20:49:38 -0400 |
parents | 1d8dc3ed22cf |
children |
rev | line source |
---|---|
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 | |
72
1d8dc3ed22cf
Restore the default size of the high score list.
John "Elwin" Edwards
parents:
35
diff
changeset
|
34 deflimit = 10 |
35 | 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() |