Auth#
Client#
- class podme_api.auth.PodMeAuthClient[source]#
Bases:
ABCAbstract base class for making authenticated requests to PodMe API.
This class provides a framework for handling authentication and making requests to the PodMe API. It manages user credentials, access tokens, and client sessions.
-
user_credentials:
PodMeUserCredentials|None= None# User authentication credentials.
- Type:
(PodMeUserCredentials | None)
-
session:
ClientSession|None= None# The
aiohttp.ClientSessionto use for making requests.- Type:
(ClientSession | None)
- abstract async async_get_access_token()[source]#
Asynchronously retrieve a valid access token.
- Returns:
A valid access token for authentication.
- Return type:
- abstract get_credentials()[source]#
Retrieve the current credentials.
- Returns:
A dictionary containing credentials, or None if not set.
- Return type:
dict | None
-
user_credentials:
- class podme_api.auth.PodMeDefaultAuthClient[source]#
Bases:
PodMeAuthClientDefault authentication client for PodMe.
This class handles authentication using Schibsted credentials for the PodMe service.
- user_agent = 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:131.0) Gecko/20100101 Firefox/131.0'#
User agent string for API requests.
- device_data = {'fonts': ['Arial', 'Bitstream Vera Sans Mono', 'Bookman Old Style', 'Century Schoolbook', 'Courier', 'Courier New', 'Helvetica', 'MS Gothic', 'MS PGothic', 'Palatino', 'Palatino Linotype', 'Times', 'Times New Roman'], 'hasLiedBrowser': '0', 'hasLiedOs': '0', 'platform': 'Ubuntu', 'plugins': ['PDF Viewer::Portable Document Format::application/pdf~pdf,text/pdf~pdf', 'Chrome PDF Viewer::Portable Document Format::application/pdf~pdf,text/pdf~pdf', 'Chromium PDF Viewer::Portable Document Format::application/pdf~pdf,text/pdf~pdf', 'Microsoft Edge PDF Viewer::Portable Document Format::application/pdf~pdf,text/pdf~pdf', 'WebKit built-in PDF::Portable Document Format::application/pdf~pdf,text/pdf~pdf'], 'userAgent': 'Firefox', 'userAgentVersion': '131.0'}#
Device information for authentication.
-
credentials:
SchibstedCredentials|None= None# Authentication credentials.
- Type:
(SchibstedCredentials | None)
- async async_get_access_token()[source]#
Get a valid access token.
- Returns:
The access token.
- Return type:
- Raises:
PodMeApiAuthenticationError – If no user credentials are provided.
- async authorize(user_credentials)[source]#
Authorize the user and obtain credentials.
The obtained credentials is internally stored in the client.
- Parameters:
user_credentials (PodMeUserCredentials) – The user’s credentials.
- Raises:
PodMeApiConnectionTimeoutError – If a timeout occurs during a request.
PodMeApiError – If there’s a bad request syntax or unsupported method.
PodMeApiConnectionError – For other API communication errors.
- Return type:
- async refresh_token(credentials=None)[source]#
Refresh the access token.
The obtained credentials is internally stored in the client (
_credentials).- Parameters:
credentials (SchibstedCredentials, optional) – The credentials to refresh. Defaults to
_credentials.- Returns:
The refreshed credentials.
- Return type:
-
session:
ClientSession|None= None# The
aiohttp.ClientSessionto use for making requests.- Type:
(ClientSession | None)
-
user_credentials:
PodMeUserCredentials|None= None# User authentication credentials.
- Type:
(PodMeUserCredentials | None)
- set_credentials(credentials)[source]#
Set the credentials.
- Parameters:
credentials (SchibstedCredentials | dict | str) – The credentials to set.
- class podme_api.auth.PodMeUserCredentials[source]#
Bases:
objectRepresents user’s login details for PodMe authentication.
- class podme_api.auth.SchibstedCredentials[source]#
Bases:
BaseDataClassORJSONMixinRepresents Schibsted authentication credentials.
Models#
- class podme_api.auth.models.PodMeUserCredentials[source]#
Bases:
objectRepresents user’s login details for PodMe authentication.
- class podme_api.auth.models.SchibstedCredentials[source]#
Bases:
BaseDataClassORJSONMixinRepresents Schibsted authentication credentials.
- class podme_api.auth.models.SchibstedAuthClientData[source]#
Bases:
BaseDataClassORJSONMixinRepresents Schibsted authentication client data.