| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- from flask import Flask, render_template, request, jsonify, redirect, url_for
- from fpl_lib import SFL, Team, Leauge
- from flask_pymongo import PyMongo
- from bson.objectid import ObjectId
- app = Flask(__name__)
- app.config["MONGO_URI"] = "mongodb://localhost:27017/fpl_db"
- mongo = PyMongo(app)
- sfp = SFL("ABC")
- sfp.setup()
- @app.route('/players/<name>')
- def search_player(name):
- results = sfp.search_player(name)
- return jsonify(output=results)
- @app.route('/lgs', methods=["GET", "POST"])
- def lgs():
- lgs = mongo.db.lgs.find()
- teams = mongo.db.teams.find()
- if request.method == "POST":
- if 'createLg' in request.form:
- name = request.form.get('title', None)
- team = Leauge(name, mongo)
- team.create()
- return redirect(url_for(".lgs"))
- lg = None
- if 'lg_id' in request.args:
- #lg = mongo.db.lgs.find_one({'_id': ObjectId(request.args.get('lg_id'))})
- lg = Leauge.from_id(request.args.get('lg_id'), mongo)
- if 'selectTeam' in request.form:
- team_values = request.form.getlist('teams')
- print(f"teams = {team_values}")
- for t in team_values:
- lg.add_team(t)
- lg.save()
- return render_template('lgs.html', lgs = lgs, lg=lg, teams = teams)
- @app.route('/team/<team_id>', methods=["GET", "POST"])
- def team(team_id):
- team = mongo.db.teams.find_one({"_id": ObjectId(team_id)})
- results = sfp.search_player("")
- currentPlayers = []
- for p in team['players']:
- try:
- currentPlayers.append(sfp.get_player(p))
- except:
- currentPlayers.append(None)
- if 'searchBtn' in request.form:
- name = request.form.get('name', '')
- results = sfp.search_player(name)
- if 'deletePlayer' in request.form:
- deletePlayers = request.form.getlist('deletes')
- print(f"delete players = {deletePlayers}")
- players = team['players']
- print(f"players = {players}")
- for i in deletePlayers:
- print(f"i = {i}")
- players.remove(int(i))
- mongo.db.teams.update_one({"_id": ObjectId(team_id)}, {"$set": {"players": players}})
- return redirect(url_for("team", team_id=team_id))
- if 'selectPlayers' in request.form:
- selectPlayers = request.form.getlist('players')
- selectPlayers = [int(x) for x in selectPlayers]
- player_set = set(team["players"])
- for p in selectPlayers:
- player_set.add(p)
- mongo.db.teams.update_one({"_id": ObjectId(team_id)}, {"$set": {"players": list(player_set)}})
- return redirect(url_for("team", team_id=team_id))
- return render_template('team.html', team = team, results = results, currentPlayers = currentPlayers)
- @app.route('/', methods=["GET", "POST"])
- def index():
- players = sfp.players[:400]
- print("=== players ===")
- print(players)
- selectTeam = request.args.get("t", "")
- if request.method == "POST":
- teamCreate = request.form.get('teamCreate', None)
- if 'selectPlayerBtn' in request.form:
- print(f"selectPlayerBtn == {selectTeam}")
- selectPlayers = request.form.getlist('players')
- selectPlayers = [int(x) for x in selectPlayers]
- mongo.db.teams.update_one({"_id": ObjectId(selectTeam)}, {"$set": {"players": selectPlayers}})
- print("select players")
- print(selectPlayers)
- if teamCreate:
- print("Team Create")
- teamName = request.form.get('teamName', None)
- mongo.db.teams.insert_one({'title': teamName})
- teams = mongo.db.teams.find()
- currentTeam = None
- currentPlayers = []
- if selectTeam != "":
- currentTeam = mongo.db.teams.find_one({"_id": ObjectId(selectTeam)})
- for p in currentTeam['players']:
- try:
- currentPlayers.append(sfp.get_player(p))
- except:
- currentPlayers.append(None)
- #currentPlayers = sfp.get_players(currentTeam['players'])
- return render_template('index.html', players = players, teams=teams, selectTeam = selectTeam, currentTeam = currentTeam, currentPlayers = currentPlayers)
|