Skip to content

Xbox Live Client

Xbox Live Client

Basic factory that stores :class:XboxLiveLanguage, User authorization data and available Providers

pythonxbox.api.client.log = logging.getLogger('xbox.api') module-attribute

pythonxbox.api.client.Session(auth_mgr)

Source code in src/pythonxbox/api/client.py
def __init__(self, auth_mgr: AuthenticationManager) -> None:
    self._auth_mgr = auth_mgr
    self._cv = CorrelationVector()

request(method, url, include_auth=True, include_cv=True, **kwargs) async

Proxy Request and add Auth/CV headers.

Source code in src/pythonxbox/api/client.py
async def request(
    self,
    method: str,
    url: str,
    include_auth: bool = True,
    include_cv: bool = True,
    **kwargs: Any,
) -> Response:
    """Proxy Request and add Auth/CV headers."""
    headers = kwargs.pop("headers", {})
    params = kwargs.pop("params", None)
    data = kwargs.pop("data", None)

    # Extra, user supplied values
    extra_headers = kwargs.pop("extra_headers", None)
    extra_params = kwargs.pop("extra_params", None)
    extra_data = kwargs.pop("extra_data", None)

    # Rate limit object
    rate_limits: RateLimit = kwargs.pop("rate_limits", None)

    if include_auth:
        # Ensure tokens valid
        await self._auth_mgr.refresh_tokens()
        # Set auth header
        headers["Authorization"] = (
            self._auth_mgr.xsts_token.authorization_header_value
        )

    if include_cv:
        headers["MS-CV"] = self._cv.increment()

    # Extend with optionally supplied values
    if extra_headers:
        headers.update(extra_headers)
    if extra_params:
        # query parameters
        params = params or {}
        params.update(extra_params)
    if extra_data:
        # form encoded post data
        data = data or {}
        data.update(extra_data)

    if rate_limits and rate_limits.is_exceeded():
        # Check if rate limits have been exceeded for this endpoint
        raise RateLimitExceededException("Rate limit exceeded", rate_limits)

    response = await self._auth_mgr.session.request(
        method, url, **kwargs, headers=headers, params=params, data=data
    )

    if rate_limits:
        rate_limits.increment()

    return response

get(url, **kwargs) async

Source code in src/pythonxbox/api/client.py
async def get(self, url: str, **kwargs: Any) -> Response:
    return await self.request("GET", url, **kwargs)

options(url, **kwargs) async

Source code in src/pythonxbox/api/client.py
async def options(self, url: str, **kwargs: Any) -> Response:
    return await self.request("OPTIONS", url, **kwargs)

head(url, **kwargs) async

Source code in src/pythonxbox/api/client.py
async def head(self, url: str, **kwargs: Any) -> Response:
    return await self.request("HEAD", url, **kwargs)

post(url, **kwargs) async

Source code in src/pythonxbox/api/client.py
async def post(self, url: str, **kwargs: Any) -> Response:
    return await self.request("POST", url, **kwargs)

put(url, **kwargs) async

Source code in src/pythonxbox/api/client.py
async def put(self, url: str, **kwargs: Any) -> Response:
    return await self.request("PUT", url, **kwargs)

patch(url, **kwargs) async

Source code in src/pythonxbox/api/client.py
async def patch(self, url: str, **kwargs: Any) -> Response:
    return await self.request("PATCH", url, **kwargs)

delete(url, **kwargs) async

Source code in src/pythonxbox/api/client.py
async def delete(self, url: str, **kwargs: Any) -> Response:
    return await self.request("DELETE", url, **kwargs)

pythonxbox.api.client.XboxLiveClient(auth_mgr, language=DefaultXboxLiveLanguages.United_States)

Source code in src/pythonxbox/api/client.py
def __init__(
    self,
    auth_mgr: AuthenticationManager,
    language: XboxLiveLanguage = DefaultXboxLiveLanguages.United_States,
) -> None:
    self._auth_mgr = auth_mgr
    self.session = Session(auth_mgr)
    self._language = language

    self.cqs = CQSProvider(self)
    self.lists = ListsProvider(self)
    self.profile = ProfileProvider(self)
    self.achievements = AchievementsProvider(self)
    self.usersearch = UserSearchProvider(self)
    self.gameclips = GameclipProvider(self)
    self.people = PeopleProvider(self)
    self.presence = PresenceProvider(self)
    self.mediahub = MediahubProvider(self)
    self.message = MessageProvider(self)
    self.userstats = UserStatsProvider(self)
    self.screenshots = ScreenshotsProvider(self)
    self.titlehub = TitlehubProvider(self)
    self.account = AccountProvider(self)
    self.catalog = CatalogProvider(self)
    self.smartglass = SmartglassProvider(self)

session = Session(auth_mgr) instance-attribute

cqs = CQSProvider(self) instance-attribute

lists = ListsProvider(self) instance-attribute

profile = ProfileProvider(self) instance-attribute

achievements = AchievementsProvider(self) instance-attribute

usersearch = UserSearchProvider(self) instance-attribute

gameclips = GameclipProvider(self) instance-attribute

people = PeopleProvider(self) instance-attribute

presence = PresenceProvider(self) instance-attribute

mediahub = MediahubProvider(self) instance-attribute

message = MessageProvider(self) instance-attribute

userstats = UserStatsProvider(self) instance-attribute

screenshots = ScreenshotsProvider(self) instance-attribute

titlehub = TitlehubProvider(self) instance-attribute

account = AccountProvider(self) instance-attribute

catalog = CatalogProvider(self) instance-attribute

smartglass = SmartglassProvider(self) instance-attribute

xuid property

Gets the Xbox User ID

Returns: Xbox user Id

language property

Gets the active Xbox Live Language

Returns: Active Xbox Live language