Mercurial > hg > rlgallery-misc
view py/recorder.py @ 20:c05050f78d81
Make arogue5 scores appear on the player pages too.
This could probably be done in a more structured way.
author | John "Elwin" Edwards <elwin@sdf.org> |
---|---|
date | Mon, 17 Sep 2012 11:41:11 -0700 |
parents | a943cfdfbad9 |
children | e8f3b7994d88 |
line wrap: on
line source
#!/usr/bin/python import os import psycopg2 import rlgalldb as rlgall # Contains a dir for everyone who registered everydir = "/var/dgl/dgldir/ttyrec/" # Contains a page for everyone we know about #knowndir = rlgall.dbdir + "players/" # Contact the database conn = psycopg2.connect("dbname=rlg") cur = conn.cursor() # newnames is the list of newly registered players who are not yet in the # database. updatenames is the set of players whose pages need updating. cur.execute("SELECT pname FROM players;") playersInDB = [ row[0] for row in cur.fetchall() ] playersAll = os.listdir(everydir) newnames = [ name for name in playersAll if name not in playersInDB ] updatenames = set(newnames) # Add the new names to the database for newplayer in newnames: cur.execute("INSERT INTO players VALUES (%s);", [newplayer]) conn.commit() cur.close() conn.close() # Update the database for each game. for game in rlgall.gamelist: updatenames.update(game.loadnew()) # All the databases have been updated. Now make the pages. # Currently the high scores for all the games are on the same page. If # they split up, this will have to change to a Game method. rlgall.highpage() for name in updatenames: rlgall.playerpage(name) exit()