-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPlayersDatabase.py
62 lines (49 loc) · 1.84 KB
/
PlayersDatabase.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
from Player import Player
import urllib.request, json
class PlayersDatabase:
def __init__(self):
self.players = [ ]
self.updateDatabase()
def loadData(self):
with urllib.request.urlopen("https://fantasy.premierleague.com/api/bootstrap-static/") as url:
self.data = json.loads(url.read())
def updateDatabase(self):
self.loadData()
for player in self.data["elements"]:
new_id = player["id"]
new_name = player ["web_name"]
new_team_id = player["team"]
new_position_number = player["element_type"]
new_first_name = player["first_name"]
new_last_name = player["second_name"]
if new_position_number == 1:
new_position = "Goalkeeper"
if new_position_number == 2:
new_position = "Defender"
if new_position_number == 3:
new_position = "Midfielder"
if new_position_number == 4:
new_position = "Forward"
self.players.append(Player(new_id, new_name, new_team_id, new_position, new_first_name, new_last_name))
def getPlayerByName(self, name):
for player in self.players:
if player.name == name:
return player
return None
def getPlayerById(self, new_id):
for player in self.players:
if player.id == new_id:
return player
return None
def getPlayersNames(self):
output = []
for player in self.players:
output.append(player.getName())
return output
def getPlayers(self):
return self.players
def getPlayerByCompleterString(self, string):
for player in self.players:
if player.completer_string == string:
return player
return None