Mercurial > hg > rlgallery-misc
annotate web/scoring/high.cgi @ 73:ac8258c1b505
Update the downloads page.
| author | John "Elwin" Edwards |
|---|---|
| date | Wed, 28 Dec 2016 10:20:30 -0500 |
| 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() |
