No Description

app.py 4.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. from flask import Flask, render_template, request, jsonify, redirect, url_for
  2. from fpl_lib import SFL, Team, Leauge
  3. from flask_pymongo import PyMongo
  4. from bson.objectid import ObjectId
  5. app = Flask(__name__)
  6. app.config["MONGO_URI"] = "mongodb://localhost:27017/fpl_db"
  7. mongo = PyMongo(app)
  8. sfp = SFL("ABC")
  9. sfp.setup()
  10. @app.route('/players/<name>')
  11. def search_player(name):
  12. results = sfp.search_player(name)
  13. return jsonify(output=results)
  14. @app.route('/player/<pid>')
  15. def get_player(pid):
  16. player = sfp.get_player(int(pid))
  17. return render_template("player.html", player = player)
  18. @app.route('/lgs', methods=["GET", "POST"])
  19. def lgs():
  20. lgs = mongo.db.lgs.find()
  21. teams = mongo.db.teams.find()
  22. if request.method == "POST":
  23. if 'createLg' in request.form:
  24. name = request.form.get('title', None)
  25. team = Leauge(name, mongo)
  26. team.create()
  27. return redirect(url_for(".lgs"))
  28. lg = None
  29. if 'lg_id' in request.args:
  30. #lg = mongo.db.lgs.find_one({'_id': ObjectId(request.args.get('lg_id'))})
  31. lg = Leauge.from_id(request.args.get('lg_id'), mongo)
  32. if 'selectTeam' in request.form:
  33. team_values = request.form.getlist('teams')
  34. print(f"teams = {team_values}")
  35. for t in team_values:
  36. lg.add_team(t)
  37. lg.save()
  38. return render_template('lgs.html', lgs = lgs, lg=lg, teams = teams)
  39. @app.route('/team/<team_id>', methods=["GET", "POST"])
  40. def team(team_id):
  41. team = mongo.db.teams.find_one({"_id": ObjectId(team_id)})
  42. results = sfp.search_player("")
  43. currentPlayers = []
  44. if 'players' in team:
  45. for p in team['players']:
  46. try:
  47. currentPlayers.append(sfp.get_player(p))
  48. except:
  49. currentPlayers.append(None)
  50. if 'searchBtn' in request.form:
  51. name = request.form.get('name', '')
  52. results = sfp.search_player(name)
  53. if 'deletePlayer' in request.form:
  54. deletePlayers = request.form.getlist('deletes')
  55. print(f"delete players = {deletePlayers}")
  56. players = team['players']
  57. print(f"players = {players}")
  58. for i in deletePlayers:
  59. print(f"i = {i}")
  60. players.remove(int(i))
  61. mongo.db.teams.update_one({"_id": ObjectId(team_id)}, {"$set": {"players": players}})
  62. return redirect(url_for("team", team_id=team_id))
  63. if 'selectPlayers' in request.form:
  64. selectPlayers = request.form.getlist('players')
  65. selectPlayers = [int(x) for x in selectPlayers]
  66. player_set = set(team["players"])
  67. for p in selectPlayers:
  68. player_set.add(p)
  69. mongo.db.teams.update_one({"_id": ObjectId(team_id)}, {"$set": {"players": list(player_set)}})
  70. return redirect(url_for("team", team_id=team_id))
  71. return render_template('team.html', team = team, results = results, currentPlayers = currentPlayers)
  72. @app.route('/', methods=["GET", "POST"])
  73. def index():
  74. players = sfp.players[:400]
  75. print("=== players ===")
  76. print(players)
  77. selectTeam = request.args.get("t", "")
  78. if request.method == "POST":
  79. teamCreate = request.form.get('teamCreate', None)
  80. if 'selectPlayerBtn' in request.form:
  81. print(f"selectPlayerBtn == {selectTeam}")
  82. selectPlayers = request.form.getlist('players')
  83. selectPlayers = [int(x) for x in selectPlayers]
  84. mongo.db.teams.update_one({"_id": ObjectId(selectTeam)}, {"$set": {"players": selectPlayers}})
  85. print("select players")
  86. print(selectPlayers)
  87. if teamCreate:
  88. print("Team Create")
  89. teamName = request.form.get('teamName', None)
  90. mongo.db.teams.insert_one({'title': teamName})
  91. teams = mongo.db.teams.find()
  92. currentTeam = None
  93. currentPlayers = []
  94. if selectTeam != "":
  95. currentTeam = mongo.db.teams.find_one({"_id": ObjectId(selectTeam)})
  96. for p in currentTeam['players']:
  97. try:
  98. currentPlayers.append(sfp.get_player(p))
  99. except:
  100. currentPlayers.append(None)
  101. #currentPlayers = sfp.get_players(currentTeam['players'])
  102. return render_template('index.html', players = players, teams=teams, selectTeam = selectTeam, currentTeam = currentTeam, currentPlayers = currentPlayers)