view py/recorder.py @ 49:6138c27d1950

Escape the player's name when printing it into HTML. Non-alphanumeric characters in names may eventually be possible.
author John "Elwin" Edwards
date Mon, 24 Mar 2014 16:01:28 -0700
parents 09ef92dc4439
children
line wrap: on
line source

#!/usr/bin/python3

import os
import psycopg2
import 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.

# The high page has been replaced with a CGI script.
#rlgall.highpage()

for name in updatenames:
  rlgall.playerpage(name)

exit()