Add tablerecent() so recent.cgi will work as before.
Port the tablerecent() function, which reads the most recent games directly from the logfile instead of the database. This allows recent.cgi to show games immediately without waiting for the recorder to put them in the database.
This commit is contained in:
parent
3f54b7a87d
commit
dc45fbe25e
2 changed files with 26 additions and 2 deletions
|
|
@ -171,7 +171,6 @@ class Game:
|
||||||
break
|
break
|
||||||
entlist.append(self.logtoDict(nextentry))
|
entlist.append(self.logtoDict(nextentry))
|
||||||
return
|
return
|
||||||
# TODO how does this work with postprocess?
|
|
||||||
def loadnew(self):
|
def loadnew(self):
|
||||||
conn = getconn()
|
conn = getconn()
|
||||||
if conn == None:
|
if conn == None:
|
||||||
|
|
@ -239,6 +238,29 @@ class Game:
|
||||||
conn.commit()
|
conn.commit()
|
||||||
cur.close()
|
cur.close()
|
||||||
return
|
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("<div>No one has braved this dungeon yet.</div>\n")
|
||||||
|
else:
|
||||||
|
printTable(newest, self.fields, of)
|
||||||
|
return
|
||||||
# End Game class definition
|
# End Game class definition
|
||||||
|
|
||||||
class RogueGame(Game):
|
class RogueGame(Game):
|
||||||
|
|
@ -251,6 +273,7 @@ class RogueGame(Game):
|
||||||
"name": "varchar(20)", "xl": "int", "fate": "text",
|
"name": "varchar(20)", "xl": "int", "fate": "text",
|
||||||
"ttyrecs": "text ARRAY", "startt": "timestamptz"}
|
"ttyrecs": "text ARRAY", "startt": "timestamptz"}
|
||||||
self.logdelim = " "
|
self.logdelim = " "
|
||||||
|
self.lookback = -1500
|
||||||
colspec = "("
|
colspec = "("
|
||||||
valspec = "("
|
valspec = "("
|
||||||
for i, col in enumerate(self.sqltypes.keys()):
|
for i, col in enumerate(self.sqltypes.keys()):
|
||||||
|
|
@ -379,6 +402,7 @@ class ARogueGame(Game):
|
||||||
"maxdepth": "int", "quest": "int", "hadquest": "bool",
|
"maxdepth": "int", "quest": "int", "hadquest": "bool",
|
||||||
"fate": "text", "ttyrecs": "text ARRAY", "startt": "timestamptz"}
|
"fate": "text", "ttyrecs": "text ARRAY", "startt": "timestamptz"}
|
||||||
self.logdelim = " "
|
self.logdelim = " "
|
||||||
|
self.lookback = -1800
|
||||||
colspec = "("
|
colspec = "("
|
||||||
valspec = "("
|
valspec = "("
|
||||||
for i, col in enumerate(self.sqltypes.keys()):
|
for i, col in enumerate(self.sqltypes.keys()):
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
import rlgall
|
import rlgalldb as rlgall
|
||||||
|
|
||||||
# The required header
|
# The required header
|
||||||
sys.stdout.write("Content-type: text/html\r\n\r\n")
|
sys.stdout.write("Content-type: text/html\r\n\r\n")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue