Skip to content

Commit de1bc55

Browse files
committed
all xmlstats API methods added
1 parent 05247a6 commit de1bc55

File tree

4 files changed

+105
-6
lines changed

4 files changed

+105
-6
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
*.pyc
22
dist/*
3-
*.tgz
3+
*.tgz
4+
.DS_Store

README.md

Whitespace-only changes.

xmlstats/__init__.py

Whitespace-only changes.

xmlstats/xmlstats.py

Lines changed: 103 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,13 @@ def __init__(self, access_token, user_agent):
2020
self.access_token = access_token
2121
self.user_agent = user_agent
2222

23-
def build_url(self, sport, method, event_id, format="json"):
23+
def build_url(self, sport=None, method, date=None, id=None, format="json"):
2424
host = "https://erikberg.com/"
25-
path = "/".join(filter(None, (sport, method, event_id)))
25+
path = "/".join(filter(None, (sport, method, date, id)))
2626
url = host + path + "." + format
2727
return url
2828

29-
def http_get(self, url, params):
29+
def http_get(self, url, params=None):
3030
headers = {"Authorization": "Bearer " + self.access_token,
3131
"User-Agent": "xmlstats-py/0.1" + self.user_agent}
3232
r = requests.get(url, headers=headers, params=params)
@@ -43,10 +43,108 @@ def http_get(self, url, params):
4343
else:
4444
r.raise_for_status()
4545

46-
def get_nba_boxscore(self, event_id):
46+
def get_boxscore(self, sport, event_id):
4747
data = self.http_get(
48-
self.build_url(sport="nba", method="boxscore", event_id=event_id),
48+
self.build_url(sport=sport, method="boxscore", id=event_id),
4949
params=None
5050
)
5151
boxscore = Struct(data)
5252
return boxscore
53+
54+
def get_nba_team_stats(self, date, team_id=None):
55+
data = self.http_get(
56+
self.buildurl(sport="nba", method="team-stats", date=date),
57+
params={
58+
"team_id": team_id,
59+
}
60+
)
61+
team_stats = Struct(data)
62+
return team_stats
63+
64+
def get_events(self, date, sport):
65+
data = self.http_get(
66+
self.build_url(method="events"),
67+
params={
68+
"date": date,
69+
"sport": sport,
70+
}
71+
)
72+
events = Struct(data)
73+
return events
74+
75+
def get_roster(self, sport, team_id, status=None):
76+
'''arg stats="expanded" will return 40-man roster for MLB team,
77+
rather than 25-man roster
78+
'''
79+
data = self.http_get(
80+
self.build_url(sport=sport, method="roster", id=team_id),
81+
params={
82+
"status": status
83+
}
84+
)
85+
roster = Struct(data)
86+
return roster
87+
88+
def get_nba_draft_results(self, season=None, team_id=None):
89+
data = self.http_get(
90+
self.build_url(sport="nba", method="draft"),
91+
params={
92+
"season": season,
93+
"team_id": team_id
94+
}
95+
)
96+
draft_results = Struct(data)
97+
return draft_results
98+
99+
def get_nba_leaders(self, category, limit=None,
100+
qualified=None, season_type=None):
101+
'''For list of category IDs, see xmlstats API docs:
102+
https://erikberg.com/api/methods/nba-leaders
103+
Qualified parameter determines whether players who meet NBA's minimum
104+
qualifications will be returned, or all players. API defaults to true
105+
'''
106+
data = self.http_get(
107+
self.build_url(sport="nba", method="leaders", id=category),
108+
params={
109+
"limit": limit,
110+
"qualified": qualified,
111+
"season_type": season_type,
112+
}
113+
)
114+
leaders = Struct(data)
115+
return leaders
116+
117+
def get_teams(self, sport):
118+
data = self.http_get(
119+
self.build_url(sport=sport, method="teams"),
120+
)
121+
teams = Struct(data)
122+
return teams
123+
124+
def get_team_results(self, sport, team_id, season=None, since=None,
125+
until=None, order=None):
126+
data = self.http_get(
127+
self.build_url(sport=sport, method="results", id=team_id),
128+
params={
129+
"season": season,
130+
"since": since,
131+
"until": until,
132+
"order": order,
133+
}
134+
)
135+
results = Struct(data)
136+
return results
137+
138+
def get_standings(self, sport, date=None):
139+
data = self.http_get(
140+
self.build_url(sport=sport, method="standings", date=date)
141+
)
142+
standings = Struct(data)
143+
return standings
144+
145+
def get_wildcard_standings(self, date):
146+
data = self.http_get(
147+
self.build_url(sport="mlb", method="wildcard", date=date)
148+
)
149+
wildcard = Struct(data)
150+
return wildcard

0 commit comments

Comments
 (0)