Source code for fpl.models.h2h_league

import asyncio

from ..constants import API_URLS
from ..utils import fetch, get_current_gameweek, logged_in


[docs]class H2HLeague(): """ A class representing a H2H league in the Fantasy Premier League. Basic usage:: from fpl import FPL import aiohttp import asyncio >>> async def main(): async with aiohttp.ClientSession() as session: fpl = FPL(session) await fpl.login() h2h_league = await fpl.get_h2h_league(829116) print(h2h_league) ... # Python 3.7+ asyncio.run(main()) ... # Python 3.6 loop = asyncio.get_event_loop() loop.run_until_complete(main()) League 829116 - 829116 """ def __init__(self, league_information, session): self._session = session for k, v in league_information.items(): setattr(self, k, v)
[docs] async def get_fixture(self, gameweek): """Returns an object blob containing fixture / result data of the H2H league. Information is taken from e.g.: https://fantasy.premierleague.com/api/leagues-h2h-matches/league/946125/?event=1 :param gameweek: (required) The gameweek of the fixture / result. :type gameweek: string or int :rtype: object blob containing fixture / result data. """ if not self._session: return [] if not logged_in(self._session): raise Exception( "Not authorised to get H2H fixtures. Log in first.") url_query = "event={gameweek}".format(gameweek=gameweek) fixtures = await fetch( self._session, API_URLS["league_h2h_fixture"].format( self.league["id"], url_query)) return fixtures["results"]
[docs] async def get_fixtures(self, gameweek=None, page=1): """Returns a list of fixtures / results of the H2H league. Information is taken from e.g.: https://fantasy.premierleague.com/api/leagues-h2h-matches/league/946125/?page=1 :param gameweek: (optional) The gameweek of the fixtures / results. :type gameweek: string or int :param page: (optional) The fixtures / results page. :type page: string or int :rtype: list """ if not self._session: return [] if not logged_in(self._session): raise Exception( "Not authorised to get H2H fixtures. Log in first.") url_query = f"event={gameweek}&" if gameweek else "" has_next = True results = [] while has_next: fixtures = await fetch( self._session, API_URLS["league_h2h_fixtures"].format( self.league["id"], url_query, page)) results.extend(fixtures["results"]) has_next = fixtures["has_next"] page += 1 return results
def __str__(self): return f"{self.league['name']} - {self.league['id']}"