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/" 


 ** INSTALLAZIONE **

E2_LOADEPG usa molto spazio su disco e quindi l'installazione andrà effettuata obbligatoriamente nella Compact Flash (/media/cf) o nell'HardDisk (/media/hdd) del DM7025. Dalla versione 0.40 le prestazioni sono simili mettendolo in CF o in HDD. Provate sul vs. sistema cosa sia meglio. Le prestazioni complessive sono migliori rispetto alle versioni precedenti.
Assicuratevi di avere sufficiente spazio libero su CF/HDD ! Stando abbondanti 50 MB liberi dovrebbero bastare.

NOTA: Dalla versione 0.40 è richiesta una completa reinstallazione. Sono cambiati i file di configurazione ed altro ancora. Se state upgradando da una versione precedente (0.33) dovete ripartire da zero.


- Prelevate il file compresso e2_loadepg-nnn.tar.gz

- Copiatelo sul vostro DM7025 in /media/cf oppure in /media/hdd oppure in /media/usb

- (da root) Andate nelle dir. di installazione ( cd /media/cf  oppure  cd /media/hdd oppure cd /media/usb ) e decomprimetelo con
     tar xvzf e2_loadepg-nnn.tar.gz
  Verrà creata la sottodirectory e2_loadepg/ con i file del programma all'interno

ATTENZIONE: se è già presente una precedente installazione di E2_LOADEPG, i vostri file verranno SOVRASCRITTI, quindi effettuate prima un backup.


 ** CONFIGURAZIONE **

Nella dir. di installazione troverete i seguenti files:

- e2_loadepg.conf : il file testo di configurazione principale. Editatelo secondo le vostre necessità.

- e2_loadepg.py : il programma. Durante l'esecuzione vengono mostrati a video (eventualmente salvati anche su file) le informazioni relative allo stato di avanzamento dell'esecuzione del programma, l'eventuale presenza di errori di network e la mancata congruenza tra il nome del canale memorizzato nel sito SKY e quello memorizzato nel vostro DM7025 oltre ad altre informazioni di servizio

- dl_modules/ : è la directory che contiene i moduli che si occupano dello scaricamento dei file dai siti web remoti e creano i file posti nella cache locale. Qui trovate i file di configurazione specifici per ogni modulo (es. skyitalia.conf , bskyb.conf) e i file di configurazione delle liste canali specifici per ogni modulo (es. skyitalia-channel_list.conf , bskyb-channel_list.conf). Nota: anche se vi sembra inutile, non cancellate il file __init__.py

- e2_coremod/ : questa directory contiene dei file relativi al funzionamento del programma. Non dovete interessarvi del suo contenuto. Nota: anche se vi sembra inutile, non cancellate il file __init__.py

