def submit_kill(idd): idd = int(idd) if "user" not in session: return redirect(url_for('root')) typ = request.form["timefordeath"] if typ == "kill": userID = db.getUserID(session["user"]) targetID = db.getTarget(userID, idd, True) else: targetID = db.getUserID(session["user"]) userID = db.getTarget(targetID, idd, False) current = datetime.now() date = str(current.year) + "-" + str(current.month) + "-" + str( current.day) time = str(current.hour) + ":" + str(current.minute) + ":" + str( current.second) confirmed = db.killTarget(userID, targetID, idd, time, date) if confirmed: n = len(db.getPlayersAlive(idd)) if n == 1 and db.getGameType(idd) == "Assassins - Last Man Standing": flash("The winner of the game has been determined!") return endgame(idd) else: flash("Kill was confirmed.") elif typ == "kill": flash( "Kill was submitted; please wait for your target to confirm your kill." ) else: flash( "Death was submitted; please wait for your killer to confirm your death." ) return redirect(url_for("game", idd=idd))
def game(idd): idd = int(idd) if "user" not in session: return redirect(url_for('root')) if db.getMaxPlayers(idd) == -1: flash("Game is invalid.") return redirect(url_for("profile")) gamee = db.getGameInfo(idd) gamee["adminname"] = db.getName(db.getUsername(gamee["managerID"])) gamee["targetID"] = db.getTarget(db.getUserID(session["user"]), idd, True) playerIDs, players = db.getPlayers(idd) gamee["players"] = zip(playerIDs, players) gamee["playersAlive"] = db.getPlayersAlive(idd) gamee["playerAlive"] = db.getUserID( session["user"]) in gamee["playersAlive"] gamee['submitted'] = db.getSubmitted(db.getUserID(session["user"]), idd) print gamee["players"] if gamee["targetID"] >= 0: gamee["targetname"] = db.getName(db.getUsername(gamee["targetID"])) if gamee["type"] == 0: gamee["type"] = "Assassins - Rapid Fire" else: gamee["type"] = "Assassins - Last Man Standing" managing = idd in db.getGamesID(db.getUserID(session["user"])) p, playing = db.getPlaying(db.getUserID(session["user"])) play = idd in playing feed = db.getFeed(idd) return render_template("game.html", game=gamee, admin=managing, playing=play, feed=feed, loggedin=True)
def leavegame(idd): if "user" not in session: return redirect(url_for("root")) idd = int(idd) db.leaveGame(db.getUserID(session["user"]), idd) flash("You successfully left the game.") return redirect(url_for("profile"))
def checkkey(): if "user" not in session: return redirect(url_for('root')) key = request.form["key"] game = db.checkKey(key) if game == "doesn't exist": flash("The key you entered is invalid. Please try again.") return redirect(url_for("fndgame")) elif game not in db.getGamesID(db.getUserID(session["user"])): p0, p1 = db.getPlayers(game) if len(p0) == db.getMaxPlayers(game): flash( "The game you're trying to join already has its max number of players." ) return redirect(url_for("fndgame")) if db.getUserID(session["user"]) in p0: flash("You've already joined this game!") return redirect(url_for("game", idd=game)) db.joinGame(game, db.getUserID(session["user"])) flash("Joined game " + str(game)) return redirect(url_for("game", idd=game)) flash("You can't join a game you're managing.") return redirect(url_for("fndgame"))
def profileWithID(idd): if "user" not in session: return redirect(url_for("root")) idd = int(idd) person = idd == db.getUserID(session["user"]) if person: return redirect(url_for("profile")) username = db.getUsername(idd) name = db.getName(username) games = db.getGames(idd) gameIDs = db.getGamesID(idd) playing, p = db.getPlaying(idd) finished = db.getFinishedGames() extension = db.getExtension(idd) totalkills = db.getTotalKills() gamesplayed = db.getNumGamesPlayed() recordkills = db.getRecordKills() if idd in totalkills: totalkills = totalkills[idd] else: totalkills = 0 if idd in gamesplayed: gamesplayed = gamesplayed[idd] avgkills = db.getAverageKills(idd) else: gamesplayed = 0 avgkills = "N/A" if idd in recordkills: recordkills = recordkills[idd] else: recordkills = "N/A" gameswon = db.getNumGamesWon(idd) avgplace = db.averagePlacing(idd) return render_template("profile.html", avgplace=avgplace, gameswon=gameswon, totalkills=totalkills, gamesplayed=gamesplayed, avgkills=avgkills, recordkills=recordkills, username=username, userID=idd, name=name, games=zip(games, gameIDs), playing=zip(playing, p), finished=finished, extension=extension, is_own=False, loggedin=True)
def profile(): if "user" not in session: return redirect(url_for('root')) username = session['user'] print username userID = db.getUserID(username) name = db.getName(username) games = db.getGames(userID) gameIDs = db.getGamesID(userID) playing, p = db.getPlaying(userID) finished = db.getFinishedGames() extension = db.getExtension(userID) totalkills = db.getTotalKills() gamesplayed = db.getNumGamesPlayed() recordkills = db.getRecordKills() if userID in totalkills: totalkills = totalkills[userID] else: totalkills = 0 if userID in gamesplayed: gamesplayed = gamesplayed[userID] avgkills = db.getAverageKills(userID) else: gamesplayed = 0 avgkills = "N/A" if userID in recordkills: recordkills = recordkills[userID] else: recordkills = "N/A" gameswon = db.getNumGamesWon(userID) avgplace = db.averagePlacing(userID) return render_template("profile.html", avgplace=avgplace, gameswon=gameswon, totalkills=totalkills, gamesplayed=gamesplayed, avgkills=avgkills, recordkills=recordkills, username=username, userID=userID, name=name, games=zip(games, gameIDs), playing=zip(playing, p), finished=finished, extension=extension, is_own=True, loggedin=True)
def create_game(): if "user" not in session: return redirect(url_for('root')) username = session['user'] gameMode = request.form['gameMode'] startDate = request.form['startDate'] endDate = request.form['endDate'] if startDate > endDate: flash("Start date must be before end date.") return redirect(url_for("mkgame")) adminID = db.getUserID(username) joinKey = generateKey() title = request.form['title'] description = request.form['description'] if gameMode == "Assassins - Rapid Fire": typ = 0 elif gameMode == "Assassins - Last Man Standing": typ = 1 gameID = db.crGame(adminID, joinKey, gameMode, startDate, endDate, title, description) session['game'] = gameID session["gameType"] = typ return render_template("rules.html", gameType=typ, loggedin=True)
def upload(): if "user" not in session: return redirect(url_for("root")) if 'file' not in request.files: flash('No file part') return redirect(url_for(profile)) file = request.files['file'] print(file) if file and allowed_file(file.filename): filename = secure_filename(file.filename) userID = db.getUserID(session["user"]) newname = str(userID) file.save(path.join(my_app.config['UPLOAD_FOLDER'], filename)) extension = filename.split(".") extension = str(extension[1]) source = PFP_FOLDER + "/" + filename destination = PFP_FOLDER + "/" + newname + "." + extension rename(source, destination) db.setExtension(userID, extension) flash("Profile picture updated.") return redirect(url_for('profile')) else: flash("File incompatible.") return redirect(url_for('profile'))