import psql,init_webgo,helper,gamecreation import time from mod_python import * def process_form(req,form): """ reads username and passsword from form """ #if form == empty (which means if page is displayed for the first time): req.write(str(form.keys())) #req.write("
"+"name="+form['name']+", password="+form['password']+"
") if form.keys() != []: if ("name" in form.keys()) and ("password" in form.keys()): #extract name and password name = form["name"] password = form["password"] sessionid = form["sessionid"] origpassword = psql.get_user_info(name,"password") #check if user exists (else we would get an error string) if origpassword != "no such user": #no error message, now check password if password == origpassword: #login accepted psql.set_user_sessionid(name,sessionid) psql.set_user_timeout(name) #now display list of games. game_overview_form(req,name,sessionid) else: req.write("Login incorrect. Please try again.
") req.write(login_form()) else: #no such user req.write("Login incorrect. Please try again.
") req.write(login_form()) else: #one of (name,password) is missing: req.write("Please enter your name and password.") req.write(login_form()) def game_overview_form(req,user,sessionid): """ gets the name of a user and the queue of games. prints a form with the option to select,create and delete games. """ data = helper.header()+ """

Current Games:

""" gamelist = psql.get_user_game_list(user) req.write(str(gamelist)+"
\n") #display list of current games counter = 10 tmp = "" for item in gamelist: if (item != None) and (item != "None"): tmp += ' name="game" value="%s"> %s\n' % (item,item) tmp += '\n' % sessionid tmp += '\n' % user #later write partners name and whether its our turn or not #data += "Your partner: %s." tmp +="
" counter -= 1 if tmp == "": #no current games data += "You don't have any running games.\n" else: data += tmp data += '\n\n
' #now comes the option for creating new games. data += "

Start a new Game

\n" if counter > 0: data+= "You have %s free game slots.
" % counter data += """
""" % (sessionid, user) else: data+= "Sorry, all your game slots are in use." #display "You have ... free game slots" + Button "create game" #bei "create game neue funktion zum Erstellen + Mitspieler aus Liste auswählen. data+=helper.footer() #check for timeout: if (psql.get_user_info(user,'timeout') >= int(time.time())) and (sessionid == psql.get_user_info(user,'sessionid')): req.write(data) else: req.write(helper.header()+ 'your session timed out'+helper.footer()) def login_form(): """ print welcome message and html form. """ data = helper.header() + """

Name:

Pasword:

""" % helper.generate_session_id() data += helper.footer() return data def main(req): #get instance of fieldstorage form = util.FieldStorage(req) if "sessionid" not in form.keys(): req.write(login_form()) elif ("create" in form.keys()) and ("username" in form.keys()): #user wants to create a new game gamecreation.main(req,form) else: process_form(req,form)