- dl_modules/*-channel_list.conf : il file testo di configurazione dei canali
Dovete editarlo per rispecchiare le vostre esigenze. In origine questo file contiene i canali presenti sul sito remoto (di SKY o di BSKYB) e tutti debitamente descritti tramite commenti. Voi dovete, editando il file, indicare quali canali non andranno scaricati, quali scaricati e messi nella cache locale, quali scaricati sempre e comunque.
ATTENZIONE: dalla rel. 0.40 e' diventato obbligatorio indicare dopo l'opzione 0|1|2|3 il nome del canale anche se è uguale a quello presente nella lista canali del DM7025
Inoltre è possibile indicare anche il nome del provider di quel canale (se diverso da quello usato di default). All'inizio del file c'e' il provider usato di default.
Il nome del canale e il nome del provider sono fondamentali in quanto sono l'unico riferimento incrociato disponibile per ottenere il SID del canale memorizzato nel file /etc/enigma2/lamedb
Molti problemi sarebbe stati evitati se nei file di configurazione si fossero usati i SID anzichè i nomi dei canali, ma non sarebbe stato molto comodo (per non dire un incubo). Quindi usare l'accoppiata nome_canale + nome_provider è il male minore.
All'inizio del file è presente la spiegazione dettagliata su come operare la configurazione.
Il file che trovate incluso nel pacchetto è quello che uso sul mio DM7025 con i miei personali settings. Adattatelo alle vostre necessità.
State attenti che molto spesso i nomi dei canali presenti negli XML di SKY combaciano con canali non di interesse e quindi non ci sarà nessun errore ma non vedrete l'EPG perchè in realtà è associato ad un diverso canale.
Esempio: Sul sito web di SKY la tv di Stato è codificata come "Rai Uno". Nella lista canali ricevuti dal trasponder esiste "Rai Uno" (non visibile, codificato Seca) e "RAI1" (in chiaro). Va da sè che esistendo "Rai Uno" in lamedb non avrete mai errori di canale non trovato ma l'epg è associato al canale sbagliato. Basta modificare channel_list.conf per "forzare" l'associazione al canale giusto, ossia "RAI1"
ATTENZIONE: se modificate il nome di un canale o il nome di un provider, dovete cancellare manualmente i files di quel canale posti nella cache locale in modo che vengano ricreati.

- dl_modules/*-channel_list_generator.py : è un programma di servizio che potete lanciare una-tantum per ricreare voi stessi ex-novo il file *-channel_list.conf
ATTENZIONE: il vostro file *-channel_list.conf , se presente, sarà SOVRASCRITTO e quindi perderete le vostre modifiche. Fate prima un backup del vostro file.

- excluded_sid.conf : se per qualche motivo non volete che un epg sia assegnato ad un particolare canale (identificato con il suo SID), potete aggiungere in questo file il SID del canale in modo da escluderlo dal processo.

"E quindi che faccio ?"
Per un primo avvio vi consiglio di:
1) editate /usr/bin/enigma2.sh (vedi dopo)
2) editate dl_modules/*-channel_list.conf in base alle vostre esigenze
3) lanciate e2_loadepg.py e controllate attentamente il log (a video o su file 'e2_loadepg.log'): è una fonte preziosa di informazioni per aiutarvi a risolvere i problemi



 ** MODIFICARE /usr/bin/enigma2.sh **

Come avveniva per l'originale LOADEPG by Lastrico, modificate sul DM7025 lo script /usr/bin/enigma2.sh 
Appena prima di LD_PRELOAD aggiungete una delle seguenti righe (a seconda della vostra immagine e dell'opzione EPGDAT in e2_loadepg.conf) in modo che dopo un riavvio di Enigma2 il file ext.epg.dat sia rinominato come se lo aspetta il sistema di caching del DM7025.

Esempi:

per GEMINI 3.x :
----------------------------- enigma2.sh ---------------------------------------
[ -f /media/cf/ext.epg.dat ] && mv /media/cf/ext.epg.dat /media/cf/gemini.epg.dat
LD_PRELOAD=/usr/lib/libopen.so.0.0 /usr/bin/enigma2
--------------------------------------------------------------------------------
 oppure
----------------------------- enigma2.sh ---------------------------------------
[ -f /media/hdd/ext.epg.dat ] && mv /media/hdd/ext.epg.dat /media/hdd/gemini.epg.dat
LD_PRELOAD=/usr/lib/libopen.so.0.0 /usr/bin/enigma2
--------------------------------------------------------------------------------


per LT 3 o 4 :
----------------------------- enigma2.sh ---------------------------------------
[ -f /media/cf/ext.epg.dat ] && mv /media/cf/ext.epg.dat /media/cf/epg.dat
LD_PRELOAD=/usr/lib/libopen.so.0.0 /usr/bin/enigma2
--------------------------------------------------------------------------------
 oppure
----------------------------- enigma2.sh ---------------------------------------
[ -f /media/hdd/ext.epg.dat ] && mv /media/hdd/ext.epg.dat /media/hdd/epg.dat
LD_PRELOAD=/usr/lib/libopen.so.0.0 /usr/bin/enigma2
--------------------------------------------------------------------------------

Al posto del comando "mv" (move) potete anche usare il comando "cp" (copy).
In questo modo il file ext.epg.dat non verrà mai cancellato e sarà sempre disponibile in caso di reboot


 ** FUNZIONAMENTO **

Dopo avere correttamente configurato channel_list.conf, lanciate semplicemente e2_loadepg.py

Alla fine ricordatevi di restartare Enigma2 (da telecomando: Restart GUI). Attenti a non avere in corso registrazioni.
Nel file e2_loadepg.conf è presente l'opzione RESTART_GUI per effettuare in automatico il restart appena è terminata la creazione del file ext.epg.dat


 ** NOTE **

1) LOG a video e/o file : in e2_loadepg.conf ci sono due opzioni LOG_VIDEO e LOG_FILE per abilitare o disabilitare la visualizzazione dei log a video e/o su file (filename predefinito 'e2_loadepg.log')

2) Il file di log 'e2_loadepg.log' è la pricipale fonte di informazioni per risolvere i problemi. Vengono segnalati tutti gli errori relativi a nomi dei canali sbagliati, a nomi provider sbagliati (con elenco dei provider disponibili per quel canale) e così via. Usatelo !

3) per evitare di sovraccaricare il sito web remoto viene introdotto un ritardo variabile ad ogni prelievo dei file dal sito di SKY. Potete modificarlo in skyitalia.conf e bskyb.conf, opzioni RANDOM_MIN e RANDOM_MAX . Ma, per favore, evitate di impostare a 0 (zero) le suddette opzioni per velocizzare il processo di scaricamento. NON SERVE: anche se aspettate 5 minuti in più non succede nulla e non rischiamo rogne future.
Inoltre, da prove effettuate, questo ritardo aiuta molto ad evitare errori di scaricamento. Impostando le due opzioni RANDOM_ a 0.0 aumenta di molto il tasso di errore (sito Sky "martellato" dalle nostre richieste web)

4) nel caso che nella vostra lista canali del DM7025 siano presenti due o più canali dello stesso provider aventi lo stesso nome (ad esempio i due canali "SKY TG 24" di SkyItalia), per tutti questi canali "omonimi" sarà assegnato lo stesso EPG. Questo risolve (??) secondo la mia visione il problema. Personalmente preferisco questa modalità invece di indicare a quale canale (tramite il SID) non va assegnato l'EPG. 

5) i nomi dei canali, nonostante siano scritti in lettere maiuscole e minuscole sia nel sito SKY che nel Dreambox, in realtà vengono considerati dal DM7025 come case-insensitive e quindi mi sono adeguato. Per semplificare tutti i nomi dei canali sono convertiti internamente al programma in lettere minuscole. Non preoccupatevi di questo.

6) dalla versione 0.20 viene usata la WebInterface per il controllo di alcune funzione del DM7025. Assicuratevi che sia attiva e senza password (autorizzazioni)


