Matomo API
Apps
- class integreat_cms.matomo_api.apps.MatomoApiConfig(app_name, app_module)[source]
Bases:
AppConfig
MatomoApiClient config inheriting the django AppConfig
- classmethod create(entry)[source]
Factory that creates an app config from an entry in INSTALLED_APPS.
- get_model(model_name, require_ready=True)[source]
Return the model with the given case-insensitive model_name.
Raise LookupError if no model exists with this name.
- get_models(include_auto_created=False, include_swapped=False)[source]
Return an iterable of models.
By default, the following models aren’t included:
auto-created models for many-to-many relations without an explicit intermediate table,
models that have been swapped out.
Set the corresponding keyword argument to True to include such models. Keyword arguments aren’t documented; they’re a private API.
Matomo API Client
- class integreat_cms.matomo_api.matomo_api_client.MatomoApiClient(region: Region)[source]
Bases:
object
This class helps to interact with Matomo API. There are three functions which can be used publicly:
get_matomo_id()
: Retrieve the Matomo ID belonging to the given Matomo access tokenget_total_visits()
: Retrieve the total visits for the current regionget_visits_per_language()
: Retrieve the visits for the current region by language
- Parameters:
region (Region)
- __init__(region: Region) None [source]
Constructor initializes the class variables
- Parameters:
region (Region) – The region this Matomo API Manager connects to
- Return type:
None
- async fetch(session: ClientSession, **kwargs: Any) dict[str, Any] | list[int] [source]
Uses
aiohttp.ClientSession.get()
to perform an asynchronous GET request to the Matomo API.- Parameters:
session (ClientSession) – The session object which is used for the request
**kwargs (Any) – The parameters which are passed to the Matomo API
- Raises:
MatomoException – When a
ClientError
was raised during a Matomo API request- Returns:
The parsed
json
result- Return type:
- static get_access_data(total_visits: dict, webapp_downloads: dict, offline_downloads: dict) tuple[list[dict], list[str]] [source]
Structure the datasets for accesses in a chart.js-compatible format, returning it and the custom legend entries
- static get_language_data(languages: list[Language], datasets: list[dict]) tuple[list[dict], list[str]] [source]
Structure the datasets for languages in a chart.js-compatible format, returning it and the custom legend entries
- get_matomo_id(token_auth: str) int [source]
Returns the matomo website id based on the provided authentication key.
- Parameters:
token_auth (str) – The Matomo authentication token which should be used
- Raises:
MatomoException – When a
ClientError
was raised during a Matomo API request or the access token is not correct- Returns:
ID of the connected Matomo instance
- Return type:
- async get_matomo_id_async(**query_params: Any) list[int] [source]
Async wrapper to fetch the Matomo ID with
aiohttp
. Opens aClientSession
and callsfetch()
. Called fromget_matomo_id()
.- Parameters:
**query_params (Any) – The parameters which are passed to the Matomo API
- Returns:
The parsed
json
result- Raises:
MatomoException – When a
ClientError
was raised during a Matomo API request- Return type:
- get_total_visits(start_date: date, end_date: date, period: str = 'day') dict[str, Any] [source]
Returns the total calls within a time range for all languages.
- Parameters:
- Raises:
MatomoException – When a
ClientError
was raised during a Matomo API request- Returns:
The total visits in the ChartData format expected by ChartJs
- Return type:
- async get_total_visits_async(query_params: dict[str, str | int | None]) dict[str, Any] [source]
Async wrapper to fetch the total visits with
aiohttp
. Opens aClientSession
and callsfetch()
. Called fromget_total_visits()
.- Parameters:
query_params (dict[str, str | int | None]) – The parameters which are passed to the Matomo API
- Raises:
MatomoException – When a
ClientError
was raised during a Matomo API request- Returns:
The parsed
json
result- Return type:
- get_visits_per_language(start_date: date, end_date: date, period: str) dict[str, Any] [source]
Returns the total unique visitors in a timerange as defined in period
- Parameters:
- Returns:
The visits per language in the ChartData format expected by ChartJs
- Raises:
MatomoException – When a
ClientError
was raised during a Matomo API request- Return type:
- async get_visits_per_language_async(loop: AbstractEventLoop, query_params: dict[str, Any], languages: list[Language]) list[dict[str, Any]] [source]
Async wrapper to fetch the total visits with
aiohttp
. Opens aClientSession
, creates aTask
for each language to callfetch()
and waits for all tasks to finish withgather()
. The returned list of gathered results has the correct order in which the tasks were created (at first the ordered list of languages and the last element is the task for the total visits). Called fromget_visits_per_language()
.- Parameters:
- Raises:
MatomoException – When a
ClientError
was raised during a Matomo API request- Returns:
The list of gathered results
- Return type: