Mercurial > hg > rlgallery-misc
comparison py/rlgall.py @ 50:4549b3c0cd28
rlgall.py: add time selection to Game.getHigh().
Optional inittime and finaltime parameters set the range of time over
which to calculate high scores.
author | John "Elwin" Edwards |
---|---|
date | Fri, 28 Mar 2014 09:33:49 -0700 |
parents | 6138c27d1950 |
children | df7acc5653b3 |
comparison
equal
deleted
inserted
replaced
49:6138c27d1950 | 50:4549b3c0cd28 |
---|---|
255 if not newest: | 255 if not newest: |
256 of.write("<div>No one has braved this dungeon yet.</div>\n") | 256 of.write("<div>No one has braved this dungeon yet.</div>\n") |
257 else: | 257 else: |
258 printTable(newest, self.fields, of) | 258 printTable(newest, self.fields, of) |
259 return | 259 return |
260 def getHigh(self, n=10, offset=0): | 260 def getHigh(self, n=10, offset=0, inittime=None, finaltime=None): |
261 "Gets the n highest scores (starting at offset) from the database, \ | 261 "Gets the n highest scores (starting at offset) from the database, \ |
262 returning a list of dicts." | 262 returning a list of dicts." |
263 qfields = [] | 263 qfields = [] |
264 for f in self.rankfields: | 264 for f in self.rankfields: |
265 if f == "rank": | 265 if f == "rank": |
266 qfields.append("rank(*) OVER (ORDER BY score DESC)") | 266 qfields.append("rank(*) OVER (ORDER BY score DESC)") |
267 else: | 267 else: |
268 qfields.append(f) | 268 qfields.append(f) |
269 qstr = "SELECT " + ", ".join(qfields) + " FROM {0} ".format(self.uname) | 269 qstr = "SELECT " + ", ".join(qfields) + " FROM {0}".format(self.uname) |
270 qvals = [] | 270 qvals = [] |
271 if isinstance(inittime, datetime): | |
272 qstr += " WHERE endt >= %s" | |
273 qvals.append(inittime) | |
274 if isinstance(finaltime, datetime): | |
275 if finaltime < inittime: | |
276 return [] | |
277 qstr += " AND endt < %s" | |
278 qvals.append(finaltime) | |
279 elif isinstance(finaltime, datetime): | |
280 qstr += " WHERE endt < %s" | |
281 qvals.append(finaltime) | |
271 try: | 282 try: |
272 n = int(n) | 283 n = int(n) |
273 except (ValueError, TypeError): | 284 except (ValueError, TypeError): |
274 return [] | 285 return [] |
275 if n <= 0: | 286 if n <= 0: |