diff --git a/espnff/league.py b/espnff/league.py index 3cbe808..6d797c7 100644 --- a/espnff/league.py +++ b/espnff/league.py @@ -79,9 +79,10 @@ def _fetch_teams(self, data): def _fetch_settings(self, data): self.settings = Settings(data) - def power_rankings(self, week): + def power_rankings(self, week=None): '''Return power rankings for any week''' - + if week is None: + week = self.get_current_week() # calculate win for every week win_matrix = [] teams_sorted = sorted(self.teams, key=lambda x: x.team_id, @@ -98,6 +99,30 @@ def power_rankings(self, week): power_rank = power_points(dominance_matrix, teams_sorted, week) return power_rank + def get_current_week(self): + '''Return current week''' + params = { + 'leagueId': self.league_id, + 'seasonId': self.year + } + + r = requests.get('%sscoreboard' % (self.ENDPOINT, ), params=params) + self.status = r.status_code + data = r.json() + + if self.status == 401: + raise PrivateLeagueException(data['error'][0]['message']) + + elif self.status == 404: + raise InvalidLeagueException(data['error'][0]['message']) + + elif self.status != 200: + raise UnknownLeagueException('Unknown %s Error' % self.status) + + week = data['scoreboard']['scoringPeriodId'] + + return week + def scoreboard(self, week=None): '''Returns list of matchups for a given week''' params = {