E2_LOADEPG - Gennaio 2009  by ambrosa http://www.dreamboxonline.com

__author__ = "ambrosa http://www.dreamboxonline.com"
__version__ = "0.50 beta"
__copyright__ = "Copyright (C) 2008-2009 Alessandro Ambrosini"
__license__ = "CreativeCommons by-nc-sa http://creativecommons.org/licenses/by-nc-sa/3.0/" 


Questo programma, scritto interamente in Python 2.5, era nato per scaricare via internet la programmazione disponibile sul sito web di SkyItalia e convertirla nell'EPG nativo di Enigma2 (Dreambox 7025) sulla falsariga dell'ormai noto LoadEPG by Lastrico http://www.dreamboxonline.com
Non conoscendo Python questo progetto è stato per me una palestra di addestramento su questo linguaggio di programmazione con tutto quello che ne consegue. Quindi commenti e critiche costruttive sono e saranno sempre ben accette.

L'obiettivo era di riscrivere ex-novo il software LOADEPG di Lastrico in modo che potesse funzionare su qualsiasi piattaforma dove è installabile l'interprete Python 2.5 : Windows, Linux, Mac ... ed ovviamente il nostro amato DM7025 la cui interfaccia Enigma2 è scritta in Python 2.5 e quindi l'interprete è già installato e disponibile.
Per questo non ho volutamente introdotto codice "alieno" (C o altro) proprio nel rispetto dell'idea della totale portabilità.

Le prestazioni non sono eccelse (Python non è molto efficiente e la povera CPU del DM7025 non aiuta di certo) ma considerando che al massimo questo programma andrà eseguito una volta al giorno (tipicamente di notte) in automatico (usando CRON) anche se il tempo di esecuzione nel DM7025 dovesse essere di un'ora personalmente non lo considero un problema.
Dai test da me effettuati sul DM7025, la creazione dell'EPG (tutti i canali per 7 giorni di programmazione = circa 8000 eventi) impiega circa 25 minuti a cui va aggiunto il tempo necessario a scaricare i files XML dal sito di SKY (da pochi minuti a mezz'ora, a seconda di quanti file dovete scaricare).
Quindi i 30-60 minuti preventivati sono plausibili.

La memoria RAM attualmente occupata è di circa 10 MB e non ha creato apparenti problemi. Comunque consiglio caldamente di attivare lo swap per dormire sonni tranquilli (io personalmente uso uno swap di 32 MB).
L'occupazione su disco è minima: circa 10-20 MB (il valore cambia in base a quanti file scaricate dai siti web)

A partire dalla versione 0.40 E2_LOADEPG è stato completamente riscritto usando la programmazione ad oggetti e dividendo il programma concettualmente in moduli.
C'e' un modulo principale "e2_loadepg.py" che sovrintende all'intero processo, legge i file dalla cache e genera l'epg.dat, e ci sono dei sottomoduli (posti nella directory dl_modules/ ) che si occupano di scaricare i files dai siti web remoti (o altre sorgenti), convertirli in un formato comune predefinito e porli in cache/
In questo modo ognuno, se conosce un minimo il linguaggio Python, può scriversi il proprio modulo di scaricamento.
Personalmente ho creato i moduli per scaricare i dati da SKYITALIA (SkyItalia via web), SKYITALIASAT (SkyIyalia via satellite), BSKYB e OZTIVO.
 

Come per ogni programma in BETA TEST eventuali errori, malfunzionamenti o disastri irrimediabili non sono a me imputabili :-)

