AGP Renderers - Now Available for All!

There are 21 replies in this Thread which was already clicked 5,994 times. The last Post () by Lululla.

    • Official Post

    Hi everyone,

    I'm excited to introduce my new AGP (Aglare Graphics Plugin) renderers, designed specifically for Aglare FHD Skin.

    🔹 Fully compatible with:

    • Infobar

    • Channel list

    • EventView

    • EPG

    • Dynamic Backdrops

    🔹 Key features:

    • TMDB / TVDB / IMDB / Fanart / Google support

    • Auto-scheduled download (scan_time)

    • Custom folder paths (USB, RAM, HDD)

    • Smart cache with auto-clean

    • cornerRadius and zPosition supported

    🔹 Example usage (skin.xml):

    Code
    <widget source="ServiceEvent" render="AglarePosterX" size="185,278" nexts="1" />
    <widget source="Event" render="AglareBackdropX" size="680,1000" nexts="2" />

    📁 Suggested paths:

    Code
    POSTER_FOLDER = "/media/usb/posters"
    BACKDROP_FOLDER = "/media/usb/backdrops"

    🔧 Advanced setup, TMDB API key, and more are available in the full GitHub README.

    🔐 License & Usage Policy

    ✅ You are free to use these renderers except for a 1 skinners ;)

    Do not remove or change credits in the files

    📩 Please contact me if you plan to use them in a project (a simple DM or post is fine)

    👤 Developer: Lululla

    🔗 Based on digiteng with major enhancements

    📜 License: CC BY-NC-SA 4.0 (No commercial use)




    =======================================================


    Ciao a tutti,

    sono felice di presentarvi i miei nuovi renderer grafici avanzati AGP ottimizzati per Aglare FHD Skin.

    Li sto testando attivamente e sono già pienamente integrati con i componenti di Aglare.

    🔹 Compatibili con:

    • Infobar

    • Channel List

    • EventView

    • EPG

    • Backdrop dinamici

    🔹 Caratteristiche principali:

    • Supporto TMDB / TVDB / IMDB / Fanart / Google

    • Download automatico dei poster e backdrop programmabile (scan_time)

    • Percorsi personalizzabili (USB, RAM, HDD)

    • Sistema di cache intelligente e auto-cleaning

    • Supporto per corner radius e zPosition

    🔹 Esempio uso (skin.xml):

    Code
    <widget source="ServiceEvent" render="AglarePosterX" size="185,278" nexts="1" />
    <widget source="Event" render="AglareBackdropX" size="680,1000" nexts="2" />

    📁 Percorsi suggeriti:

    Code
    POSTER_FOLDER = "/media/usb/posters"
    BACKDROP_FOLDER = "/media/usb/backdrops"

    🔧 Configurazione avanzata, API key TMDB, e altri dettagli disponibili nel README completo su GitHub.

    🔐 Licenza & Condizioni d’uso

    ✅ I renderer sono gratuiti e possono essere usati da chiunque (eccetto 1)

    Non rimuovere o modificare i crediti nei file

    📩 Se li usi in un progetto, fammi sapere! (è sufficiente un messaggio privato o sul thread)

    👤 Sviluppatore: Lululla

    🔗 Basati su digiteng (con ampi miglioramenti)

    📜 Licenza: CC BY-NC-SA 4.0 (No uso commerciale)



    Thank's odem2014


    picon_default.png?raw=true



    Here you will find all the instructions for use and download


    Belfagor2005/AGPTEAM

    • Official Post

    🇬🇧 Posters and Backdrops: Automatic Daily Download Posters and backdrops

    are automatically downloaded every day, based on the time set via the scan_time parameter.
    If not specified in the widget, a globally configured default time will be used (e.g. "02:00").
    ✅ The system analyzes all installed channel lists and downloads only the contents of channels that have EPG available.
    🔁 The operation is repeated every day automatically, even after EPG updates.
    🕓 It is recommended to set the time in night bands (e.g. 02:00–04:00).

    In this way, the download is optimized and does not overload the device.

    Update: The poster and backdrop download system is now managed through the setup Plugin,

    where the time and minutes for the download can be set.

    =========================

    🇮🇹 Poster e Backdrop: Download Giornaliero Automatico

    Italiano: I poster e i backdrop vengono scaricati automaticamente ogni giorno, in base all'orario impostato tramite il parametro scan_time.

    Se non specificato nel widget, verrà utilizzato un orario di default configurato globalmente (es. "02:00").

    ✅ Il sistema analizza tutte le liste canali installate e scarica solo i contenuti dei canali che hanno EPG disponibile.

    🔁 L’operazione si ripete ogni giorno automaticamente, anche dopo aggiornamenti EPG.

    🕓 Consigliato impostare l'orario in fasce notturne (es. 02:00–04:00).


    Aggiornamento: Il sistema di download dei poster e backdrop è ora gestito tramite il Plugin di setup,

    dove è possibile impostare l'orario e i minuti per il download.


    In questo modo, il download è ottimizzato e non sovraccarica il dispositivo.

    Key Features:

    • 🌙 Low-traffic hours recommended (e.g., 02:00-04:00)
    • 🔄 Daily automatic execution (runs at specified time)
    • ⏸️ Pauses during active viewing (no system impact)


    pasted-from-clipboard.png

    • Official Post

    🇬🇧 Automatic Disk Space Management AGP includes a smart disk space management system.At runtime, it checks the available space in the poster folder:

    • If the disk space is sufficient ✅, the download continues as normal.
    • If free space falls below the configured threshold ❗️, the system automatically deletes older files (based on their age), until enough space is available. You can configure these settings

    in /etc/agp.conf: [storage] min_space = 100 ; minimum required space in MB max_age = 30 ; max age of files in days Default values (if the config file is missing):

    🧹 Requires at least 100 MB free, and files older than 30 days will be removed.

    ========================

    🇮🇹 Gestione automatica dello spazio su disco

    AGP include un sistema intelligente per il controllo dello spazio disponibile.

    Durante l'esecuzione, viene verificata la disponibilità di spazio nella cartella dei poster:

    • Se lo spazio è sufficiente ✅, il download procede normalmente.

    • Se lo spazio libero scende sotto la soglia configurata ❗️, il sistema elimina automaticamente i file più vecchi (in base alla data di creazione), fino a ripristinare spazio sufficiente.

    I parametri possono essere configurati nel file /etc/agp.conf:

    Code
    [storage]
    min_space = 100      ; Minimum space required in MB
    max_age   = 30        ; Maximum file age in days

    Valori di default (in assenza del file):

    🧹 Minimo 100 MB liberi e file più vecchi di 30 giorni vengono rimossi.

    • Official Post

    🇮🇹 Sistema di Log a Colori e Debug Centralizzato

    AGP include un sistema avanzato di logging con output a colori, utile per identificare immediatamente eventuali problemi o attività durante il debug.

    📁 Tutti i file di log vengono salvati nella cartella /tmp/agplog/ e includono:

    • Backdrop/PosterX.log – main renderer log
    • Backdrop/PosterX_errors.log – captured error messages
    • Bakdrop/PosterAutoDB.log – automatic handling log
    • Backdrop/PosterAutoDB.log - automatic handling log

    🧹 È possibile pulire facilmente tutti i log tramite il metodo clear_all_log() automatico:

    🔍 In questo modo l'ambiente di debug rimane pulito e facile da monitorare.


    🇬🇧 Colored Logging System and Centralized Debug

    AGP includes an advanced colored logging system, making it easy to spot issues and debug activity at a glance.

    📁 All log files are stored in /tmp/agplog/ and include:

    • Backdrop/PosterX.log – main renderer log

    • Backdrop/PosterX_errors.log – captured error messages

    • Bakdrop/PosterAutoDB.log – automatic handling log

    • Backdrop/PosterAutoDB.log - automatic handling log

    🧹 You can clean up all log files using the built-in clear_all_log() automatic method


    🔍 This keeps your debugging environment clean and easy to monitor.

    • Official Post

    🇬🇧 Star Rating System

    AGP includes AglareStarX, a renderer that displays content ratings using stars or percentage formats.

    ⭐️ Supported sources:

    • TMDB (default)
    • IMDB
    • OMDB

    ⚙️ Configurable display modes:

    • from plugin setup

    =================

    🇮🇹 Sistema di Valutazione con Stelle

    AGP integra AglareStarX, un renderer dedicato alla visualizzazione del punteggio dei contenuti tramite stelle o percentuali.

    ⭐️ Fonti supportate:

    • TMDB (predefinito)

    • IMDB

    • OMDB

    ⚙️ Modalità di visualizzazione configurabili:

    • configurazione da plugin setup

    Le opzioni possono essere configurate tramite:


    FILE STRUCTURE


    Code
    /usr/share/enigma2/<skin>/skin_default/
    ├── starsbar_empty.png
    └── starsbar_filled.png
    • Official Post

    🇬🇧 Info Events

    AGP includes a powerful system to display detailed information about EPG events (movies, TV shows) using metadata from TMDb ad OMDB

    🧠 The data is fetched and cached automatically in .json format.

    ⚙️ Available display modes:

    • setup on plugin aglare

    ================

    🇮🇹 Info Eventi

    AGP offre un sistema avanzato per mostrare informazioni aggiuntive sugli eventi (film, serie TV) direttamente dall'EPG o dai metadati TMDb.

    🧠 Le informazioni vengono recuperate e salvate in cache automaticamente in formato .json.

    ⚙️ Modalità di visualizzazione disponibili:

    • tramite plugin setup

    📝 Esempio di template personalizzato:

    Code
    <widget source="ServiceEvent" render="AgpInfoEvents"
        position="100,400"
        size="600,300"
        font="Regular;18"
        transparent="1"
        zPosition="5"/>

    🎭 I generi vengono automaticamente convertiti dagli ID TMDb in nomi leggibili:

    Code
    [28, 12] → "Action, Adventure"
    • Official Post

    🇬🇧 Parental Rating (AglareParentalX)

    AglareParentalX is a renderer that shows graphical age rating icons using data from EPG or PosterX-generated metadata.

    🎯 Rating sources:

    • Event text (e.g., "FSK 16", "12+") PosterX
    • .json files (Rated: "PG-13") Fallback to a default icon if no data is found

    🧩 Supports multiple rating formats: TV (TV-Y, TV-PG, TV-14, etc.) Movies (G, PG, PG-13, R, NC-17) Automatically mapped to FSK: PG-13 → 16, TV-MA → 18

    🖼️ Required icons should be located at: bash

     /usr/share/enigma2//parental/ FSK_0.png, FSK_6.png, FSK_12.png, FSK_16.png, FSK_18.png, FSK_UN.png

    📦 If not found, the system attempts to create the directory and logs any missing files.


    ===================

    🇮🇹 Controllo Parentale (AglareParentalX)

    Il renderer AglareParentalX visualizza icone grafiche per il controllo parentale basandosi sulle informazioni dell'evento EPG o dai metadati salvati da PosterX.

    🎯 Fonti del rating:

    • Testo dell'evento (es. "FSK 16", "12+")

    • File JSON generati da PosterX (Rated: "PG-13")

    • Fallback a un'icona predefinita se nessuna informazione è disponibile

    🧩 Supporta rating multipli:

    • TV (TV-Y, TV-PG, TV-14, ecc.)

    • Film (G, PG, PG-13, R, NC-17)

    • Conversione automatica verso FSK: PG-13 → 16, TV-MA → 18

    🖼️ Le icone devono trovarsi in:


    /usr/share/enigma2/<skin>/parental/FSK_0.png, FSK_6.png, FSK_12.png, FSK_16.png, FSK_18.png, FSK_UN.png


    📦 Se mancano, il sistema tenta di crearne la cartella e segnala gli errori a log.




    Code
    <widget render="AgpParentalX"
        source="session.Event_Now"
        position="637,730"
        size="50,50"
        zPosition="3"
        transparent="1"
        alphatest="blend"/>


    Code
    Icons
    /usr/share/enigma2/<skin>/parental/
    ├── FSK_0.png
    ├── FSK_6.png
    ├── FSK_12.png
    ├── FSK_16.png
    ├── FSK_18.png
    └── FSK_UN.png
    • Official Post

    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:

    1. Direct Configuration (Development): API keys are set directly in the code within the API_KEYS dictionary.

    2. 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:

    1. Configurazione diretta (sviluppo): Le chiavi API vengono impostate direttamente nel codice, nel dizionario API_KEYS.

    2. 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

    Code
    API_KEYS = {
    "tmdb_api": "3c3efcf47c3577558812bb9d64019d65",
    "omdb_api": "cb1d9f55",
    "thetvdb_api": "a99d487bb3426e5f3a60dea6d3d3c7ef",
    "fanart_api": "6d231536dea4318a88cb2520ce89473b",
    }


    or import / set in to plugin Aglare setup ;)




    Best Regards :thank_you2:

    • Official Post

    We can also customize the skin setup plugin: you need to know that the download of the posters/backdrops happens immediately as soon as you open the channel list or eventview for example.

    So I inserted in the setup the desire or not to download all the events in png format. This makes the channel change system faster but slow in displaying the posters.



    Code
    section = '--------------------------( SKIN UTILITY SETUP )-----------------------'
    list.append(getConfigListEntry(_('Automatic download of poster'), config.plugins.Aglare.pstdown, _("Download favorite list posters with Epg automatically at startup")))
    list.append(getConfigListEntry(_('Automatic download of backdrop'), config.plugins.Aglare.bkddown, _("Download favorite list backdrop with Epg automatically at startup")))
    list.append(getConfigListEntry(_('Remove all png (poster - backdrop) (OK)'), config.plugins.Aglare.png, _("This operation remove all png from folder device (Poster-Backdrop)")))



    pasted-from-clipboard.png



    or better set our minutes


    pasted-from-clipboard.png

  • Lululla

    Closed the thread.
    • Official Post
    • Well I think I'm done, at least the setup and display part
    • Now everything is manageable from the setup plugin
    • I added other providers: ElCinema, iMdb, Omdb ....
    • I put Omdb on hold for now, I don't have time to test everything, but I take posters and banners and information from all the providers that can guarantee the search.
    • The speed seems quite performing, the cache is minimal: there could be conflicts with the display of the posters: I put the bare minimum.
    • The space management on the devices is automatic and the clean is controlled and managed by two different factors: space and time.
    • I haven't been able to test the Stars, the Info_events, Parental and the Genres for now: but I have compiled and updated them with the latest EPG standards
    • As for ApiKeys (Tmdb, Fanart, Omdb, Imdb), everyone should have their own keyapi, in fact the default standard apis exceed the daily limit because everyone uses the same apikey.
      Just register on the provider's site and get your own keyapi: insert it in a text file and put it in /tmp to import it from plugins. Or type it in the plugin itself, or insert it in your skin's folder. The hel is online and the readme is well done in my personal opinion.
    • apikeys are no longer handled by the file: Agp_apikeys.py


    pasted-from-clipboard (1).png


    pasted-from-clipboard.png


    pasted-from-clipboard.png



    pasted-from-clipboard.png




    Have fun. :thank_you2:

    • Official Post

    -Now i added Cache :)


    -configurable from plugin setup

    Concrete advantages of cache

    Fewer API calls

    If you call search_tmdb twice with the same parameters, it does not make another request to TMDb or TVDb.

    → You avoid consuming API-keys or daily limits.


    More speed

    If you have already searched for a title, the result is taken directly from memory (RAM), instantaneous.

    → You do not have to wait for the internet connection again.


    Reduces the workload

    If you have, for example, the channel list or EPG that calls the same function many times, lru_cache blocks duplicates without you having to think about it.


    Perfect if the function is "expensive"

    Like a remote search, parsing, data control... they are slow, so the cache is perfect.


    pasted-from-clipboard.png

    • Official Post

    TESTED PARENTAL - INFOEVENTS AND STAR


    Screenshot_4-5-2025_143636_192.168.1.78.jpeg


    pasted-from-clipboard.png




    ***THE PHOTOS WERE TAKEN DURING THE TEST

    • Official Post


    GENRE with Epg integration from .json



    FOR SKIN USE:


    Code
    <widget render="AgpGenreX"
        source="session.Event_Now"
        position="44,370"
        size="160,45"
        zPosition="22"
        transparent="1" />


    ***THE PHOTOS WERE TAKEN DURING THE TEST



    Screenshot_5-5-2025_0247_192.168.1.78.jpegScreenshot_5-5-2025_0258_192.168.1.78.jpegScreenshot_5-5-2025_0312_192.168.1.78.jpegScreenshot_5-5-2025_0323_192.168.1.78.jpeg




    pasted-from-clipboard.png


    pasted-from-clipboard (1).png

    • Official Post

    another function

    Manual download of poster or backdrop..

    difficulty but not impossible..


    it's all in testing phase.

    But it seems to work great.



    Screenshot_11-5-2025_221028_192.168.1.78.jpeg

    • Official Post

    AGLARE PLUGIN SETUP CONFIGURATIONS

    The Aglare plugin offers numerous configuration options to customize the behavior of the renderers and external services. Below are the main options available.

    🖼️ Download Poster/Backdrop

    Configure the immediate or automatic download of posters and backdrops. You can enable the "Download Now" option to download immediately or set up automatic download based on the EPG.

    • Download Now Poster

      Enable immediate download of the poster.

      config.plugins.Aglare.download_now_poster
    • Download Now Backdrop

      Enable immediate download of the backdrop.

      config.plugins.Aglare.download_now_backdrop
    • Automatic Poster Download

      Enable automatic download of posters based on the EPG.

      config.plugins.Aglare.pstdown
    • Automatic Backdrop Download

      Enable automatic download of backdrops based on the EPG.

      config.plugins.Aglare.bkddown

    🔑 APIs and Keys

    Aglare supports integration with several APIs to fetch content information. Each API can be enabled/disabled individually.

    • Enable APIs

      Enable the use of APIs to retrieve content information.

      config.plugins.Aglare.actapi
    • Available APIs
      • TMDB

        Enable/disable the TMDB API.

        config.plugins.Aglare.tmdb
      • OMDB

        Enable/disable the OMDB API.

        config.plugins.Aglare.omdb
      • TheTVDB

        Enable/disable the TheTVDB API.

        config.plugins.Aglare.thetvdb
      • Fanart

        Enable/disable the Fanart API.

        config.plugins.Aglare.fanart
      • Other APIs
        • Elcinema

          Enable/disable Elcinema.

          config.plugins.Aglare.elcinema
        • Google

          Enable/disable Google.

          config.plugins.Aglare.google
        • IMDB

          Enable/disable IMDB.

          config.plugins.Aglare.imdb
        • Molotov

          Enable/disable Molotov.

          config.plugins.Aglare.molotov
        • Programmetv

          Enable/disable Programmetv.

          config.plugins.Aglare.programmetv
    • API Keys

      Set the API key for each service:
      • TMDB API

        config.plugins.Aglare.tmdb_api
      • OMDB API

        config.plugins.Aglare.omdb_api
      • TheTVDB API

        config.plugins.Aglare.thetvdb_api

    Additional Features

    • Rating Stars

      Enable the display of rating stars for events.

      config.plugins.Aglare.rating_source
    • Parental Icons

      Display parental guidance icons for each event.

      config.plugins.Aglare.info_parental_mode
    • Event Information Display

      Enable the display of extended event information, including plot, cast, and other metadata.

      config.plugins.Aglare.info_display_mode
    • Genre Icons

      Enable the display of icons representing event genres (e.g., action, comedy, drama).

      config.plugins.Aglare.genre_source
    • Enhanced Movie Center Poster

      Enable the display of posters from the local movie folder.

      config.plugins.Aglare.xemc_poster

    🗄️ Cache

    Caching can be enabled to improve performance when downloading events.

    • Enable Cache

      Enable or disable caching during event downloads.

      config.plugins.Aglare.cache

    🧹 PNG Management

    You can remove all PNG files from the local folder (poster and backdrop).

    • Remove PNG

      Remove all PNG files from the folder.

      config.plugins.Aglare.png

    🕒 Scan Time

    Set the scan times for automatic poster and backdrop downloads.

    • Poster Scan Time

      Set the scan time for automatic poster downloads.

      config.plugins.Aglare.pscan_time
    • Backdrop Scan Time

      Set the scan time for automatic backdrop downloads.

      config.plugins.Aglare.bscan_time
    • Official Post

    it all seems so complicated behind the code, yeah.

    but there is a drawing behind it.

    i hope i reasoned well.

    i made a diagram just for the TMDB providers to show you what happens when you press a button (hundreds of lines of code) in a millisecond..


    deepseek_mermaid_20250512_ea0aba.png

    • Official Post

    If you try the aglare skins, it works perfectly, obviously only a skinner can insert this system and modify the plugin that manages the structure for other skins.

Your resource for Enigma2 skins and GUI customization

Download custom themes, get installation support, and find tools to modify your receiver's display. Customize your Enigma2 GUI. Discover and download custom skins, with dedicated support for installation and visual personalization.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!