diff --git a/py/rlgalldb.py b/py/rlgalldb.py index 32096d7..aea9c73 100644 --- a/py/rlgalldb.py +++ b/py/rlgalldb.py @@ -171,7 +171,6 @@ class Game: break entlist.append(self.logtoDict(nextentry)) return - # TODO how does this work with postprocess? def loadnew(self): conn = getconn() if conn == None: @@ -239,6 +238,29 @@ class Game: conn.commit() cur.close() return + def tablerecent(self, of): + "Prints the most recent games from the logfile, NOT the database." + newest = [] + try: + scr = open(self.scores) + except IOError: + pass + else: + try: + scr.seek(self.lookback, 2) + except IOError: + scr.seek(0) # The file wasn't that long, start at the beginning + if scr.tell() != 0: + scr.readline() # Throw away the incomplete line + self.getEntryDicts(scr, newest) + newest.reverse() + scr.close() + of.write(secthead.format(self.name)) + if not newest: + of.write("
No one has braved this dungeon yet.
\n") + else: + printTable(newest, self.fields, of) + return # End Game class definition class RogueGame(Game): @@ -251,6 +273,7 @@ class RogueGame(Game): "name": "varchar(20)", "xl": "int", "fate": "text", "ttyrecs": "text ARRAY", "startt": "timestamptz"} self.logdelim = " " + self.lookback = -1500 colspec = "(" valspec = "(" for i, col in enumerate(self.sqltypes.keys()): @@ -379,6 +402,7 @@ class ARogueGame(Game): "maxdepth": "int", "quest": "int", "hadquest": "bool", "fate": "text", "ttyrecs": "text ARRAY", "startt": "timestamptz"} self.logdelim = " " + self.lookback = -1800 colspec = "(" valspec = "(" for i, col in enumerate(self.sqltypes.keys()): diff --git a/web/recent.cgi b/web/recent.cgi index 644e720..253a9d9 100755 --- a/web/recent.cgi +++ b/web/recent.cgi @@ -3,7 +3,7 @@ import sys import time -import rlgall +import rlgalldb as rlgall # The required header sys.stdout.write("Content-type: text/html\r\n\r\n")