コード例 #1
0
def index(postVars):

	global votesToFinish
	global couchdbServer

	templateVars = dict()

	try:
		db = couchdbServer["currentgame"]
	except ResourceNotFound as exception:
		print "There's no active game"
		return output_template("error.html", templateVars)
	except:
		print "Unexpected error on get current game"
		return output_template("error.html", templateVars)
	
	
	currentGameId = ""
	for gameid in db:
		currentGameId = gameid
	
	game = Game.load(db,currentGameId)		
	templateVars["opponent"] = game.opponent

	try:
		db = couchdbServer["players"]
	except ResourceNotFound as exception:
		print "Unable to access players database"
		return output_template("error.html", templateVars)
	except:
		print "Unexpected error accessing players database"
		return output_template("error.html", templateVars)
	
	# select randomly two different players
	faultSelectingPlayer = True;
	while faultSelectingPlayer:
	
		randomPlayersIds = game.getRandomPlayers()
	
		player0 = Player.load(db,randomPlayersIds[0])
		player1 = Player.load(db,randomPlayersIds[1])
		
		# are the two players valid?
		if player0 != None and player1 != None:
			faultSelectingPlayer = False

			# save photo files to static content directory
			player0.updatePhotoFileOnDisk(db)
			player1.updatePhotoFileOnDisk(db)

	
	templateVars["votesToFinish"] = votesToFinish
	templateVars["player0"] = player0
	templateVars["player1"] = player1

	return output_template("index.html", templateVars)
コード例 #2
0
def vote(postVars):
	
	global couchdbServer
	
	templateVars = dict()
	winnerId = postVars["winner"].value.decode("utf-8")
	loserId = postVars["loser"].value.decode("utf-8")
	
	try:
		db = couchdbServer.create("players")
	except:
		db = couchdbServer["players"]
	
	winner = Player.load(db,winnerId)
	loser = Player.load(db,loserId)

	match = Match()
	if postVars["draw"].value == "0":
		match.matchWithWinner(winner,loser)
	else:
		match.matchWithoutWinner(winner,loser)
	
	try:
		winner.store(db)
	except ResourceConflict:
		print "Unable to store winner"
	
	try:
		loser.store(db)
	except ResourceConflict:
		print "Unable to store loser"
		
		
	votesCount = classes.rankingsession.getSession("votesToFinish")
	votesCount -= 1
	votesCount = classes.rankingsession.setSession("votesToFinish", votesCount)
	
	templateVars = dict(json = json.dumps(dict()))
	return output_template("json.html", templateVars )
コード例 #3
0
def newGame(postVars):

	global couchdbServer
	players = []

	try:
		db = couchdbServer.create("players")
	except:
		db = couchdbServer["players"]

	for playerId in db:
		players.append(Player.load(db,playerId))
	
	return output_template("newGame.html", dict(players = players))
コード例 #4
0
def updatePlayer(postVars):
	
	global couchdbServer
	
	playerId = postVars["playerId"].value.decode("utf-8")
	operation = postVars["operation"].value.decode("utf-8")
	
	jsonReturn = dict()
	jsonReturn["error"] = False
	
	try:
		db = couchdbServer.create("players")
	except:
		db = couchdbServer["players"]

	if operation == "delete":
		jsonReturn["htmlId"] = "row_%s" % playerId
		try:
			player = db[playerId]
			db.delete(player)
		except:
			jsonReturn["error"] = True

	elif operation == "resetKarma":
		
		jsonReturn["htmlId"] = "karma_col_%s" % playerId
		
		try:
			player = Player.load(db,playerId)
			player.resetKarma()
			jsonReturn["newKarma"] = "%.1f" % player.karma;
			player.store(db)		
		except:
			jsonReturn["error"] = True

	
	templateVars = dict(json = json.dumps(jsonReturn))
	
	return output_template("json.html", templateVars )
コード例 #5
0
def viewRanking(postVars):

	global couchdbServer
	players = []

	try:
		db = couchdbServer.create("players")
	except:
		db = couchdbServer["players"]


	for playerId in db:
		players.append(Player.load(db,playerId))

	sortedPlayers = sorted(players, reverse=True,  key=lambda player: player.karma) 

	playersNames = []
	playersKarmas = []
	for player in sortedPlayers:
		playersKarmas.append(str(player.karma))
		playersNames.append("\"%s\"" % player.name)

	try:
		db = couchdbServer.create("snapshots")
	except:
		db = couchdbServer["snapshots"]

	snapshots = []
	lastOpponent = None
	for snapshotId in db:
		snapshot = Snapshot.load(db,snapshotId)

		snapData = {}
		snapData["decription"] = snapshot.description
		snapData["opponent"] = snapshot.game.opponent
		snapData["idx"] = "%d%d%d%d%d%d" % (snapshot.date.year, 
		                                    snapshot.date.month, 
		                                    snapshot.date.day,
		                                    snapshot.date.hour,
		                                    snapshot.date.minute,
		                                    snapshot.date.second )

		snapshotLabel = "%d/%d/%d" % (snapshot.date.day, snapshot.date.month, snapshot.date.year )
		if snapshot.game.opponent != lastOpponent:
			lastOpponent = snapshot.game.opponent
			snapshotLabel = "%s %s" % (snapshot.game.opponent, snapshotLabel)

		snapData["label"] = snapshotLabel
		snapData["players"] = {}

		for player in snapshot.players:
			snapData["players"][player.name]= player.karma
	
		snapshots.append(snapData)

	sortedSnapshots = sorted(snapshots, key=lambda snapshot: snapshot["idx"])

	templateVars = {}
	templateVars["playersKarmas"] = ",".join(playersKarmas)
	templateVars["playersNames"] = ",".join(playersNames)
	templateVars["jsonSnapshots"] = json.dumps(sortedSnapshots)
	

	return output_template("viewRanking.html", templateVars)