API Management in AGP (Advanced Graphics Renderer)
The AGP system utilizes several APIs (TMDB, OMDB, TVDB, Fanart) to fetch information about movies and other content. The management of API keys is designed to be flexible, offering two main methods:
-
Direct Configuration (Development): API keys are set directly in the code within the
API_KEYSdictionary. -
File-Based Configuration (Production): API keys are loaded from text files located in the Enigma2 skin directory. These files should be named according to the API (
tmdb_api,omdb_api, etc.). If the file exists, the key is read from it; otherwise, default keys are used.
The function _load_api_keys() is used to automatically load the keys, and in case of errors or missing files, the system falls back to default keys.
Key Features:
-
Flexibility: Keys can be configured either through files or directly in the code.
-
File Configuration Priority: Files in the skin directory take precedence over default keys.
-
Multithreaded Access Synchronization: API access is protected by a lock to avoid conflicts in a multithreaded context.
Benefits:
-
Ease of Management: Using external files for keys enables centralized and simple management, especially in production environments.
-
Easy Updates: Keys can be easily updated without modifying the code.
-
Flexibility in Deployment: Suitable for both developers (who can insert keys directly in the code) and production environments (where keys are separated).
Gestione delle API in AGP (Advanced Graphics Renderer)
Il sistema AGP utilizza diverse API (TMDB, OMDB, TVDB, Fanart) per ottenere informazioni sui film e altri contenuti. La gestione delle chiavi API è configurata per essere flessibile, con due metodi principali:
-
Configurazione diretta (sviluppo): Le chiavi API vengono impostate direttamente nel codice, nel dizionario
API_KEYS. -
Configurazione tramite file (produzione): Le chiavi API vengono caricate da file di testo nel percorso della skin di Enigma2. Questi file devono essere chiamati con il nome dell'API (
tmdb_api,omdb_api, etc.). Se il file esiste, la chiave viene letta da lì, altrimenti vengono utilizzate le chiavi di default.
La funzione _load_api_keys() è utilizzata per caricare automaticamente le chiavi, e in caso di errore o di file mancanti, il sistema fa affidamento sulle chiavi di default.
Caratteristiche principali:
-
Flessibilità: Si possono configurare le chiavi API tramite file o direttamente nel codice.
-
Priorità ai file di configurazione: I file nella skin hanno la precedenza sulle chiavi di default.
-
Sincronizzazione accessi multithread: L'accesso alle API è protetto da un lock per evitare conflitti in un contesto multithread.
Benefici:
-
Semplicità di gestione: L'uso di file esterni per le chiavi consente una gestione centralizzata e semplice, specialmente in ambienti di produzione.
-
Facilità di aggiornamento: Le chiavi possono essere facilmente aggiornate senza modificare il codice.
-
Flessibilità nel deployment: Adatto sia per sviluppatori (che possono inserire direttamente le chiavi nel codice) che per ambienti di produzione (dove le chiavi sono separate).
Questo approccio permette di mantenere il sistema sicuro e modulare, rispettando la necessità di flessibilità per l'uso in vari ambienti.
SETUP API_KEYS INT O FILE: Agp_apikeys.py
API_KEYS = {
"tmdb_api": "3c3efcf47c3577558812bb9d64019d65",
"omdb_api": "cb1d9f55",
"thetvdb_api": "a99d487bb3426e5f3a60dea6d3d3c7ef",
"fanart_api": "6d231536dea4318a88cb2520ce89473b",
}
or import / set in to plugin Aglare setup ;)
Best Regards ![]()
