diff --git a/CONTROL/control b/CONTROL/control
index 7ba0e24..1b17306 100644
--- a/CONTROL/control
+++ b/CONTROL/control
@@ -1,6 +1,6 @@
Description: TVMagazineCockpit
Maintainer: dream-alpha
Package: enigma2-plugin-extensions-tvmagazinecockpit
-Version: 0.10.1
+Version: 0.11.1
Architecture: all
Depends: enigma2-plugin-skincomponents-extmultilistselection
diff --git a/Makefile.am b/Makefile.am
index cc366b1..fa59349 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1 +1 @@
-SUBDIRS = po src
+SUBDIRS = po src channels logos
diff --git a/channels/Makefile.am b/channels/Makefile.am
new file mode 100644
index 0000000..3b7d40b
--- /dev/null
+++ b/channels/Makefile.am
@@ -0,0 +1,2 @@
+installdir = $(libdir)/enigma2/python/Plugins/Extensions/TVMagazineCockpit
+install_DATA = *.json
diff --git a/src/tvspielfilm_channel_dict_default.json b/channels/tvspielfilm_channel_dict_default.json
similarity index 100%
rename from src/tvspielfilm_channel_dict_default.json
rename to channels/tvspielfilm_channel_dict_default.json
diff --git a/src/tvspielfilm_channel_list_all.json b/channels/tvspielfilm_channel_list_all.json
similarity index 100%
rename from src/tvspielfilm_channel_list_all.json
rename to channels/tvspielfilm_channel_list_all.json
diff --git a/src/tvspielfilm_channel_list_default.json b/channels/tvspielfilm_channel_list_default.json
similarity index 100%
rename from src/tvspielfilm_channel_list_default.json
rename to channels/tvspielfilm_channel_list_default.json
diff --git a/src/tvspielfilm_channel_list_sky.json b/channels/tvspielfilm_channel_list_sky.json
similarity index 100%
rename from src/tvspielfilm_channel_list_sky.json
rename to channels/tvspielfilm_channel_list_sky.json
diff --git a/src/logos/123TV.png b/logos/123TV.png
similarity index 100%
rename from src/logos/123TV.png
rename to logos/123TV.png
diff --git a/src/logos/13TH.png b/logos/13TH.png
similarity index 100%
rename from src/logos/13TH.png
rename to logos/13TH.png
diff --git a/src/logos/2NEO.png b/logos/2NEO.png
similarity index 100%
rename from src/logos/2NEO.png
rename to logos/2NEO.png
diff --git a/src/logos/3PLUS.png b/logos/3PLUS.png
similarity index 100%
rename from src/logos/3PLUS.png
rename to logos/3PLUS.png
diff --git a/src/logos/3SAT.png b/logos/3SAT.png
similarity index 100%
rename from src/logos/3SAT.png
rename to logos/3SAT.png
diff --git a/src/logos/ADULT.png b/logos/ADULT.png
similarity index 100%
rename from src/logos/ADULT.png
rename to logos/ADULT.png
diff --git a/src/logos/AETV.png b/logos/AETV.png
similarity index 100%
rename from src/logos/AETV.png
rename to logos/AETV.png
diff --git a/src/logos/ALJAZ.png b/logos/ALJAZ.png
similarity index 100%
rename from src/logos/ALJAZ.png
rename to logos/ALJAZ.png
diff --git a/src/logos/ALPHA.png b/logos/ALPHA.png
similarity index 100%
rename from src/logos/ALPHA.png
rename to logos/ALPHA.png
diff --git a/src/logos/AMS.png b/logos/AMS.png
similarity index 100%
rename from src/logos/AMS.png
rename to logos/AMS.png
diff --git a/src/logos/ANIXE.png b/logos/ANIXE.png
similarity index 100%
rename from src/logos/ANIXE.png
rename to logos/ANIXE.png
diff --git a/src/logos/APLAN.png b/logos/APLAN.png
similarity index 100%
rename from src/logos/APLAN.png
rename to logos/APLAN.png
diff --git a/src/logos/ARD.png b/logos/ARD.png
similarity index 100%
rename from src/logos/ARD.png
rename to logos/ARD.png
diff --git a/src/logos/ARTE.png b/logos/ARTE.png
similarity index 100%
rename from src/logos/ARTE.png
rename to logos/ARTE.png
diff --git a/src/logos/ARTS.png b/logos/ARTS.png
similarity index 100%
rename from src/logos/ARTS.png
rename to logos/ARTS.png
diff --git a/src/logos/ATV-A.png b/logos/ATV-A.png
similarity index 100%
rename from src/logos/ATV-A.png
rename to logos/ATV-A.png
diff --git a/src/logos/ATV.png b/logos/ATV.png
similarity index 100%
rename from src/logos/ATV.png
rename to logos/ATV.png
diff --git a/src/logos/ATV2.png b/logos/ATV2.png
similarity index 100%
rename from src/logos/ATV2.png
rename to logos/ATV2.png
diff --git a/src/logos/AXN.png b/logos/AXN.png
similarity index 100%
rename from src/logos/AXN.png
rename to logos/AXN.png
diff --git a/src/logos/BBC-E.png b/logos/BBC-E.png
similarity index 100%
rename from src/logos/BBC-E.png
rename to logos/BBC-E.png
diff --git a/src/logos/BBC-N.png b/logos/BBC-N.png
similarity index 100%
rename from src/logos/BBC-N.png
rename to logos/BBC-N.png
diff --git a/src/logos/BBC.png b/logos/BBC.png
similarity index 100%
rename from src/logos/BBC.png
rename to logos/BBC.png
diff --git a/src/logos/BBC1.png b/logos/BBC1.png
similarity index 100%
rename from src/logos/BBC1.png
rename to logos/BBC1.png
diff --git a/src/logos/BBC2.png b/logos/BBC2.png
similarity index 100%
rename from src/logos/BBC2.png
rename to logos/BBC2.png
diff --git a/src/logos/BBC4.png b/logos/BBC4.png
similarity index 100%
rename from src/logos/BBC4.png
rename to logos/BBC4.png
diff --git a/src/logos/BE1.png b/logos/BE1.png
similarity index 100%
rename from src/logos/BE1.png
rename to logos/BE1.png
diff --git a/src/logos/BERG.png b/logos/BERG.png
similarity index 100%
rename from src/logos/BERG.png
rename to logos/BERG.png
diff --git a/src/logos/BIBEL.png b/logos/BIBEL.png
similarity index 100%
rename from src/logos/BIBEL.png
rename to logos/BIBEL.png
diff --git a/src/logos/BILD.png b/logos/BILD.png
similarity index 100%
rename from src/logos/BILD.png
rename to logos/BILD.png
diff --git a/src/logos/BLIZZ.png b/logos/BLIZZ.png
similarity index 100%
rename from src/logos/BLIZZ.png
rename to logos/BLIZZ.png
diff --git a/src/logos/BLM.png b/logos/BLM.png
similarity index 100%
rename from src/logos/BLM.png
rename to logos/BLM.png
diff --git a/src/logos/BLUM.png b/logos/BLUM.png
similarity index 100%
rename from src/logos/BLUM.png
rename to logos/BLUM.png
diff --git a/src/logos/BLUM2.png b/logos/BLUM2.png
similarity index 100%
rename from src/logos/BLUM2.png
rename to logos/BLUM2.png
diff --git a/src/logos/BLUM3.png b/logos/BLUM3.png
similarity index 100%
rename from src/logos/BLUM3.png
rename to logos/BLUM3.png
diff --git a/src/logos/BOOM.png b/logos/BOOM.png
similarity index 100%
rename from src/logos/BOOM.png
rename to logos/BOOM.png
diff --git a/src/logos/BR-N.png b/logos/BR-N.png
similarity index 100%
rename from src/logos/BR-N.png
rename to logos/BR-N.png
diff --git a/src/logos/BR-S.png b/logos/BR-S.png
similarity index 100%
rename from src/logos/BR-S.png
rename to logos/BR-S.png
diff --git a/src/logos/BR.png b/logos/BR.png
similarity index 100%
rename from src/logos/BR.png
rename to logos/BR.png
diff --git a/src/logos/BULI.png b/logos/BULI.png
similarity index 100%
rename from src/logos/BULI.png
rename to logos/BULI.png
diff --git a/src/logos/BUTV.png b/logos/BUTV.png
similarity index 100%
rename from src/logos/BUTV.png
rename to logos/BUTV.png
diff --git a/src/logos/C-NET.png b/logos/C-NET.png
similarity index 100%
rename from src/logos/C-NET.png
rename to logos/C-NET.png
diff --git a/src/logos/C5.png b/logos/C5.png
similarity index 100%
rename from src/logos/C5.png
rename to logos/C5.png
diff --git a/src/logos/CC.png b/logos/CC.png
similarity index 100%
rename from src/logos/CC.png
rename to logos/CC.png
diff --git a/src/logos/CENTE.png b/logos/CENTE.png
similarity index 100%
rename from src/logos/CENTE.png
rename to logos/CENTE.png
diff --git a/src/logos/CH21.png b/logos/CH21.png
similarity index 100%
rename from src/logos/CH21.png
rename to logos/CH21.png
diff --git a/src/logos/CIN.png b/logos/CIN.png
similarity index 100%
rename from src/logos/CIN.png
rename to logos/CIN.png
diff --git a/src/logos/CIN1.png b/logos/CIN1.png
similarity index 100%
rename from src/logos/CIN1.png
rename to logos/CIN1.png
diff --git a/src/logos/CIN24.png b/logos/CIN24.png
similarity index 100%
rename from src/logos/CIN24.png
rename to logos/CIN24.png
diff --git a/src/logos/CLASS.png b/logos/CLASS.png
similarity index 100%
rename from src/logos/CLASS.png
rename to logos/CLASS.png
diff --git a/src/logos/CNBC.png b/logos/CNBC.png
similarity index 100%
rename from src/logos/CNBC.png
rename to logos/CNBC.png
diff --git a/src/logos/CNN-M.png b/logos/CNN-M.png
similarity index 100%
rename from src/logos/CNN-M.png
rename to logos/CNN-M.png
diff --git a/src/logos/CNN-T.png b/logos/CNN-T.png
similarity index 100%
rename from src/logos/CNN-T.png
rename to logos/CNN-T.png
diff --git a/src/logos/CNN.png b/logos/CNN.png
similarity index 100%
rename from src/logos/CNN.png
rename to logos/CNN.png
diff --git a/src/logos/CPLUS.png b/logos/CPLUS.png
similarity index 100%
rename from src/logos/CPLUS.png
rename to logos/CPLUS.png
diff --git a/src/logos/CPLUSC.png b/logos/CPLUSC.png
similarity index 100%
rename from src/logos/CPLUSC.png
rename to logos/CPLUSC.png
diff --git a/src/logos/CPLUSD.png b/logos/CPLUSD.png
similarity index 100%
rename from src/logos/CPLUSD.png
rename to logos/CPLUSD.png
diff --git a/src/logos/CPLUSS.png b/logos/CPLUSS.png
similarity index 100%
rename from src/logos/CPLUSS.png
rename to logos/CPLUSS.png
diff --git a/src/logos/CRIN.png b/logos/CRIN.png
similarity index 100%
rename from src/logos/CRIN.png
rename to logos/CRIN.png
diff --git a/src/logos/DATV.png b/logos/DATV.png
similarity index 100%
rename from src/logos/DATV.png
rename to logos/DATV.png
diff --git a/src/logos/DAZN.png b/logos/DAZN.png
similarity index 100%
rename from src/logos/DAZN.png
rename to logos/DAZN.png
diff --git a/src/logos/DCM.png b/logos/DCM.png
similarity index 100%
rename from src/logos/DCM.png
rename to logos/DCM.png
diff --git a/src/logos/DISNE.png b/logos/DISNE.png
similarity index 100%
rename from src/logos/DISNE.png
rename to logos/DISNE.png
diff --git a/src/logos/DJUN.png b/logos/DJUN.png
similarity index 100%
rename from src/logos/DJUN.png
rename to logos/DJUN.png
diff --git a/src/logos/DMAX.png b/logos/DMAX.png
similarity index 100%
rename from src/logos/DMAX.png
rename to logos/DMAX.png
diff --git a/src/logos/DMC.png b/logos/DMC.png
similarity index 100%
rename from src/logos/DMC.png
rename to logos/DMC.png
diff --git a/src/logos/DMF.png b/logos/DMF.png
similarity index 100%
rename from src/logos/DMF.png
rename to logos/DMF.png
diff --git a/src/logos/DR1.png b/logos/DR1.png
similarity index 100%
rename from src/logos/DR1.png
rename to logos/DR1.png
diff --git a/src/logos/DR2.png b/logos/DR2.png
similarity index 100%
rename from src/logos/DR2.png
rename to logos/DR2.png
diff --git a/src/logos/DRTV.png b/logos/DRTV.png
similarity index 100%
rename from src/logos/DRTV.png
rename to logos/DRTV.png
diff --git a/src/logos/DWF.png b/logos/DWF.png
similarity index 100%
rename from src/logos/DWF.png
rename to logos/DWF.png
diff --git a/src/logos/DWTV.png b/logos/DWTV.png
similarity index 100%
rename from src/logos/DWTV.png
rename to logos/DWTV.png
diff --git a/src/logos/DXD.png b/logos/DXD.png
similarity index 100%
rename from src/logos/DXD.png
rename to logos/DXD.png
diff --git a/src/logos/E!.png b/logos/E!.png
similarity index 100%
rename from src/logos/E!.png
rename to logos/E!.png
diff --git a/src/logos/ENGB.png b/logos/ENGB.png
similarity index 100%
rename from src/logos/ENGB.png
rename to logos/ENGB.png
diff --git a/src/logos/EOTV.png b/logos/EOTV.png
similarity index 100%
rename from src/logos/EOTV.png
rename to logos/EOTV.png
diff --git a/src/logos/ES1.png b/logos/ES1.png
similarity index 100%
rename from src/logos/ES1.png
rename to logos/ES1.png
diff --git a/src/logos/EURO-D.png b/logos/EURO-D.png
similarity index 100%
rename from src/logos/EURO-D.png
rename to logos/EURO-D.png
diff --git a/src/logos/EURO-S.png b/logos/EURO-S.png
similarity index 100%
rename from src/logos/EURO-S.png
rename to logos/EURO-S.png
diff --git a/src/logos/EURO.png b/logos/EURO.png
similarity index 100%
rename from src/logos/EURO.png
rename to logos/EURO.png
diff --git a/src/logos/EURO2.png b/logos/EURO2.png
similarity index 100%
rename from src/logos/EURO2.png
rename to logos/EURO2.png
diff --git a/src/logos/EURON.png b/logos/EURON.png
similarity index 100%
rename from src/logos/EURON.png
rename to logos/EURON.png
diff --git a/src/logos/EX-SP.png b/logos/EX-SP.png
similarity index 100%
rename from src/logos/EX-SP.png
rename to logos/EX-SP.png
diff --git a/src/logos/FAMTV.png b/logos/FAMTV.png
similarity index 100%
rename from src/logos/FAMTV.png
rename to logos/FAMTV.png
diff --git a/src/logos/FATV.png b/logos/FATV.png
similarity index 100%
rename from src/logos/FATV.png
rename to logos/FATV.png
diff --git a/src/logos/FES.png b/logos/FES.png
similarity index 100%
rename from src/logos/FES.png
rename to logos/FES.png
diff --git a/src/logos/FFTV.png b/logos/FFTV.png
similarity index 100%
rename from src/logos/FFTV.png
rename to logos/FFTV.png
diff --git a/src/logos/FLN.png b/logos/FLN.png
similarity index 100%
rename from src/logos/FLN.png
rename to logos/FLN.png
diff --git a/src/logos/FOOD.png b/logos/FOOD.png
similarity index 100%
rename from src/logos/FOOD.png
rename to logos/FOOD.png
diff --git a/src/logos/FOX.png b/logos/FOX.png
similarity index 100%
rename from src/logos/FOX.png
rename to logos/FOX.png
diff --git a/src/logos/FR24E.png b/logos/FR24E.png
similarity index 100%
rename from src/logos/FR24E.png
rename to logos/FR24E.png
diff --git a/src/logos/FR24F.png b/logos/FR24F.png
similarity index 100%
rename from src/logos/FR24F.png
rename to logos/FR24F.png
diff --git a/src/logos/FRA2.png b/logos/FRA2.png
similarity index 100%
rename from src/logos/FRA2.png
rename to logos/FRA2.png
diff --git a/src/logos/FRA3.png b/logos/FRA3.png
similarity index 100%
rename from src/logos/FRA3.png
rename to logos/FRA3.png
diff --git a/src/logos/FRA4.png b/logos/FRA4.png
similarity index 100%
rename from src/logos/FRA4.png
rename to logos/FRA4.png
diff --git a/src/logos/FRA5.png b/logos/FRA5.png
similarity index 100%
rename from src/logos/FRA5.png
rename to logos/FRA5.png
diff --git a/src/logos/FRAO.png b/logos/FRAO.png
similarity index 100%
rename from src/logos/FRAO.png
rename to logos/FRAO.png
diff --git a/src/logos/FREESHOP.png b/logos/FREESHOP.png
similarity index 100%
rename from src/logos/FREESHOP.png
rename to logos/FREESHOP.png
diff --git a/src/logos/GEO.png b/logos/GEO.png
similarity index 100%
rename from src/logos/GEO.png
rename to logos/GEO.png
diff --git a/src/logos/GOLD.png b/logos/GOLD.png
similarity index 100%
rename from src/logos/GOLD.png
rename to logos/GOLD.png
diff --git a/src/logos/GUSTO.png b/logos/GUSTO.png
similarity index 100%
rename from src/logos/GUSTO.png
rename to logos/GUSTO.png
diff --git a/src/logos/HDDIS.png b/logos/HDDIS.png
similarity index 100%
rename from src/logos/HDDIS.png
rename to logos/HDDIS.png
diff --git a/src/logos/HDSPO.png b/logos/HDSPO.png
similarity index 100%
rename from src/logos/HDSPO.png
rename to logos/HDSPO.png
diff --git a/src/logos/HEALTH.png b/logos/HEALTH.png
similarity index 100%
rename from src/logos/HEALTH.png
rename to logos/HEALTH.png
diff --git a/src/logos/HEIMA.png b/logos/HEIMA.png
similarity index 100%
rename from src/logos/HEIMA.png
rename to logos/HEIMA.png
diff --git a/src/logos/HGTV.png b/logos/HGTV.png
similarity index 100%
rename from src/logos/HGTV.png
rename to logos/HGTV.png
diff --git a/src/logos/HH1.png b/logos/HH1.png
similarity index 100%
rename from src/logos/HH1.png
rename to logos/HH1.png
diff --git a/src/logos/HISHD.png b/logos/HISHD.png
similarity index 100%
rename from src/logos/HISHD.png
rename to logos/HISHD.png
diff --git a/src/logos/HR.png b/logos/HR.png
similarity index 100%
rename from src/logos/HR.png
rename to logos/HR.png
diff --git a/src/logos/HSE.png b/logos/HSE.png
similarity index 100%
rename from src/logos/HSE.png
rename to logos/HSE.png
diff --git a/src/logos/JUKE.png b/logos/JUKE.png
similarity index 100%
rename from src/logos/JUKE.png
rename to logos/JUKE.png
diff --git a/src/logos/JUNIO.png b/logos/JUNIO.png
similarity index 100%
rename from src/logos/JUNIO.png
rename to logos/JUNIO.png
diff --git a/src/logos/K1.png b/logos/K1.png
similarity index 100%
rename from src/logos/K1.png
rename to logos/K1.png
diff --git a/src/logos/K1CLA.png b/logos/K1CLA.png
similarity index 100%
rename from src/logos/K1CLA.png
rename to logos/K1CLA.png
diff --git a/src/logos/K1DOKU.png b/logos/K1DOKU.png
similarity index 100%
rename from src/logos/K1DOKU.png
rename to logos/K1DOKU.png
diff --git a/src/logos/KIKA.png b/logos/KIKA.png
similarity index 100%
rename from src/logos/KIKA.png
rename to logos/KIKA.png
diff --git a/src/logos/KINOW.png b/logos/KINOW.png
similarity index 100%
rename from src/logos/KINOW.png
rename to logos/KINOW.png
diff --git a/src/logos/KTV.png b/logos/KTV.png
similarity index 100%
rename from src/logos/KTV.png
rename to logos/KTV.png
diff --git a/src/logos/LAUNE.png b/logos/LAUNE.png
similarity index 100%
rename from src/logos/LAUNE.png
rename to logos/LAUNE.png
diff --git a/src/logos/LEITV.png b/logos/LEITV.png
similarity index 100%
rename from src/logos/LEITV.png
rename to logos/LEITV.png
diff --git a/src/logos/LUSTP.png b/logos/LUSTP.png
similarity index 100%
rename from src/logos/LUSTP.png
rename to logos/LUSTP.png
diff --git a/src/logos/MAPO.png b/logos/MAPO.png
similarity index 100%
rename from src/logos/MAPO.png
rename to logos/MAPO.png
diff --git a/src/logos/MASPO.png b/logos/MASPO.png
similarity index 100%
rename from src/logos/MASPO.png
rename to logos/MASPO.png
diff --git a/src/logos/MDR-SN.png b/logos/MDR-SN.png
similarity index 100%
rename from src/logos/MDR-SN.png
rename to logos/MDR-SN.png
diff --git a/src/logos/MDR-ST.png b/logos/MDR-ST.png
similarity index 100%
rename from src/logos/MDR-ST.png
rename to logos/MDR-ST.png
diff --git a/src/logos/MDR-TH.png b/logos/MDR-TH.png
similarity index 100%
rename from src/logos/MDR-TH.png
rename to logos/MDR-TH.png
diff --git a/src/logos/MDR.png b/logos/MDR.png
similarity index 100%
rename from src/logos/MDR.png
rename to logos/MDR.png
diff --git a/src/logos/MELODIETV.png b/logos/MELODIETV.png
similarity index 100%
rename from src/logos/MELODIETV.png
rename to logos/MELODIETV.png
diff --git a/src/logos/MEZZO.png b/logos/MEZZO.png
similarity index 100%
rename from src/logos/MEZZO.png
rename to logos/MEZZO.png
diff --git a/src/logos/MFTV1.png b/logos/MFTV1.png
similarity index 100%
rename from src/logos/MFTV1.png
rename to logos/MFTV1.png
diff --git a/src/logos/MOTOR.png b/logos/MOTOR.png
similarity index 100%
rename from src/logos/MOTOR.png
rename to logos/MOTOR.png
diff --git a/src/logos/MOVTV.png b/logos/MOVTV.png
similarity index 100%
rename from src/logos/MOVTV.png
rename to logos/MOVTV.png
diff --git a/src/logos/MTV-B.png b/logos/MTV-B.png
similarity index 100%
rename from src/logos/MTV-B.png
rename to logos/MTV-B.png
diff --git a/src/logos/MTV-D.png b/logos/MTV-D.png
similarity index 100%
rename from src/logos/MTV-D.png
rename to logos/MTV-D.png
diff --git a/src/logos/MTV-H.png b/logos/MTV-H.png
similarity index 100%
rename from src/logos/MTV-H.png
rename to logos/MTV-H.png
diff --git a/src/logos/MTV-L.png b/logos/MTV-L.png
similarity index 100%
rename from src/logos/MTV-L.png
rename to logos/MTV-L.png
diff --git a/src/logos/MTV.png b/logos/MTV.png
similarity index 100%
rename from src/logos/MTV.png
rename to logos/MTV.png
diff --git a/src/logos/MUE2.png b/logos/MUE2.png
similarity index 100%
rename from src/logos/MUE2.png
rename to logos/MUE2.png
diff --git a/src/logos/Makefile.am b/logos/Makefile.am
similarity index 100%
rename from src/logos/Makefile.am
rename to logos/Makefile.am
diff --git a/src/logos/N-GHD.png b/logos/N-GHD.png
similarity index 100%
rename from src/logos/N-GHD.png
rename to logos/N-GHD.png
diff --git a/src/logos/N-GW.png b/logos/N-GW.png
similarity index 100%
rename from src/logos/N-GW.png
rename to logos/N-GW.png
diff --git a/src/logos/N24DOKU.png b/logos/N24DOKU.png
similarity index 100%
rename from src/logos/N24DOKU.png
rename to logos/N24DOKU.png
diff --git a/src/logos/N3.png b/logos/N3.png
similarity index 100%
rename from src/logos/N3.png
rename to logos/N3.png
diff --git a/src/logos/NAUCH.png b/logos/NAUCH.png
similarity index 100%
rename from src/logos/NAUCH.png
rename to logos/NAUCH.png
diff --git a/src/logos/NDR-HH.png b/logos/NDR-HH.png
similarity index 100%
rename from src/logos/NDR-HH.png
rename to logos/NDR-HH.png
diff --git a/src/logos/NDR-MV.png b/logos/NDR-MV.png
similarity index 100%
rename from src/logos/NDR-MV.png
rename to logos/NDR-MV.png
diff --git a/src/logos/NDR-NI.png b/logos/NDR-NI.png
similarity index 100%
rename from src/logos/NDR-NI.png
rename to logos/NDR-NI.png
diff --git a/src/logos/NDR-SH.png b/logos/NDR-SH.png
similarity index 100%
rename from src/logos/NDR-SH.png
rename to logos/NDR-SH.png
diff --git a/src/logos/NDR.png b/logos/NDR.png
similarity index 100%
rename from src/logos/NDR.png
rename to logos/NDR.png
diff --git a/src/logos/NHK.png b/logos/NHK.png
similarity index 100%
rename from src/logos/NHK.png
rename to logos/NHK.png
diff --git a/src/logos/NICK.png b/logos/NICK.png
similarity index 100%
rename from src/logos/NICK.png
rename to logos/NICK.png
diff --git a/src/logos/NICKJ.png b/logos/NICKJ.png
similarity index 100%
rename from src/logos/NICKJ.png
rename to logos/NICKJ.png
diff --git a/src/logos/NICKT.png b/logos/NICKT.png
similarity index 100%
rename from src/logos/NICKT.png
rename to logos/NICKT.png
diff --git a/src/logos/NL1.png b/logos/NL1.png
similarity index 100%
rename from src/logos/NL1.png
rename to logos/NL1.png
diff --git a/src/logos/NL2.png b/logos/NL2.png
similarity index 100%
rename from src/logos/NL2.png
rename to logos/NL2.png
diff --git a/src/logos/NL3.png b/logos/NL3.png
similarity index 100%
rename from src/logos/NL3.png
rename to logos/NL3.png
diff --git a/src/logos/NOWUS.png b/logos/NOWUS.png
similarity index 100%
rename from src/logos/NOWUS.png
rename to logos/NOWUS.png
diff --git a/src/logos/NTV.png b/logos/NTV.png
similarity index 100%
rename from src/logos/NTV.png
rename to logos/NTV.png
diff --git a/src/logos/OE24TV.png b/logos/OE24TV.png
similarity index 100%
rename from src/logos/OE24TV.png
rename to logos/OE24TV.png
diff --git a/src/logos/ORF1.png b/logos/ORF1.png
similarity index 100%
rename from src/logos/ORF1.png
rename to logos/ORF1.png
diff --git a/src/logos/ORF2.png b/logos/ORF2.png
similarity index 100%
rename from src/logos/ORF2.png
rename to logos/ORF2.png
diff --git a/src/logos/ORF3.png b/logos/ORF3.png
similarity index 100%
rename from src/logos/ORF3.png
rename to logos/ORF3.png
diff --git a/src/logos/ORFSP.png b/logos/ORFSP.png
similarity index 100%
rename from src/logos/ORFSP.png
rename to logos/ORFSP.png
diff --git a/src/logos/PASS.png b/logos/PASS.png
similarity index 100%
rename from src/logos/PASS.png
rename to logos/PASS.png
diff --git a/src/logos/PBOY.png b/logos/PBOY.png
similarity index 100%
rename from src/logos/PBOY.png
rename to logos/PBOY.png
diff --git a/src/logos/PHOEN.png b/logos/PHOEN.png
similarity index 100%
rename from src/logos/PHOEN.png
rename to logos/PHOEN.png
diff --git a/src/logos/PLANE.png b/logos/PLANE.png
similarity index 100%
rename from src/logos/PLANE.png
rename to logos/PLANE.png
diff --git a/src/logos/PRO7.png b/logos/PRO7.png
similarity index 100%
rename from src/logos/PRO7.png
rename to logos/PRO7.png
diff --git a/src/logos/PRO7F.png b/logos/PRO7F.png
similarity index 100%
rename from src/logos/PRO7F.png
rename to logos/PRO7F.png
diff --git a/src/logos/PRO7M.png b/logos/PRO7M.png
similarity index 100%
rename from src/logos/PRO7M.png
rename to logos/PRO7M.png
diff --git a/src/logos/PULS4.png b/logos/PULS4.png
similarity index 100%
rename from src/logos/PULS4.png
rename to logos/PULS4.png
diff --git a/src/logos/PULS8.png b/logos/PULS8.png
similarity index 100%
rename from src/logos/PULS8.png
rename to logos/PULS8.png
diff --git a/src/logos/QVC.png b/logos/QVC.png
similarity index 100%
rename from src/logos/QVC.png
rename to logos/QVC.png
diff --git a/src/logos/QVCBS.png b/logos/QVCBS.png
similarity index 100%
rename from src/logos/QVCBS.png
rename to logos/QVCBS.png
diff --git a/src/logos/QVCP.png b/logos/QVCP.png
similarity index 100%
rename from src/logos/QVCP.png
rename to logos/QVCP.png
diff --git a/src/logos/RB-TV.png b/logos/RB-TV.png
similarity index 100%
rename from src/logos/RB-TV.png
rename to logos/RB-TV.png
diff --git a/src/logos/RBB-B.png b/logos/RBB-B.png
similarity index 100%
rename from src/logos/RBB-B.png
rename to logos/RBB-B.png
diff --git a/src/logos/RBB-BB.png b/logos/RBB-BB.png
similarity index 100%
rename from src/logos/RBB-BB.png
rename to logos/RBB-BB.png
diff --git a/src/logos/RBB.png b/logos/RBB.png
similarity index 100%
rename from src/logos/RBB.png
rename to logos/RBB.png
diff --git a/src/logos/RBTV.png b/logos/RBTV.png
similarity index 100%
rename from src/logos/RBTV.png
rename to logos/RBTV.png
diff --git a/src/logos/RCK.png b/logos/RCK.png
similarity index 100%
rename from src/logos/RCK.png
rename to logos/RCK.png
diff --git a/src/logos/REGBS.png b/logos/REGBS.png
similarity index 100%
rename from src/logos/REGBS.png
rename to logos/REGBS.png
diff --git a/src/logos/REGIO.png b/logos/REGIO.png
similarity index 100%
rename from src/logos/REGIO.png
rename to logos/REGIO.png
diff --git a/src/logos/RIC.png b/logos/RIC.png
similarity index 100%
rename from src/logos/RIC.png
rename to logos/RIC.png
diff --git a/src/logos/RMTV.png b/logos/RMTV.png
similarity index 100%
rename from src/logos/RMTV.png
rename to logos/RMTV.png
diff --git a/src/logos/RNF.png b/logos/RNF.png
similarity index 100%
rename from src/logos/RNF.png
rename to logos/RNF.png
diff --git a/src/logos/ROM.png b/logos/ROM.png
similarity index 100%
rename from src/logos/ROM.png
rename to logos/ROM.png
diff --git a/src/logos/RTL-C.png b/logos/RTL-C.png
similarity index 100%
rename from src/logos/RTL-C.png
rename to logos/RTL-C.png
diff --git a/src/logos/RTL-L.png b/logos/RTL-L.png
similarity index 100%
rename from src/logos/RTL-L.png
rename to logos/RTL-L.png
diff --git a/src/logos/RTL-N.png b/logos/RTL-N.png
similarity index 100%
rename from src/logos/RTL-N.png
rename to logos/RTL-N.png
diff --git a/src/logos/RTL.png b/logos/RTL.png
similarity index 100%
rename from src/logos/RTL.png
rename to logos/RTL.png
diff --git a/src/logos/RTL2.png b/logos/RTL2.png
similarity index 100%
rename from src/logos/RTL2.png
rename to logos/RTL2.png
diff --git a/src/logos/RTLPL.png b/logos/RTLPL.png
similarity index 100%
rename from src/logos/RTLPL.png
rename to logos/RTLPL.png
diff --git a/src/logos/S1PLU.png b/logos/S1PLU.png
similarity index 100%
rename from src/logos/S1PLU.png
rename to logos/S1PLU.png
diff --git a/src/logos/SACH.png b/logos/SACH.png
similarity index 100%
rename from src/logos/SACH.png
rename to logos/SACH.png
diff --git a/src/logos/SAT1.png b/logos/SAT1.png
similarity index 100%
rename from src/logos/SAT1.png
rename to logos/SAT1.png
diff --git a/src/logos/SAT1E.png b/logos/SAT1E.png
similarity index 100%
rename from src/logos/SAT1E.png
rename to logos/SAT1E.png
diff --git a/src/logos/SAT1G.png b/logos/SAT1G.png
similarity index 100%
rename from src/logos/SAT1G.png
rename to logos/SAT1G.png
diff --git a/src/logos/SCIFI.png b/logos/SCIFI.png
similarity index 100%
rename from src/logos/SCIFI.png
rename to logos/SCIFI.png
diff --git a/src/logos/SERVU.png b/logos/SERVU.png
similarity index 100%
rename from src/logos/SERVU.png
rename to logos/SERVU.png
diff --git a/src/logos/SERVUSA.png b/logos/SERVUSA.png
similarity index 100%
rename from src/logos/SERVUSA.png
rename to logos/SERVUSA.png
diff --git a/src/logos/SF1.png b/logos/SF1.png
similarity index 100%
rename from src/logos/SF1.png
rename to logos/SF1.png
diff --git a/src/logos/SF2.png b/logos/SF2.png
similarity index 100%
rename from src/logos/SF2.png
rename to logos/SF2.png
diff --git a/src/logos/SHD2.png b/logos/SHD2.png
similarity index 100%
rename from src/logos/SHD2.png
rename to logos/SHD2.png
diff --git a/src/logos/SHOT.png b/logos/SHOT.png
similarity index 100%
rename from src/logos/SHOT.png
rename to logos/SHOT.png
diff --git a/src/logos/SILVE.png b/logos/SILVE.png
similarity index 100%
rename from src/logos/SILVE.png
rename to logos/SILVE.png
diff --git a/src/logos/SIXX.png b/logos/SIXX.png
similarity index 100%
rename from src/logos/SIXX.png
rename to logos/SIXX.png
diff --git a/src/logos/SKLAR.png b/logos/SKLAR.png
similarity index 100%
rename from src/logos/SKLAR.png
rename to logos/SKLAR.png
diff --git a/src/logos/SKY-A.png b/logos/SKY-A.png
similarity index 100%
rename from src/logos/SKY-A.png
rename to logos/SKY-A.png
diff --git a/src/logos/SKY-C.png b/logos/SKY-C.png
similarity index 100%
rename from src/logos/SKY-C.png
rename to logos/SKY-C.png
diff --git a/src/logos/SKY-CO.png b/logos/SKY-CO.png
similarity index 100%
rename from src/logos/SKY-CO.png
rename to logos/SKY-CO.png
diff --git a/src/logos/SKY-CR.png b/logos/SKY-CR.png
similarity index 100%
rename from src/logos/SKY-CR.png
rename to logos/SKY-CR.png
diff --git a/src/logos/SKY-D.png b/logos/SKY-D.png
similarity index 100%
rename from src/logos/SKY-D.png
rename to logos/SKY-D.png
diff --git a/src/logos/SKY-E.png b/logos/SKY-E.png
similarity index 100%
rename from src/logos/SKY-E.png
rename to logos/SKY-E.png
diff --git a/src/logos/SKY-F.png b/logos/SKY-F.png
similarity index 100%
rename from src/logos/SKY-F.png
rename to logos/SKY-F.png
diff --git a/src/logos/SKY-H.png b/logos/SKY-H.png
similarity index 100%
rename from src/logos/SKY-H.png
rename to logos/SKY-H.png
diff --git a/src/logos/SKY-K.png b/logos/SKY-K.png
similarity index 100%
rename from src/logos/SKY-K.png
rename to logos/SKY-K.png
diff --git a/src/logos/SKY-N.png b/logos/SKY-N.png
similarity index 100%
rename from src/logos/SKY-N.png
rename to logos/SKY-N.png
diff --git a/src/logos/SKY-NA.png b/logos/SKY-NA.png
similarity index 100%
rename from src/logos/SKY-NA.png
rename to logos/SKY-NA.png
diff --git a/src/logos/SKY-S.png b/logos/SKY-S.png
similarity index 100%
rename from src/logos/SKY-S.png
rename to logos/SKY-S.png
diff --git a/src/logos/SKY1.png b/logos/SKY1.png
similarity index 100%
rename from src/logos/SKY1.png
rename to logos/SKY1.png
diff --git a/src/logos/SKYAT.png b/logos/SKYAT.png
similarity index 100%
rename from src/logos/SKYAT.png
rename to logos/SKYAT.png
diff --git a/src/logos/SKYCS.png b/logos/SKYCS.png
similarity index 100%
rename from src/logos/SKYCS.png
rename to logos/SKYCS.png
diff --git a/src/logos/SKYF1.png b/logos/SKYF1.png
similarity index 100%
rename from src/logos/SKYF1.png
rename to logos/SKYF1.png
diff --git a/src/logos/SKYRP.png b/logos/SKYRP.png
similarity index 100%
rename from src/logos/SKYRP.png
rename to logos/SKYRP.png
diff --git a/src/logos/SKYSG.png b/logos/SKYSG.png
similarity index 100%
rename from src/logos/SKYSG.png
rename to logos/SKYSG.png
diff --git a/src/logos/SKYSH.png b/logos/SKYSH.png
similarity index 100%
rename from src/logos/SKYSH.png
rename to logos/SKYSH.png
diff --git a/src/logos/SKYSM.png b/logos/SKYSM.png
similarity index 100%
rename from src/logos/SKYSM.png
rename to logos/SKYSM.png
diff --git a/src/logos/SKYSPL.png b/logos/SKYSPL.png
similarity index 100%
rename from src/logos/SKYSPL.png
rename to logos/SKYSPL.png
diff --git a/src/logos/SKYST.png b/logos/SKYST.png
similarity index 100%
rename from src/logos/SKYST.png
rename to logos/SKYST.png
diff --git a/src/logos/SKYSTE.png b/logos/SKYSTE.png
similarity index 100%
rename from src/logos/SKYSTE.png
rename to logos/SKYSTE.png
diff --git a/src/logos/SKYTH.png b/logos/SKYTH.png
similarity index 100%
rename from src/logos/SKYTH.png
rename to logos/SKYTH.png
diff --git a/src/logos/SNHD.png b/logos/SNHD.png
similarity index 100%
rename from src/logos/SNHD.png
rename to logos/SNHD.png
diff --git a/src/logos/SONY.png b/logos/SONY.png
similarity index 100%
rename from src/logos/SONY.png
rename to logos/SONY.png
diff --git a/src/logos/SP-GE.png b/logos/SP-GE.png
similarity index 100%
rename from src/logos/SP-GE.png
rename to logos/SP-GE.png
diff --git a/src/logos/SP1US.png b/logos/SP1US.png
similarity index 100%
rename from src/logos/SP1US.png
rename to logos/SP1US.png
diff --git a/src/logos/SPO-A.png b/logos/SPO-A.png
similarity index 100%
rename from src/logos/SPO-A.png
rename to logos/SPO-A.png
diff --git a/src/logos/SPO-D.png b/logos/SPO-D.png
similarity index 100%
rename from src/logos/SPO-D.png
rename to logos/SPO-D.png
diff --git a/src/logos/SPORT.png b/logos/SPORT.png
similarity index 100%
rename from src/logos/SPORT.png
rename to logos/SPORT.png
diff --git a/src/logos/SPTVW.png b/logos/SPTVW.png
similarity index 100%
rename from src/logos/SPTVW.png
rename to logos/SPTVW.png
diff --git a/src/logos/SPUHD.png b/logos/SPUHD.png
similarity index 100%
rename from src/logos/SPUHD.png
rename to logos/SPUHD.png
diff --git a/src/logos/SR.png b/logos/SR.png
similarity index 100%
rename from src/logos/SR.png
rename to logos/SR.png
diff --git a/src/logos/STTV.png b/logos/STTV.png
similarity index 100%
rename from src/logos/STTV.png
rename to logos/STTV.png
diff --git a/src/logos/SUPER.png b/logos/SUPER.png
similarity index 100%
rename from src/logos/SUPER.png
rename to logos/SUPER.png
diff --git a/src/logos/SWR.png b/logos/SWR.png
similarity index 100%
rename from src/logos/SWR.png
rename to logos/SWR.png
diff --git a/src/logos/SWRBW.png b/logos/SWRBW.png
similarity index 100%
rename from src/logos/SWRBW.png
rename to logos/SWRBW.png
diff --git a/src/logos/SWRRP.png b/logos/SWRRP.png
similarity index 100%
rename from src/logos/SWRRP.png
rename to logos/SWRRP.png
diff --git a/src/logos/TAG24.png b/logos/TAG24.png
similarity index 100%
rename from src/logos/TAG24.png
rename to logos/TAG24.png
diff --git a/src/logos/TELE5.png b/logos/TELE5.png
similarity index 100%
rename from src/logos/TELE5.png
rename to logos/TELE5.png
diff --git a/src/logos/TLC.png b/logos/TLC.png
similarity index 100%
rename from src/logos/TLC.png
rename to logos/TLC.png
diff --git a/src/logos/TMAX.png b/logos/TMAX.png
similarity index 100%
rename from src/logos/TMAX.png
rename to logos/TMAX.png
diff --git a/src/logos/TNT-C.png b/logos/TNT-C.png
similarity index 100%
rename from src/logos/TNT-C.png
rename to logos/TNT-C.png
diff --git a/src/logos/TNT-F.png b/logos/TNT-F.png
similarity index 100%
rename from src/logos/TNT-F.png
rename to logos/TNT-F.png
diff --git a/src/logos/TNT-S.png b/logos/TNT-S.png
similarity index 100%
rename from src/logos/TNT-S.png
rename to logos/TNT-S.png
diff --git a/src/logos/TOGGO.png b/logos/TOGGO.png
similarity index 100%
rename from src/logos/TOGGO.png
rename to logos/TOGGO.png
diff --git a/src/logos/TRACE.png b/logos/TRACE.png
similarity index 100%
rename from src/logos/TRACE.png
rename to logos/TRACE.png
diff --git a/src/logos/TRAVELXP.png b/logos/TRAVELXP.png
similarity index 100%
rename from src/logos/TRAVELXP.png
rename to logos/TRAVELXP.png
diff --git a/src/logos/TRCH.png b/logos/TRCH.png
similarity index 100%
rename from src/logos/TRCH.png
rename to logos/TRCH.png
diff --git a/src/logos/TV2.png b/logos/TV2.png
similarity index 100%
rename from src/logos/TV2.png
rename to logos/TV2.png
diff --git a/src/logos/TV5.png b/logos/TV5.png
similarity index 100%
rename from src/logos/TV5.png
rename to logos/TV5.png
diff --git a/src/logos/TVB.png b/logos/TVB.png
similarity index 100%
rename from src/logos/TVB.png
rename to logos/TVB.png
diff --git a/src/logos/TVM.png b/logos/TVM.png
similarity index 100%
rename from src/logos/TVM.png
rename to logos/TVM.png
diff --git a/src/logos/UHD1.png b/logos/UHD1.png
similarity index 100%
rename from src/logos/UHD1.png
rename to logos/UHD1.png
diff --git a/src/logos/UNIVE.png b/logos/UNIVE.png
similarity index 100%
rename from src/logos/UNIVE.png
rename to logos/UNIVE.png
diff --git a/src/logos/VH1.png b/logos/VH1.png
similarity index 100%
rename from src/logos/VH1.png
rename to logos/VH1.png
diff --git a/src/logos/VIVA.png b/logos/VIVA.png
similarity index 100%
rename from src/logos/VIVA.png
rename to logos/VIVA.png
diff --git a/src/logos/VOX.png b/logos/VOX.png
similarity index 100%
rename from src/logos/VOX.png
rename to logos/VOX.png
diff --git a/src/logos/VOXUP.png b/logos/VOXUP.png
similarity index 100%
rename from src/logos/VOXUP.png
rename to logos/VOXUP.png
diff --git a/src/logos/WDR-AC.png b/logos/WDR-AC.png
similarity index 100%
rename from src/logos/WDR-AC.png
rename to logos/WDR-AC.png
diff --git a/src/logos/WDR-BI.png b/logos/WDR-BI.png
similarity index 100%
rename from src/logos/WDR-BI.png
rename to logos/WDR-BI.png
diff --git a/src/logos/WDR-BN.png b/logos/WDR-BN.png
similarity index 100%
rename from src/logos/WDR-BN.png
rename to logos/WDR-BN.png
diff --git a/src/logos/WDR-D.png b/logos/WDR-D.png
similarity index 100%
rename from src/logos/WDR-D.png
rename to logos/WDR-D.png
diff --git a/src/logos/WDR-DO.png b/logos/WDR-DO.png
similarity index 100%
rename from src/logos/WDR-DO.png
rename to logos/WDR-DO.png
diff --git a/src/logos/WDR-DU.png b/logos/WDR-DU.png
similarity index 100%
rename from src/logos/WDR-DU.png
rename to logos/WDR-DU.png
diff --git a/src/logos/WDR-E.png b/logos/WDR-E.png
similarity index 100%
rename from src/logos/WDR-E.png
rename to logos/WDR-E.png
diff --git a/src/logos/WDR-K.png b/logos/WDR-K.png
similarity index 100%
rename from src/logos/WDR-K.png
rename to logos/WDR-K.png
diff --git a/src/logos/WDR-MS.png b/logos/WDR-MS.png
similarity index 100%
rename from src/logos/WDR-MS.png
rename to logos/WDR-MS.png
diff --git a/src/logos/WDR-SI.png b/logos/WDR-SI.png
similarity index 100%
rename from src/logos/WDR-SI.png
rename to logos/WDR-SI.png
diff --git a/src/logos/WDR-W.png b/logos/WDR-W.png
similarity index 100%
rename from src/logos/WDR-W.png
rename to logos/WDR-W.png
diff --git a/src/logos/WDR.png b/logos/WDR.png
similarity index 100%
rename from src/logos/WDR.png
rename to logos/WDR.png
diff --git a/src/logos/WDWTV.png b/logos/WDWTV.png
similarity index 100%
rename from src/logos/WDWTV.png
rename to logos/WDWTV.png
diff --git a/src/logos/WELT.png b/logos/WELT.png
similarity index 100%
rename from src/logos/WELT.png
rename to logos/WELT.png
diff --git a/src/logos/ZDF.png b/logos/ZDF.png
similarity index 100%
rename from src/logos/ZDF.png
rename to logos/ZDF.png
diff --git a/src/logos/ZEE-1.png b/logos/ZEE-1.png
similarity index 100%
rename from src/logos/ZEE-1.png
rename to logos/ZEE-1.png
diff --git a/src/logos/ZINFO.png b/logos/ZINFO.png
similarity index 100%
rename from src/logos/ZINFO.png
rename to logos/ZINFO.png
diff --git a/po/TVMagazineCockpit.pot b/po/TVMagazineCockpit.pot
index 38c3885..34c510a 100644
--- a/po/TVMagazineCockpit.pot
+++ b/po/TVMagazineCockpit.pot
@@ -1,8 +1,8 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
-"POT-Creation-Date: 2024-05-31 13:07+0200\n"
-"PO-Revision-Date: 2024-05-31 13:07+0200\n"
+"POT-Creation-Date: 2024-06-01 18:58+0200\n"
+"PO-Revision-Date: 2024-06-01 19:15+0200\n"
"Last-Translator: dream-alpha\n"
"Language-Team: \n"
"Language: de_DE\n"
@@ -23,7 +23,7 @@ msgstr ""
msgid "All available channels"
msgstr ""
-msgid "Favourites"
+msgid "Favorites"
msgstr ""
msgid "Service reference"
@@ -101,31 +101,37 @@ msgstr ""
msgid "Write debug messages into file"
msgstr ""
-msgid "Tv Spielfilm Main"
+msgid "TV Spielfilm Main"
msgstr ""
-msgid "Tv Spielfilm Tips"
+msgid "TV Spielfilm Program Standard"
msgstr ""
-msgid "Tv Spielfilm Programm Standard"
+msgid "TV Spielfilm Program Favorites"
msgstr ""
-msgid "Tv Spielfilm Programm Favourites"
+msgid "TV Spielfilm Program Sky"
msgstr ""
-msgid "Tv Spielfilm Programm Sky"
+msgid "Close"
msgstr ""
-msgid "Tv Spielfilm Search"
+msgid "Save"
+msgstr ""
+
+msgid "disable"
msgstr ""
msgid "Error during download"
msgstr ""
-msgid "Setup"
+msgid "TV Spielfilm Program Main"
msgstr ""
-msgid "Bouquets"
+msgid "TV Spielfilm Setup"
+msgstr ""
+
+msgid "TV Spielfilm Favorites / Bouquets Setup"
msgstr ""
msgid "Easy-Selection"
@@ -134,19 +140,16 @@ msgstr ""
msgid "Input"
msgstr ""
-msgid "Loading..."
+msgid "List of Storage Devices"
msgstr ""
msgid "Main"
msgstr ""
-msgid "Tips"
-msgstr ""
-
-msgid "Search"
+msgid "Reload"
msgstr ""
-msgid "Reload"
+msgid "Loading..."
msgstr ""
msgid "Page"
@@ -200,31 +203,16 @@ msgstr ""
msgid "Title"
msgstr ""
-msgid "search history"
-msgstr ""
-
-msgid "Manual Scan"
-msgstr ""
-
-msgid "Download started..."
-msgstr ""
-
-msgid "Cancelling..."
-msgstr ""
-
-msgid "Search for"
-msgstr ""
-
-msgid "Enter text to search for"
+msgid "Cancel"
msgstr ""
-msgid "EPG Search"
+msgid "Remove"
msgstr ""
-msgid "Select text to search for"
+msgid "Setup"
msgstr ""
-msgid "No history"
+msgid "Start screen"
msgstr ""
msgid "Browse TV Magazine"
@@ -241,108 +229,3 @@ msgstr ""
msgid "Stars"
msgstr ""
-
-msgid "Close"
-msgstr ""
-
-msgid "Save"
-msgstr ""
-
-msgid "disable"
-msgstr ""
-
-msgid "Cancel"
-msgstr ""
-
-msgid "Tv Spielfilm"
-msgstr ""
-
-msgid "Start"
-msgstr ""
-
-msgid "Screen"
-msgstr ""
-
-msgid "not active"
-msgstr ""
-
-msgid "Sort Mode"
-msgstr ""
-
-msgid "Assignment of the blue button"
-msgstr ""
-
-msgid "Start from the beginning"
-msgstr ""
-
-msgid "Resolution"
-msgstr ""
-
-msgid "Priority"
-msgstr ""
-
-msgid "Picons path"
-msgstr ""
-
-msgid "Tipps only"
-msgstr ""
-
-msgid "Free-TV only"
-msgstr ""
-
-msgid "looking for branch"
-msgstr ""
-
-msgid "Movie"
-msgstr ""
-
-msgid "Series"
-msgstr ""
-
-msgid "Report"
-msgstr ""
-
-msgid "Entertainment"
-msgstr ""
-
-msgid "Kids"
-msgstr ""
-
-msgid "Sport"
-msgstr ""
-
-msgid "Length of History"
-msgstr ""
-
-msgid "Filter"
-msgstr ""
-
-msgid "separated by"
-msgstr ""
-
-msgid "Plugins"
-msgstr ""
-
-msgid "show"
-msgstr ""
-
-msgid "EPG"
-msgstr ""
-
-msgid "blue"
-msgstr ""
-
-msgid "red"
-msgstr ""
-
-msgid "Eventview"
-msgstr ""
-
-msgid "List of Storage Devices"
-msgstr ""
-
-msgid "Remove"
-msgstr ""
-
-msgid "No entries found"
-msgstr ""
diff --git a/po/de.po b/po/de.po
index 174e98e..fc36846 100644
--- a/po/de.po
+++ b/po/de.po
@@ -1,8 +1,8 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
-"POT-Creation-Date: 2024-05-31 13:07+0200\n"
-"PO-Revision-Date: 2024-05-31 13:07+0200\n"
+"POT-Creation-Date: 2024-06-01 18:58+0200\n"
+"PO-Revision-Date: 2024-06-01 19:15+0200\n"
"Last-Translator: dream-alpha\n"
"Language-Team: \n"
"Language: de_DE\n"
@@ -23,7 +23,7 @@ msgstr "Auswahl der verfügbaren Kanäle"
msgid "All available channels"
msgstr "Alle verfügbaren Kanäle"
-msgid "Favourites"
+msgid "Favorites"
msgstr "Favoriten"
msgid "Service reference"
@@ -101,32 +101,38 @@ msgstr "Speichere alle Kanäle nach /tmp"
msgid "Write debug messages into file"
msgstr "Speichere Debug Messages in eine Datei"
-msgid "Tv Spielfilm Main"
-msgstr "Tv Spielfilm Hauptseite"
+msgid "TV Spielfilm Main"
+msgstr "TV Spielfilm Hauptseite"
-msgid "Tv Spielfilm Tips"
-msgstr "Tv Spielfilm Tipps"
+msgid "TV Spielfilm Program Standard"
+msgstr "TV Spielfilm Programm Standard"
-msgid "Tv Spielfilm Programm Standard"
-msgstr "Tv Spielfilm Programm Standard"
+msgid "TV Spielfilm Program Favorites"
+msgstr "TV Spielfilm Programm Favoriten"
-msgid "Tv Spielfilm Programm Favourites"
-msgstr "Tv Spielfilm Programm Favoriten"
+msgid "TV Spielfilm Program Sky"
+msgstr "TV Spielfilm Programm Sky"
-msgid "Tv Spielfilm Programm Sky"
-msgstr "Tv Spielfilm Programm Sky"
+msgid "Close"
+msgstr "Schließen"
+
+msgid "Save"
+msgstr "Speichern"
-msgid "Tv Spielfilm Search"
-msgstr "Tv Spielfilm Suche"
+msgid "disable"
+msgstr "deaktiviere"
msgid "Error during download"
msgstr "Fehler beim Download"
-msgid "Setup"
-msgstr "Einstellungen"
+msgid "TV Spielfilm Program Main"
+msgstr "TV Spielfilm Programm Hauptseite"
+
+msgid "TV Spielfilm Setup"
+msgstr "TV Spielfilm Einstellungen"
-msgid "Bouquets"
-msgstr "Bouquets"
+msgid "TV Spielfilm Favorites / Bouquets Setup"
+msgstr "TV Spielfilm Favoriten / Bouquet Einstellungen"
msgid "Easy-Selection"
msgstr "Einfach-Auswahl"
@@ -134,21 +140,18 @@ msgstr "Einfach-Auswahl"
msgid "Input"
msgstr "Eingabe"
-msgid "Loading..."
-msgstr "Lade..."
+msgid "List of Storage Devices"
+msgstr "Liste der Speichergeräte"
msgid "Main"
msgstr "Hauptseite"
-msgid "Tips"
-msgstr "Tipps"
-
-msgid "Search"
-msgstr "Suche"
-
msgid "Reload"
msgstr "Neu laden"
+msgid "Loading..."
+msgstr "Lade..."
+
msgid "Page"
msgstr "Seite"
@@ -200,32 +203,17 @@ msgstr "Name"
msgid "Title"
msgstr "Titel"
-msgid "search history"
-msgstr "Suchverlauf"
-
-msgid "Manual Scan"
-msgstr "Manuelle Suche"
-
-msgid "Download started..."
-msgstr "Download läuft..."
-
-msgid "Cancelling..."
-msgstr "Abbruch..."
-
-msgid "Search for"
-msgstr "Suche nach"
-
-msgid "Enter text to search for"
-msgstr "Suchtext eingeben"
+msgid "Cancel"
+msgstr "Abbruch"
-msgid "EPG Search"
-msgstr "EPG Suche"
+msgid "Remove"
+msgstr "Entfernen"
-msgid "Select text to search for"
-msgstr "Suchtext eingeben"
+msgid "Setup"
+msgstr "Einstellungen"
-msgid "No history"
-msgstr "Kein Verlauf"
+msgid "Start screen"
+msgstr "Start Bildschirm"
msgid "Browse TV Magazine"
msgstr "TV Magazin duchblättern"
@@ -241,108 +229,3 @@ msgstr "Benutzer"
msgid "Stars"
msgstr "Sterne"
-
-msgid "Close"
-msgstr "Schließen"
-
-msgid "Save"
-msgstr "Speichern"
-
-msgid "disable"
-msgstr "deaktiviere"
-
-msgid "Cancel"
-msgstr "Abbruch"
-
-msgid "Tv Spielfilm"
-msgstr "Tv Spielfilm"
-
-msgid "Start"
-msgstr "Starn"
-
-msgid "Screen"
-msgstr "Schirm"
-
-msgid "not active"
-msgstr "nicht aktiv"
-
-msgid "Sort Mode"
-msgstr "Sortierungsmodus"
-
-msgid "Assignment of the blue button"
-msgstr "Belegung der blauen Taste"
-
-msgid "Start from the beginning"
-msgstr "Starte am Anfang"
-
-msgid "Resolution"
-msgstr "Auflösung"
-
-msgid "Priority"
-msgstr "Priorität"
-
-msgid "Picons path"
-msgstr "Picon Pfad"
-
-msgid "Tipps only"
-msgstr "Nur Tipps"
-
-msgid "Free-TV only"
-msgstr "Nur Free-TV"
-
-msgid "looking for branch"
-msgstr "Suche nach Sparte"
-
-msgid "Movie"
-msgstr "Spielfilm"
-
-msgid "Series"
-msgstr "Serie"
-
-msgid "Report"
-msgstr "Reportage"
-
-msgid "Entertainment"
-msgstr "Unterhaltung"
-
-msgid "Kids"
-msgstr "Kinder"
-
-msgid "Sport"
-msgstr "Sport"
-
-msgid "Length of History"
-msgstr "Verlauflänge"
-
-msgid "Filter"
-msgstr "Filter"
-
-msgid "separated by"
-msgstr "Getrennt durch"
-
-msgid "Plugins"
-msgstr "Plugins"
-
-msgid "show"
-msgstr "anzeigen"
-
-msgid "EPG"
-msgstr "EPG"
-
-msgid "blue"
-msgstr "blau"
-
-msgid "red"
-msgstr "rot"
-
-msgid "Eventview"
-msgstr "Sendungsinformationen"
-
-msgid "List of Storage Devices"
-msgstr "Liste der Speichergeräte"
-
-msgid "Remove"
-msgstr "Entfernen"
-
-msgid "No entries found"
-msgstr "Keine Einträge gefunden"
diff --git a/src/ChannelGroupSelection.py b/src/ChannelGroupSelection.py
index e235f31..99ef90e 100644
--- a/src/ChannelGroupSelection.py
+++ b/src/ChannelGroupSelection.py
@@ -12,7 +12,7 @@ class ChannelGroupSelection(Screen):
def __init__(self, session, channel_list, page_index_parm=0):
logger.info("...")
Screen.__init__(self, session)
- self.skinName = "TvSpielfilmChannelGroup"
+ self.skinName = "ChannelGroup"
self["actions"] = ActionMap(
["TVS_Actions"],
{
diff --git a/src/ChannelManagement.py b/src/ChannelManagement.py
index a77845a..88839eb 100755
--- a/src/ChannelManagement.py
+++ b/src/ChannelManagement.py
@@ -19,7 +19,7 @@
from .tvconfig import is_in_fovo, write_default_channels, configdefaultchannelsuser
from .tvconfig import checkvideomode, prevideodict
from ._tvdict import _tv_config, _channelcache, _tv_config_config, _changed
-from .tvspielfilmsetup import TvSpielfilmservice
+from .Service import Service
from .__init__ import _
from .MYList import MYList
from .ZapUtils import Zap_Service
@@ -31,7 +31,7 @@ class ChannelManagement(Screen):
def __init__(self, session):
logger.info("...")
Screen.__init__(self, session)
- self.skinName = "TvSpielfilmchannel"
+ self.skinName = "Channel"
self["actions"] = ActionMap(
["TVS_Actions"],
{
@@ -60,16 +60,16 @@ def __init__(self, session):
self["key_red"] = StaticText(_('Bouquets (TV)'))
self["key_green"] = StaticText(_('Available channel selection'))
self["key_yellow"] = StaticText(_('All available channels'))
- self["key_blue"] = StaticText(_('Favourites'))
+ self["key_blue"] = StaticText(_('Favorites'))
self["liste"] = MYList()
self["liste"].style = "default"
self.mytitlestr = ('mytitle1', 'mytitle2', 'mytitle3', 'mytitle4', 'mytitle5')
- self["mytitle1"] = Label('Tv Spielfilm Name')
- self["mytitle2"] = Label('Tv Spielfilm id')
+ self["mytitle1"] = Label('TV Spielfilm Name')
+ self["mytitle2"] = Label('TV Spielfilm id')
self["mytitle3"] = Label('Enigma Name')
self["mytitle4"] = Label(_('Service reference'))
- self["mytitle5"] = Label(_('Favourites'))
+ self["mytitle5"] = Label(_('Favorites'))
for myx in self.mytitlestr:
self[myx].hide()
self["message"] = Label()
@@ -187,7 +187,7 @@ def key_yellow(self):
self["actionsmove"].setEnabled(False)
for myx in self.mytitlestr:
self[myx].show()
- self["mytitle5"].text = _('Favourites')
+ self["mytitle5"].text = _('Favorites')
self["liste"].style = "channel_bouquet"
if not self.masterliste['defaultchannels']:
self.masterliste['defaultchannels'] = read_channel_dict()
@@ -208,7 +208,7 @@ def key_blue(self):
self["liste"].style = "channel_bouquet"
logger.debug("self.masterliste['favourites']: %s", self.masterliste['favourites'])
self["liste"].updateList(self.masterliste['favourites'])
- text = "[%s] %d %s" % (_('Favourites'), self["liste"].count(), _('Entries'))
+ text = "[%s] %d %s" % (_('Favorites'), self["liste"].count(), _('Entries'))
text += " OK %s %s / %s %s %s" % (_("Button"), _('enable move mode'), _("menu"), _("Button"), _("Remove entry"))
self["message"].setText(text)
@@ -235,12 +235,12 @@ def showMenu(self):
if curr and len(curr) >= 3:
options.append((curr[0] + ' ' + _("Remove entry"), 'delfavo'))
if self.masterliste['favourites']:
- options.append((_('all') + ' ' + _("Favourites") + ' ' + _('Delete'), 'delfavoall'))
+ options.append((_('all') + ' ' + _("Favorites") + ' ' + _('Delete'), 'delfavoall'))
if curr[3] and zapto:
zapto = False
options.append(('--', '--'))
options.append((curr[0] + ' ' + _("Zap"), 'zapto'))
- mytitle = _("Favourites")
+ mytitle = _("Favorites")
if curr and len(curr) >= 6 and self.listtype == 'yellow':
options.append((curr[0] + ' ' + _("Edit"), 'edit'))
if curr[3] and zapto:
@@ -302,7 +302,7 @@ def menuCallback(self, answer):
_changed['fovo'] = True
self.key_blue()
elif answer == "delfavoall":
- text = _('all') + ' ' + _("Favourites") + ' ' + _('Delete')
+ text = _('all') + ' ' + _("Favorites") + ' ' + _('Delete')
self.session.openWithCallback(self.del_all_favo, MessageBox, text)
elif answer == "edit":
@@ -316,7 +316,7 @@ def SaveCallback(ress=None):
tmpcurr[3] = cvmode.eservice
self['liste'].modifyEntry(self['liste'].index, tmpcurr)
_changed['default'] = True
- self.session.openWithCallback(SaveCallback, TvSpielfilmservice, curr[5])
+ self.session.openWithCallback(SaveCallback, Service, curr[5])
elif answer == "zaptest":
options = []
@@ -381,7 +381,7 @@ def key_ok(self):
if pathExists(filename):
for myx in self.mytitlestr:
self[myx].show()
- self["mytitle5"].text = _('Favourites')
+ self["mytitle5"].text = _('Favorites')
self.listtype = 'addfavo'
self["liste"].style = "channel_bouquet"
result = read_channel_dict()
diff --git a/src/ConfigInit.py b/src/ConfigInit.py
index 7335c38..ff57636 100755
--- a/src/ConfigInit.py
+++ b/src/ConfigInit.py
@@ -37,12 +37,11 @@ def __init__(self):
config.plugins.tvmagazinecockpit.showchannelred = ConfigYesNo(default=True)
config.plugins.tvmagazinecockpit.showeventview = ConfigYesNo(default=True)
config.plugins.tvmagazinecockpit.startscreen = ConfigSelection(
- default="programm",
+ default="programdefault",
choices=[
- ("main", _("Tv Spielfilm Main")),
- ("programm", _("Tv Spielfilm Programm Standard")),
- ("programmfavo", _("Tv Spielfilm Programm Favourites")),
- ("programmsky", _("Tv Spielfilm Programm Sky")),
- ("search", _("Tv Spielfilm Search"))
+ ("programmain", _("TV Spielfilm Main")),
+ ("programdefault", _("TV Spielfilm Program Standard")),
+ ("programfavo", _("TV Spielfilm Program Favorites")),
+ ("programsky", _("TV Spielfilm Program Sky")),
]
)
diff --git a/src/DirBrowser.py b/src/DirBrowser.py
new file mode 100755
index 0000000..b587a27
--- /dev/null
+++ b/src/DirBrowser.py
@@ -0,0 +1,56 @@
+# coding=utf-8
+
+from Screens.Screen import Screen
+from Components.Sources.StaticText import StaticText
+from Components.ActionMap import ActionMap
+from Components.FileList import FileList
+from .MYSimpleSummary import MYSimpleSummary
+from .__init__ import _
+from .Debug import logger
+
+
+class DirBrowser(Screen):
+ def __init__(self, session, directory='/'):
+ logger.info("...")
+ self.skinName = "DirBrowser"
+ Screen.__init__(self, session)
+ if directory == '':
+ directory = '/'
+ self["dirlist"] = FileList(directory, showDirectories=True, showFiles=False)
+ self["actions"] = ActionMap(
+ ["OkCancelActions", "DirectionActions", "ColorActions"],
+ {
+ "ok": self["dirlist"].descent,
+ "cancel": self.cancel,
+ "red": self.cancel,
+ "green": self.key_green,
+ "yellow": self.key_yellow
+ }
+ )
+ self["key_red"] = StaticText(_("Close"))
+ self["key_green"] = StaticText(_("Save"))
+ self["key_yellow"] = StaticText(_("disable"))
+ self["status"] = StaticText("")
+ if self.selectionChanged not in self["dirlist"].onSelectionChanged:
+ self["dirlist"].onSelectionChanged.append(self.selectionChanged)
+ self.selectionChanged()
+
+ def selectionChanged(self):
+ logger.info("...")
+ self["status"].setText(str(self["dirlist"].getCurrentDirectory() or ''))
+
+ def cancel(self):
+ logger.info("...")
+ self.close(None)
+
+ def key_green(self):
+ logger.info("...")
+ self.close(self["dirlist"].getCurrentDirectory())
+
+ def key_yellow(self):
+ logger.info("...")
+ self.close("")
+
+ def createSummary(self):
+ logger.info("...")
+ return MYSimpleSummary
diff --git a/src/EasyMenu.py b/src/EasyMenu.py
index 09be414..2465f99 100755
--- a/src/EasyMenu.py
+++ b/src/EasyMenu.py
@@ -1,12 +1,8 @@
from Screens.ChoiceBox import ChoiceBox
from .__init__ import _
from .Debug import logger
-from .tvspielfilmsetup import TvSpielfilmstartSetup
-from .tvspielfilmsetup import TvSpielfilmmainSetup
-from .tvspielfilmsetup import TvSpielfilmsearchSetup
+from .Setup import Setup
from .ChannelManagement import ChannelManagement
-from .tvconfig import make_default_string, read_ServiceReference
-from ._tvdict import _changed, _channelreference, _tv_config
class EasyMenu():
@@ -16,62 +12,31 @@ def __init__(self, csel):
def openEasyMenu(self, session):
logger.info("...")
- alist = []
- alist.append((_("Tv Spielfilm Main"), 'main'))
- alist.append((_("Tv Spielfilm Tips"), 'tipps'))
- alist.append((_("Tv Spielfilm Programm Standard"), 'programm'))
- alist.append((_("Tv Spielfilm Programm Sky"), 'programmsky'))
- alist.append((_("Tv Spielfilm Programm Favourites"), 'programmfavo'))
- alist.append((_("Tv Spielfilm Search"), 'search'))
- alist.append(('--', '--'))
- alist.append(('Tv Spielfilm Start' + ' ' + _("Setup"), 'startsetup'))
- alist.append(('Tv Spielfilm Main' + ' ' + _("Setup"), 'mainsetup'))
- alist.append(('Tv Spielfilm Search' + ' ' + _("Setup"), 'searchsetup'))
- alist.append((_('Favourites') + '/' + _('Bouquets') + ' ' + _("Setup"), 'tvchannel'))
+ alist = [
+ (_("TV Spielfilm Program Main"), 'main'),
+ (_("TV Spielfilm Program Standard"), 'program'),
+ (_("TV Spielfilm Program Sky"), 'programsky'),
+ (_("TV Spielfilm Program Favorites"), 'programfavo'),
+ (_("TV Spielfilm Setup"), 'setup'),
+ (_("TV Spielfilm Favorites / Bouquets Setup"), 'channel'),
+ ]
- session.openWithCallback(self.openEasyMenuCallback, ChoiceBox, title='Tv Spielfilm', list=alist, windowTitle=_('Easy-Selection'), allow_cancel=True, titlebartext=_("Input"))
+ session.openWithCallback(self.openEasyMenuCallback, ChoiceBox, title='TV Spielfilm', list=alist, windowTitle=_('Easy-Selection'), allow_cancel=True, titlebartext=_("Input"))
def openEasyMenuCallback(self, next_screen=None):
logger.info("...")
if next_screen:
if next_screen[1] == 'main':
- self.close('main')
- elif next_screen[1] == 'tipps':
- self.close('tipps')
- elif next_screen[1] == 'programm':
- self.close('programm')
- elif next_screen[1] == 'programmsky':
- self.close('programmsky')
- elif next_screen[1] == 'programmfavo':
- self.close('programmfavo')
- elif next_screen[1] == 'search':
- self.key_search()
- elif next_screen[1] == 'tvchannel':
+ self.close('programmain')
+ elif next_screen[1] == 'program':
+ self.close('programdefault')
+ elif next_screen[1] == 'programsky':
+ self.close('programsky')
+ elif next_screen[1] == 'programfavo':
+ self.close('programfavo')
+ elif next_screen[1] == 'channel':
+ self.session.open(ChannelManagement)
+ elif next_screen[1] == 'setup':
+ self.session.open(Setup)
+ elif next_screen[1] == "channel":
self.session.open(ChannelManagement)
- elif next_screen[1] == 'startsetup':
- self.session.open(TvSpielfilmstartSetup)
- elif next_screen[1] == "mainsetup":
- self.session.openWithCallback(self.key_menu_back, TvSpielfilmmainSetup)
- elif next_screen[1] == "searchsetup":
- self.session.open(TvSpielfilmsearchSetup)
- elif next_screen[1] == "tvchannel":
- self.session.openWithCallback(self.key_channel_back, ChannelManagement)
-
- def key_menu_back(self, changed=False):
- logger.info("...")
- if changed:
- _changed['config'] = True
- self.csel["liste"].clearList()
- if not _channelreference:
- read_ServiceReference()
- make_default_string()
- if _tv_config.get('time').get('default'):
- text = _tv_config.get('time').get(_tv_config.get('time').get('default')).get('disname', '')
- self.csel["key_blue"].setText(text)
- self.updateTitle()
-
- def key_channel_back(self, changed=False):
- logger.info("...")
- if changed:
- _changed['config'] = True
- make_default_string()
diff --git a/src/EventDetails.py b/src/EventDetails.py
index 7c2759b..30905a8 100755
--- a/src/EventDetails.py
+++ b/src/EventDetails.py
@@ -1,6 +1,6 @@
# coding=utf-8
-import os
+# import os
from time import strftime, localtime
from Screens.Screen import Screen
from Components.ActionMap import ActionMap
@@ -12,10 +12,10 @@
from Tools.Directories import pathExists
from Tools.LoadPixmap import LoadPixmap
from Downloader import headers_gzip, MydownloadPage, MyDeferredSemaphore, http_failed
-from enigma import eServiceReference, ePicLoad, gPixmapPtr
+from enigma import eServiceReference, ePicLoad # , gPixmapPtr
from streamplayer import StreamPlayer
-from MYSimpleSummary import MYSimpleSummary
-from .__init__ import _
+# from MYSimpleSummary import MYSimpleSummary
+# from .__init__ import _
from .Debug import logger
from .Constants import EVENT_IDX_TITLE, EVENT_IDX_TIME_START, EVENT_IDX_TIME_END, EVENT_IDX_TEXT
from .PictureUtils import getPicon, getVideo, getEventPicUrl
@@ -37,7 +37,7 @@ def __init__(self, session, list_event):
"down": self["description"].pageDown
}
)
- self["programmpix"] = Pixmap()
+ self["programpix"] = Pixmap()
self["videopix"] = Pixmap()
self["channelpix"] = Pixmap()
self["daumenpix"] = Pixmap()
@@ -70,8 +70,8 @@ def createsetup(self):
url = getEventPicUrl(self.list_event)
if url:
- afile = '/tmp/programmpix%s' % url[-4:]
- self.download.run(MydownloadPage, url, afile, headers=headers_gzip).addCallback(self.result_back_pic, self["programmpix"], afile).addErrback(http_failed)
+ afile = '/tmp/programpix%s' % url[-4:]
+ self.download.run(MydownloadPage, url, afile, headers=headers_gzip).addCallback(self.result_back_pic, self["programpix"], afile).addErrback(http_failed)
self.video_title, url, self.video_url = getVideo(self.list_event)
if url:
@@ -108,12 +108,6 @@ def __finish_decode(self, _picInfo):
self['videopix'].instance.setPixmap(ptr)
# os.remove(self.filename)
- """
- def createSummary(self):
- logger.info("...")
- self.skin_summary = "TvSpielfilmmain_group_summary"
- return MYSimpleSummary
- """
def deferCanceler(self):
logger.info("...")
for items in self.deferreds:
diff --git a/src/Makefile.am b/src/Makefile.am
index d05d1b7..f9c6669 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,4 +1,4 @@
installdir = $(libdir)/enigma2/python/Plugins/Extensions/TVMagazineCockpit
-SUBDIRS = logos icons skin
+SUBDIRS = icons skin
install_PYTHON = *.py
-install_DATA = *.png *.svg *.xml *.json
+install_DATA = *.png *.xml
diff --git a/src/MyConfigDirectory.py b/src/MyConfigDirectory.py
new file mode 100755
index 0000000..983ba10
--- /dev/null
+++ b/src/MyConfigDirectory.py
@@ -0,0 +1,17 @@
+# coding=utf-8
+
+from Components.config import ConfigText, ConfigDirectory
+from .__init__ import _
+from .Debug import logger
+
+
+class MyConfigDirectory(ConfigDirectory):
+ def __init__(self, default, visible_width=60):
+ logger.info("...")
+ ConfigDirectory.__init__(self, default, visible_width=visible_width)
+
+ def getMulti(self, selected):
+ logger.info("...")
+ if self.text == "":
+ return ("mtext"[1 - selected:], _("List of Storage Devices"), range(0))
+ return ConfigText.getMulti(self, selected)
diff --git a/src/PictureUtils.py b/src/PictureUtils.py
index 0c32852..6734f64 100644
--- a/src/PictureUtils.py
+++ b/src/PictureUtils.py
@@ -55,5 +55,5 @@ def getEventPicUrl(list_event):
if len(images) > 0:
image = images[0]
url = image.get("size4", "")
- logger.debug("programmpix url: %s", url)
+ logger.debug("programpix url: %s", url)
return url
diff --git a/src/ProgramColumns.py b/src/ProgramColumns.py
index d0b5f86..f83c5d2 100755
--- a/src/ProgramColumns.py
+++ b/src/ProgramColumns.py
@@ -11,7 +11,6 @@
from Components.Sources.StaticText import StaticText
from Tools.LoadPixmap import LoadPixmap
from .Downloader import headers_gzip, MydownloadPage, http_failed, MyDeferredSemaphore
-from .tools import Load_My_Pixmap
from ._tvdict import listprogresindex
from .ConfigInit import plugindir
from .MultiListSummary import MultiListSummary
@@ -31,7 +30,7 @@ def __init__(self, session, channel_list):
logger.info("...")
self.channel_list = channel_list
Screen.__init__(self, session)
- self.skinName = "TvSpielfilmTvProgramm"
+ self.skinName = "ProgramColumns"
EasyMenu.__init__(self, self)
self["actions"] = ActionMap(
["TVS_Actions", "NumberActions"],
@@ -46,8 +45,8 @@ def __init__(self, session, channel_list):
"next": self.key_next,
"back": self.key_back,
"red": self.key_red,
- "green": self.key_green,
- "yellow": self.key_yellow,
+ # "green": self.key_green,
+ # "yellow": self.key_yellow,
"blue": self.key_blue,
"menu": self.showMenu,
"channelup": self.channelup,
@@ -66,10 +65,10 @@ def __init__(self, session, channel_list):
self["searchdate"] = Label()
for i in range(self.cols):
- self["liste%s" % i] = MultiList(None, "TvSpielfilmTvProgramm", "screenpart_programm_template.tpl")
+ self["liste%s" % i] = MultiList(None, "ProgramColumns", "screenpart_programm_template.tpl")
self["channel%s" % i] = Label()
self["channelpix%s" % i] = Pixmap()
- self["programmpix%s" % i] = Pixmap()
+ self["programpix%s" % i] = Pixmap()
self["time%s" % i] = Label()
self["description%s" % i] = Label()
@@ -82,8 +81,8 @@ def __init__(self, session, channel_list):
mytime = mytime + 24 * 60 * 60
self["key_red"] = StaticText(_("Main"))
- self["key_green"] = StaticText(_("Tips"))
- self["key_yellow"] = StaticText(_("Search"))
+ self["key_green"] = StaticText()
+ self["key_yellow"] = StaticText()
self["key_blue"] = StaticText(_("Reload"))
self.download = MyDeferredSemaphore(tokens=12)
@@ -151,7 +150,7 @@ def showPage(self, list_events=None):
picon_file = '%slogos/%s' % (plugindir, picon)
logger.debug("picon_file: %s", picon_file)
- ptr = Load_My_Pixmap(picon_file)
+ ptr = LoadPixmap(picon_file)
self["channelpix%s" % i].instance.setPixmap(ptr)
# get event pix
images = prime_event[EVENT_IDX_IMAGES]
@@ -160,8 +159,8 @@ def showPage(self, list_events=None):
if len(images) > 0:
image = images[0]
url = str(image.get("size4", ""))
- logger.debug("programmpix url: %s", url)
- afile = '/tmp/programmpix%d%s' % (i, url[-4:])
+ logger.debug("programpix url: %s", url)
+ afile = '/tmp/programpix%d%s' % (i, url[-4:])
if url:
self.download.run(MydownloadPage, url, afile, headers=headers_gzip).addCallback(self.result_back_pic, i, afile).addErrback(http_failed)
self["liste%s" % i].l.setList(tmp_list)
@@ -175,12 +174,12 @@ def showPage(self, list_events=None):
def result_back_pic(self, result, i, event_pic_file):
logger.info("result: %s", result)
logger.info("i: %s, event_pic_file: %s", i, event_pic_file)
- self["programmpix%s" % i].instance.setPixmap(LoadPixmap(event_pic_file))
+ self["programpix%s" % i].instance.setPixmap(LoadPixmap(event_pic_file))
os.remove(event_pic_file)
def createSummary(self):
logger.info("...")
- self.skin_summary = "TvSpielfilmmain_group_summary"
+ self.skin_summary = "ProgramMain_group_summary"
return MYSimpleSummary
def clearValues(self):
@@ -191,7 +190,7 @@ def clearValues(self):
self["description%s" % i].setText('')
self["channelpix%s" % i].instance.setPixmap(gPixmapPtr())
self["liste%s" % i].l.setList([])
- self["programmpix%s" % i].instance.setPixmap(gPixmapPtr())
+ self["programpix%s" % i].instance.setPixmap(gPixmapPtr())
def left(self):
logger.info("...")
@@ -265,21 +264,17 @@ def showMenuCallback(self, page_index=None):
self.page_index = page_index
self.showPage()
- def key_tipps(self):
+ def key_program(self):
logger.info("...")
- self.close("tips")
+ self.close("program")
- def key_programm(self):
+ def key_programsky(self):
logger.info("...")
- self.close("programm")
+ self.close("programsky")
- def key_programmsky(self):
+ def key_programfavo(self):
logger.info("...")
- self.close("programmsky")
-
- def key_programmfavo(self):
- logger.info("...")
- self.close("programmfavo")
+ self.close("programfavo")
def key_easymenu(self):
logger.info("...")
@@ -309,19 +304,6 @@ def key_red(self):
logger.info("...")
self.close("main")
- def key_green(self):
- logger.info("...")
- self.close("tips")
-
- def key_yellow(self):
- logger.info("...")
- curr = self["liste%s" % self.listindex].l.getCurrentSelection()
- if curr and curr[1]:
- self.close("search", curr[1])
-
- def key_search(self):
- self.key_yellow()
-
def key_blue(self):
logger.info("self.channel_list: %s", self.channel_list)
self.mytimecount = max(min(len(self.timelist) - 1, self.mytimecount), 0)
diff --git a/src/TvSpielfilmmain.py b/src/ProgramMain.py
similarity index 98%
rename from src/TvSpielfilmmain.py
rename to src/ProgramMain.py
index b741809..c2300b8 100755
--- a/src/TvSpielfilmmain.py
+++ b/src/ProgramMain.py
@@ -27,10 +27,10 @@
from .Debug import logger
-class TvSpielfilmmain(Screen, EasyMenu):
+class ProgramMain(Screen, EasyMenu):
def __init__(self, session):
logger.info("...")
- self.skinName = "TvSpielfilmmain"
+ self.skinName = "ProgramMain"
Screen.__init__(self, session)
EasyMenu.__init__(self, self)
self["actions"] = ActionMap(
@@ -82,12 +82,12 @@ def buildEntry(self, *args):
def createSummary(self):
logger.info("...")
- self.skin_summary = "TvSpielfilmmain_group_summary"
+ self.skin_summary = "ProgramMain_group_summary"
return MYSimpleSummary
def firststart(self):
logger.info("...")
- if not _tv_config.has_key('date_string'):
+ if 'date_string' not in _tv_config:
read_tvconfig()
_tv_config['date_string'] = strftime("&date=%Y-%m-%d")
@@ -285,7 +285,6 @@ def show_info_Menu(self):
if _channelreference.get(curr[mindex['id']]):
options.append((curr[mindex['channel']] + ' ' + _("zap"), 'playService'))
options.append((_("Add Timer"), 'addtimer'))
- options.append((_("Tv Spielfilm Search"), 'tvsearch'))
options.append(('--', ''))
options.append((_("Sort") + ' ' + _("after") + ' - ' + _("Time") + ' - ' + _("Channel"), 'timechannel'))
options.append((_("Sort") + ' ' + _("after") + ' - ' + _("Channel") + ' - ' + _("Time"), 'channeltime'))
diff --git a/src/Service.py b/src/Service.py
new file mode 100755
index 0000000..877db93
--- /dev/null
+++ b/src/Service.py
@@ -0,0 +1,145 @@
+# coding=utf-8
+
+
+from Screens.Screen import Screen
+from Screens.MessageBox import MessageBox
+from Components.config import ConfigSubsection, ConfigSelection, getConfigListEntry, NoSave
+from Components.ConfigList import ConfigListScreen
+from Components.ActionMap import ActionMap
+from Components.Sources.StaticText import StaticText
+from ServiceReference import ServiceReference
+from .__init__ import _
+from .Debug import logger
+from .MYSimpleChannelSelection import MYSimpleChannelSelection
+
+
+class Service(Screen, ConfigListScreen):
+ def __init__(self, session, mdict=None):
+ logger.info("...")
+ if mdict is None:
+ mdict = {}
+ Screen.__init__(self, session)
+ ConfigListScreen.__init__(self, [], session=session)
+ self.skinName = "Service"
+
+ self["key_red"] = StaticText(_("Cancel"))
+ self["key_green"] = StaticText(_("Save"))
+ self["key_yellow"] = StaticText(_("Remove"))
+
+ self["actions"] = ActionMap(
+ ["SetupActions", "ColorActions"],
+ {
+ "cancel": self.keyCancel,
+ "red": self.keyCancel,
+ "yellow": self.keyYellow,
+ "save": self.keySave
+ }
+ )
+ self.mdict = mdict
+ self.destext = {'sd': 'SD ', 'hd': 'HD ', 'uhd': 'UHD ', 'notfound': _('not found')}
+ self["config"].onSelectionChanged.append(self.updateHelp)
+ self.settings = ConfigSubsection()
+ self._createSetup()
+
+ def updateHelp(self):
+ logger.info("...")
+ curr = self["config"].getCurrent()
+ if curr and len(curr) >= 3:
+ if curr[1].getValue() == '':
+ self["key_yellow"].setText('')
+ else:
+ self["key_yellow"].setText(_("Remove"))
+
+ def make_ConfigSelection(self, ename, service, value):
+ logger.info("...")
+ default = 'None'
+ if ename in value and value[ename] and service in value and value[service]:
+ default = value[ename].encode('utf-8')
+ choices = [(default, value[service])]
+ else:
+ default = ''
+ choices = [(default, self.destext['notfound'])]
+ return NoSave(ConfigSelection(default=default, choices=choices))
+
+ def _createSetup(self):
+ logger.info("...")
+ entries = []
+ ttmp = (self.mdict['tname'] if 'tname' in self.mdict else self.destext['notfound'])
+ ttmp += '\tID:' + ('id' in self.mdict and self.mdict['id']) or ''
+ entries.append(getConfigListEntry((ttmp)))
+
+ self.settings.sd = self.make_ConfigSelection('enamesd', 'servicesd', self.mdict)
+ entries.append(getConfigListEntry(self.destext['sd'] + (('enamesd' in self.mdict and self.mdict['enamesd']) or self.destext['notfound']), self.settings.sd, 'sd'))
+
+ self.settings.hd = self.make_ConfigSelection('enamehd', 'servicehd', self.mdict)
+ entries.append(getConfigListEntry(self.destext['hd'] + (('enamehd' in self.mdict and self.mdict['enamehd']) or self.destext['notfound']), self.settings.hd, 'hd'))
+
+ self.settings.uhd = self.make_ConfigSelection('enameuhd', 'serviceuhd', self.mdict)
+ entries.append(getConfigListEntry(self.destext['uhd'] + (('enameuhd' in self.mdict and self.mdict['enameuhd']) or self.destext['notfound']), self.settings.uhd, 'uhd'))
+
+ self["config"].list = entries
+
+ def SimpleChannelCallback(self, *argsref):
+ logger.info("...")
+ if argsref:
+ ename = ServiceReference(argsref[0]).getServiceName().replace('\xc2\x86', '').replace('\xc2\x87', '')
+ eservice = argsref[0].toString()
+ if ename and eservice:
+ curr = self["config"].getCurrent()
+ if curr and len(curr) >= 3:
+ # choice = curr[1].getChoices()
+ choicelist = [(ename, eservice)]
+ curr[1].setChoices(choicelist, ename)
+ curr[1].saved_value = True
+ new = (self.destext[curr[2]] + ename, curr[1], curr[2])
+ self["config"].list[self["config"].getCurrentIndex()] = new
+ self["config"].invalidateCurrent()
+
+ def keyYellow(self):
+ logger.info("...")
+ curr = self["config"].getCurrent()
+ if curr and len(curr) >= 3:
+ def del_curr(res):
+ logger.info("...")
+ if res:
+ choices = [("", self.destext['notfound'])]
+ curr[1].setChoices(choices, '')
+ curr[1].saved_value = True
+ new = (self.destext[curr[2]] + self.destext['notfound'], curr[1], curr[2])
+ self["config"].list[self["config"].getCurrentIndex()] = new
+ self["config"].invalidateCurrent()
+
+ text = "%s\n%s\n\n%s" % (curr[1].getValue(), curr[1].getText(), _('Remove'))
+ self.session.openWithCallback(del_curr, MessageBox, text)
+
+ def keySave(self):
+ logger.info("...")
+ if self["config"].isChanged():
+ if self.settings.sd.saved_value:
+ self.mdict['enamesd'] = self.settings.sd.getValue()
+ if self.settings.sd.getText() == self.destext['notfound']:
+ self.mdict['servicesd'] = ''
+ else:
+ self.mdict['servicesd'] = self.settings.sd.getText()
+ if self.settings.hd.saved_value:
+ self.mdict['enamehd'] = self.settings.hd.getValue()
+ if self.settings.hd.getText() == self.destext['notfound']:
+ self.mdict['servicehd'] = ''
+ else:
+ self.mdict['servicehd'] = self.settings.hd.getText()
+ if self.settings.uhd.saved_value:
+ self.mdict['enameuhd'] = self.settings.uhd.getValue()
+ if self.settings.uhd.getText() == self.destext['notfound']:
+ self.mdict['serviceuhd'] = ''
+ else:
+ self.mdict['serviceuhd'] = self.settings.uhd.getText()
+
+ self.close(True)
+ else:
+ self.close(False)
+
+ def keyOK(self):
+ logger.info("...")
+ curr = self["config"].getCurrent()
+ if curr and len(curr) >= 3:
+ self.session.openWithCallback(self.SimpleChannelCallback, MYSimpleChannelSelection, _("Select"))
diff --git a/src/Setup.py b/src/Setup.py
new file mode 100755
index 0000000..d442567
--- /dev/null
+++ b/src/Setup.py
@@ -0,0 +1,43 @@
+# coding=utf-8
+
+from Screens.Screen import Screen
+from Components.Sources.StaticText import StaticText
+from Components.ConfigList import ConfigListScreen
+from Components.ActionMap import ActionMap
+from Components.config import config, getConfigListEntry
+from .__init__ import _
+from .Debug import logger
+
+
+class Setup(Screen, ConfigListScreen):
+ def __init__(self, session):
+ logger.info("...")
+ Screen.__init__(self, session)
+ ConfigListScreen.__init__(self, [], session=session)
+ self.skinName = "Setup"
+
+ self["key_red"] = StaticText(_("Cancel"))
+ self["key_green"] = StaticText(_("Save"))
+
+ self["actions"] = ActionMap(
+ ["SetupActions"],
+ {
+ "cancel": self.keyCancel,
+ "red": self.keyCancel,
+ "save": self.keySave
+ }
+ )
+
+ self.onLayoutFinish.append(self.firststart)
+ self._createSetup()
+
+ def firststart(self):
+ logger.info("...")
+ self.setTitle("TV Spielfilm" + " - " + _("Setup"))
+
+ def _createSetup(self):
+ logger.info("...")
+ entries = []
+ entries.append(getConfigListEntry(_('Start screen'), config.plugins.tvmagazinecockpit.startscreen))
+
+ self["config"].list = entries
diff --git a/src/TVMagazineCockpit.py b/src/TVMagazineCockpit.py
index 6af5082..72e88eb 100644
--- a/src/TVMagazineCockpit.py
+++ b/src/TVMagazineCockpit.py
@@ -21,9 +21,8 @@
from Components.config import config
from .Debug import logger
-from .TvSpielfilmmain import TvSpielfilmmain
+from .ProgramMain import ProgramMain
from .ProgramColumns import ProgramColumns
-from .TvSpielfilmsearch import TvSpielfilmsearch
from .tvconfig import read_tvconfig
from .ChannelUtils import read_channel_list
@@ -32,38 +31,28 @@ class TVMagazineCockpit():
def __init__(self, session, **_kwargs):
logger.info("...")
self.session = session
- self.screen = None
self.last_screen = None
read_tvconfig()
self.showScreenCallback(config.plugins.tvmagazinecockpit.startscreen.value)
def showScreen(self, screen, *args):
logger.info("screen: %s", screen)
- if screen != TvSpielfilmsearch:
- self.last_screen = screen
- self.screen = screen
self.session.openWithCallback(self.showScreenCallback, screen, *args)
def showScreenCallback(self, *args):
return_screen = args[0] if len(args) > 0 else ""
logger.info("return_screen: %s", return_screen)
- if len(args) > 0:
- args = args[1:] # remove return_screen
- if self.screen == TvSpielfilmsearch:
- self.showScreen(self.last_screen)
- elif return_screen == "main":
- self.showScreen(TvSpielfilmmain)
- elif return_screen == "programm":
+ if return_screen == "programmain":
+ self.showScreen(ProgramMain)
+ elif return_screen == "programdefault":
channel_list = read_channel_list("default")
logger.debug("channel_list: %s", channel_list)
self.showScreen(ProgramColumns, channel_list)
- elif return_screen == "programmsky":
+ elif return_screen == "programsky":
channel_list = read_channel_list("sky")
logger.debug("channel_list: %s", channel_list)
self.showScreen(ProgramColumns, channel_list)
- elif return_screen == "programmfavo":
+ elif return_screen == "programfavo":
channel_list = read_channel_list("favorites")
logger.debug("channel_list: %s", channel_list)
self.showScreen(ProgramColumns, channel_list)
- elif return_screen == "search":
- self.showScreen(TvSpielfilmsearch, *args)
diff --git a/src/TVMagazineCockpit.svg b/src/TVMagazineCockpit.svg
deleted file mode 100644
index d736884..0000000
--- a/src/TVMagazineCockpit.svg
+++ /dev/null
@@ -1,472 +0,0 @@
-
-
-
-
diff --git a/src/TvSpielfilmsearch.py b/src/TvSpielfilmsearch.py
deleted file mode 100755
index 3023d22..0000000
--- a/src/TvSpielfilmsearch.py
+++ /dev/null
@@ -1,232 +0,0 @@
-# coding=utf-8
-
-from Screens.ChoiceBox import ChoiceBox
-from Screens.MessageBox import MessageBox
-from Components.ActionMap import ActionMap
-from Components.Label import Label
-from Components.Sources.StaticText import StaticText
-from Components.config import config
-from Downloader import headers_gzip, MygetPage, http_failed, _downloads as _state_
-from tools import listmainindex as mindex, tv_search
-from tvconfig import read_ServiceReference, read_tvconfig_search, write_tvconfig_search
-from _tvdict import _tvressearch, _channelreference, _tv_config_search
-from Plugins.SystemPlugins.Toolkit.NTIVirtualKeyBoard import NTIVirtualKeyBoard
-from .tvspielfilmsetup import TvSpielfilmsearchSetup
-from .EventDetails import EventDetails
-from .__init__ import _
-from .Debug import logger
-from .TvSpielfilmmain import TvSpielfilmmain
-
-
-class TvSpielfilmsearch(TvSpielfilmmain):
- def __init__(self, session, searchstr=""):
- logger.info("...")
- if searchstr == '':
- searchval = session.nav.getCurrentService()
- if searchval:
- info = searchval.info()
- event = info.getEvent(0) # 0 = now, 1 = next
- searchstr = event.getEventName() if event else ''
- self.search_val = searchstr
- self["message"] = Label()
- TvSpielfilmmain.__init__(self, session)
- self.skinName = "TvSpielfilmmain"
- self["actions"] = ActionMap(
- ["TVS_Actions"],
- {
- "ok": self.key_ok,
- "cancel": self.close,
- "blue": self.key_blue,
- "yellow": self.key_yellow,
- # "green": self.key_green,
- "red": self.key_red,
- "info": self.show_info_Menu,
- "menu": self.showMenu
- },
- -1
- )
- self["key_red"] = StaticText(_("Abort"))
- self["key_green"] = StaticText('')
- self["key_yellow"] = StaticText(_("search history"))
- self["key_blue"] = StaticText(_("Manual Scan"))
- self._tv_searchchange = False
- self.savehistory = True
-
- def firststart(self):
- logger.info("...")
- _tvressearch.clear()
- read_tvconfig_search()
- if not _channelreference:
- read_ServiceReference()
- self.download_page()
-
- def download_page(self, url=None):
- logger.info("url: %s", url)
- self["message"].text = _('Download started...')
- self["message"].show()
-
- if url is None:
-
- def clean(res):
- return res.replace(" ", "+")
-
- if _tv_config_search.get('searchfilter'):
- minleng = 5
- if _tv_config_search['searchfilter'].get('colon', True):
- # minleng = 5
- find_val = self.search_val.find(": ")
- if find_val >= minleng:
- self.search_val = self.search_val[:find_val].strip()
- if _tv_config_search['searchfilter'].get('stroke', False):
- find_val = self.search_val.find(" -")
- if find_val >= minleng:
- self.search_val = self.search_val[:find_val].strip()
- if _tv_config_search['searchfilter'].get('bracket', True):
- find_val = self.search_val.find("(")
- if find_val >= minleng:
- self.search_val = self.search_val[:find_val].strip()
- url = 'https://www.tvspielfilm.de/suche/tvs-suche,,ApplicationSearch.html?q=%s&tab=TV-Sendungen' % (clean(self.search_val))
- if url:
- self.download.deferCanceler()
- if self.download.finished():
- self.download.work.clear()
- self.updateTitle()
- self.download.work['1'] = '1'
- self.download.run(MygetPage, url=url, headers=headers_gzip).addCallback(self.result_back, 1).addErrback(http_failed)
- else:
- self.download.work['cancel'] = 'cancel'
-
- def result_back(self, result, pagenumber=1):
- logger.info("...")
- if result and _state_['state']:
- val, pageres = tv_search(result, pagenumber)
- if val:
- del result
- if 'cancel' in self.download.work:
- self["message"].text = '{0}'.format(_('Cancelling...'))
- else:
- self["liste"].extendList(val)
- self["message"].text = '{0} {1}: {2} {3}: {4}'.format(_('Loading...'), _('Page'), pagenumber, _('Entries'), self["liste"].count())
- if pageres:
- for url, page in pageres:
- if page not in self.download.work:
- self.download.work[page] = page
- self.download.run(MygetPage, url=url, headers=headers_gzip).addCallback(self.result_back, page).addErrback(http_failed)
-
- if self.download.finished():
- self.download.deferCanceler()
-
- if self["liste"].count():
- self["message"].hide()
- self.updateTitle()
- # print 'sort default'
- self["liste"].sort(key=lambda x: int(x[mindex['index']]))
- if self.savehistory and _tv_config_search.get('searchfilter') and _tv_config_search['searchfilter'].get('historylength', 0) > 0 and len(val) > 0:
- if self.search_val not in _tv_config_search['searchfilter']['history']:
- _tv_config_search['searchfilter']['history'].insert(0, self.search_val)
- maxLen = _tv_config_search['searchfilter'].get('historylength', 0)
- if len(_tv_config_search['searchfilter']['history']) > maxLen:
- del _tv_config_search['searchfilter']['history'][maxLen:]
- self._tv_searchchange = True
- else:
- self["message"].show()
- self["message"].text = _('Nothing found...')
-
- def updateTitle(self):
- logger.info("...")
- title = "{0} {1} {2} '{3}' {4}".format("Tv Spielfilm", _("Search for"), self.search_val, self["liste"].count(), _('Entries'))
- count = self["liste"].count()
- if count:
- title += ' - {0} {1}'.format(count, _('Entries'))
- self.setTitle(title)
-
- def show_info_Menu(self):
- logger.info("...")
- curr = self["liste"].getCurrent()
- if curr and len(curr) >= mindex['listend']:
- selection = 0
- options = []
- if _channelreference.get(curr[mindex['id']]):
- options.append((curr[mindex['channel']] + ' ' + _("zap"), 'playService'))
- options.append((_("Add Timer"), 'addtimer'))
-
- if options:
- self.session.openWithCallback(
- self.menu_info_Callback,
- ChoiceBox,
- title=_("Select"),
- list=options,
- selection=selection
- )
-
- def showMenu(self):
- logger.info("...")
- self.session.open(TvSpielfilmsearchSetup)
-
- def key_ok(self):
- logger.info("...")
- curr = self["liste"].getCurrent()
- if curr and curr[mindex['channel']] and len(curr) >= mindex['listend']:
- if curr[mindex['urlsendung']].startswith('http'):
- self.session.open(EventDetails, curr)
-
- def key_red(self):
- logger.info("...")
- if self.download.finished():
- self.close()
- else:
- self.download.work['cancel'] = 'cancel'
- self.download.deferCanceler()
-
- def key_blue(self):
- logger.info("...")
- self.session.openWithCallback(self.search_back, NTIVirtualKeyBoard, title=_("Enter text to search for"), text=self.search_val)
-
- def key_yellow(self, epgsearch=None):
- logger.info("...")
- options = []
- self.savehistory = True
- titlebartext = ''
- if epgsearch:
- options = [(x, False) for x in config.plugins.epgsearch.history.value]
- titlebartext = _("EPG Search") + ' ' + _("search history")
- elif _tv_config_search.get('searchfilter'):
- options = [(x.encode('utf-8'), True) for x in _tv_config_search['searchfilter']['history']]
- titlebartext = "Tv Spielfilm " + _("search history")
- if options:
- self.session.openWithCallback(
- self.key_yellow_Callback,
- ChoiceBox,
- title=_("Select text to search for"),
- titlebartext=titlebartext,
- list=options,
- )
- else:
- self.session.open(
- MessageBox,
- _("No history"),
- type=MessageBox.TYPE_INFO
- )
-
- def key_yellow_Callback(self, answer):
- logger.info("...")
- if answer and answer[0]:
- self.savehistory = answer[1]
- self.search_back(answer[0])
-
- def search_back(self, query=None):
- logger.info("...")
- if query:
- self.search_val = query
- self.setTitle("Tv Spielfilm")
- self["liste"].clearList()
- _tvressearch.clear()
- self.download_page()
-
- def __onClose__(self):
- logger.info("...")
- _state_['state'] = False
- self.download.deferCanceler()
- if self._tv_searchchange:
- write_tvconfig_search()
- _tv_config_search.clear()
diff --git a/src/Version.py b/src/Version.py
index a4970c9..f4de9fe 100644
--- a/src/Version.py
+++ b/src/Version.py
@@ -21,6 +21,6 @@
PLUGIN = "TVMagazineCockpit"
ID = "TVC"
-VERSION = "0.10.1"
+VERSION = "0.11.1"
COPYRIGHT = "2018-2024 by dream-alpha"
LICENSE = "This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version."
diff --git a/src/_tvdict.py b/src/_tvdict.py
index 5d3a1ab..1da7390 100644
--- a/src/_tvdict.py
+++ b/src/_tvdict.py
@@ -33,7 +33,7 @@
listprogindex = {}
listprogindex['channel'] = 0
listprogindex['channelpix'] = 1
-listprogindex['programmpixurl'] = 2
+listprogindex['programpixurl'] = 2
listprogindex['time'] = 3
listprogindex['title'] = 4
listprogindex['title2'] = 5
diff --git a/src/locale/de/LC_MESSAGES/TVMagazineCockpit.mo b/src/locale/de/LC_MESSAGES/TVMagazineCockpit.mo
index a214796..5295320 100644
Binary files a/src/locale/de/LC_MESSAGES/TVMagazineCockpit.mo and b/src/locale/de/LC_MESSAGES/TVMagazineCockpit.mo differ
diff --git a/src/logos/PHOENIX.png b/src/logos/PHOENIX.png
deleted file mode 100755
index af619d3..0000000
Binary files a/src/logos/PHOENIX.png and /dev/null differ
diff --git a/src/logos/PROSIEBEN.png b/src/logos/PROSIEBEN.png
deleted file mode 100755
index 44ce381..0000000
Binary files a/src/logos/PROSIEBEN.png and /dev/null differ
diff --git a/src/logos/SAT.1.png b/src/logos/SAT.1.png
deleted file mode 100755
index 911fb01..0000000
Binary files a/src/logos/SAT.1.png and /dev/null differ
diff --git a/src/logos/SPORT1.png b/src/logos/SPORT1.png
deleted file mode 100755
index eef4c05..0000000
Binary files a/src/logos/SPORT1.png and /dev/null differ
diff --git a/src/logos/TELE 5.png b/src/logos/TELE 5.png
deleted file mode 100755
index 8693586..0000000
Binary files a/src/logos/TELE 5.png and /dev/null differ
diff --git a/src/org_channels.json b/src/org_channels.json
deleted file mode 100644
index 2b5408a..0000000
--- a/src/org_channels.json
+++ /dev/null
@@ -1,2697 +0,0 @@
-{
- "channels": [
- [
- "ARD",
- {
- "enamehd": "Das Erste HD",
- "enamesd": "Das Erste",
- "enameuhd": "",
- "id": "ARD",
- "servicehd": "1:0:19:283D:3FB:1:C00000:0:0:0:",
- "servicesd": "1:0:1:6DCA:44D:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Das Erste"
- }
- ],
- [
- "ZDF",
- {
- "enamehd": "ZDF HD",
- "enamesd": "ZDF",
- "enameuhd": "",
- "id": "ZDF",
- "servicehd": "1:0:19:2B66:3F3:1:C00000:0:0:0:",
- "servicesd": "1:0:1:6D66:437:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "ZDF"
- }
- ],
- [
- "3SAT",
- {
- "enamehd": "3sat HD",
- "enamesd": "3sat",
- "enameuhd": "",
- "id": "3SAT",
- "servicehd": "1:0:19:2B8E:3F2:1:C00000:0:0:0:",
- "servicesd": "1:0:1:6D67:437:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "3sat"
- }
- ],
- [
- "SAT1",
- {
- "enamehd": "SAT.1 HD",
- "enamesd": "SAT.1",
- "enameuhd": "",
- "id": "SAT1",
- "servicehd": "1:0:19:EF74:3F9:1:C00000:0:0:0:",
- "servicesd": "1:0:1:445C:453:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "SAT.1"
- }
- ],
- [
- "SAT1G",
- {
- "enamehd": "SAT.1 Gold HD",
- "enamesd": "SAT.1 Gold",
- "enameuhd": "",
- "id": "SAT1G",
- "servicehd": "1:0:19:30D4:413:1:C00000:0:0:0:",
- "servicesd": "1:0:1:4460:453:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "SAT.1 Gold"
- }
- ],
- [
- "RTL",
- {
- "enamehd": "RTL HD",
- "enamesd": "RTL Television",
- "enameuhd": "RTL UHD",
- "id": "RTL",
- "servicehd": "1:0:19:EF10:421:1:C00000:0:0:0:",
- "servicesd": "1:0:1:2EE3:441:1:C00000:0:0:0:",
- "serviceuhd": "1:0:1F:307A:3F5:1:C00000:0:0:0:",
- "tname": "RTL"
- }
- ],
- [
- "RTL2",
- {
- "enamehd": "RTLZWEI HD",
- "enamesd": "RTLZWEI",
- "enameuhd": "RTLII UHD",
- "id": "RTL2",
- "servicehd": "1:0:19:EF15:421:1:C00000:0:0:0:",
- "servicesd": "1:0:1:2EF4:441:1:C00000:0:0:0:",
- "serviceuhd": "1:0:1:3070:3F5:1:C00000:0:0:0:",
- "tname": "RTL II"
- }
- ],
- [
- "RTLPL",
- {
- "enamehd": "",
- "enamesd": "RTLup",
- "enameuhd": "",
- "id": "RTLPL",
- "servicehd": "",
- "servicesd": "1:0:1:2F30:441:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "RTLup"
- }
- ],
- [
- "PRO7",
- {
- "enamehd": "ProSieben HD",
- "enamesd": "ProSieben",
- "enameuhd": "",
- "id": "PRO7",
- "servicehd": "1:0:19:EF75:3F9:1:C00000:0:0:0:",
- "servicesd": "1:0:1:445D:453:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "ProSieben"
- }
- ],
- [
- "VOX",
- {
- "enamehd": "VOX HD",
- "enamesd": "VOX",
- "enameuhd": "",
- "id": "VOX",
- "servicehd": "1:0:19:EF11:421:1:C00000:0:0:0:",
- "servicesd": "1:0:1:2F1C:441:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "VOX"
- }
- ],
- [
- "K1",
- {
- "enamehd": "kabel eins HD",
- "enamesd": "kabel eins",
- "enameuhd": "",
- "id": "K1",
- "servicehd": "1:0:19:EF76:3F9:1:C00000:0:0:0:",
- "servicesd": "1:0:1:445E:453:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "kabel eins"
- }
- ],
- [
- "SUPER",
- {
- "enamehd": "SUPER RTL HD",
- "enamesd": "SUPER RTL",
- "enameuhd": "",
- "id": "SUPER",
- "servicehd": "1:0:19:2E9B:411:1:C00000:0:0:0:",
- "servicesd": "1:0:1:2F08:441:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "SUPER RTL"
- }
- ],
- [
- "ORF1",
- {
- "enamehd": "ORF1 HD",
- "enamesd": "ORF1",
- "enameuhd": "",
- "id": "ORF1",
- "servicehd": "1:0:19:132F:3EF:1:C00000:0:0:0:",
- "servicesd": "1:0:1:32C9:45D:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "ORF eins"
- }
- ],
- [
- "ORF2",
- {
- "enamehd": "ORF2B HD",
- "enamesd": "ORF2",
- "enameuhd": "",
- "id": "ORF2",
- "servicehd": "1:0:19:33F7:3ED:1:C00000:0:0:0:",
- "servicesd": "1:0:1:32CA:45D:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "ORF 2"
- }
- ],
- [
- "ATV",
- {
- "enamehd": "ATV HD",
- "enamesd": "ATV",
- "enameuhd": "",
- "id": "ATV",
- "servicehd": "1:0:19:33AC:3EB:1:C00000:0:0:0:",
- "servicesd": "1:0:1:32D4:45D:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "ATV"
- }
- ],
- [
- "ATV2",
- {
- "enamehd": "",
- "enamesd": "ATV2",
- "enameuhd": "",
- "id": "ATV2",
- "servicehd": "",
- "servicesd": "1:0:1:33A7:3EB:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "ATV II"
- }
- ],
- [
- "FES",
- {
- "enamehd": "ONE HD",
- "enamesd": "ONE",
- "enameuhd": "",
- "id": "FES",
- "servicehd": "1:0:19:2888:40F:1:C00000:0:0:0:",
- "servicesd": "1:0:1:7032:41B:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "ONE"
- }
- ],
- [
- "2NEO",
- {
- "enamehd": "zdf_neo HD",
- "enamesd": "zdf_neo",
- "enameuhd": "",
- "id": "2NEO",
- "servicehd": "1:0:19:2B7A:3F3:1:C00000:0:0:0:",
- "servicesd": "1:0:1:6D6E:437:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "ZDFneo"
- }
- ],
- [
- "ZINFO",
- {
- "enamehd": "ZDFinfo HD",
- "enamesd": "ZDFinfo",
- "enameuhd": "",
- "id": "ZINFO",
- "servicehd": "1:0:19:2BA2:3F2:1:C00000:0:0:0:",
- "servicesd": "1:0:1:6D6B:437:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "ZDFinfo"
- }
- ],
- [
- "VOXUP",
- {
- "enamehd": "",
- "enamesd": "VOXup",
- "enameuhd": "",
- "id": "VOXUP",
- "servicehd": "",
- "servicesd": "1:0:1:7094:443:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "VOXup"
- }
- ],
- [
- "WDR",
- {
- "enamehd": "WDR HD Bielefeld",
- "enamesd": "WDR Bielefeld",
- "enameuhd": "",
- "id": "WDR",
- "servicehd": "1:0:19:6EAE:3FD:1:C00000:0:0:0:",
- "servicesd": "1:0:1:6E92:4B1:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "WDR"
- }
- ],
- [
- "ANIXE",
- {
- "enamehd": "ANIXE HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "ANIXE",
- "servicehd": "1:0:19:526C:41D:1:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "ANIXE"
- }
- ],
- [
- "SAT1E",
- {
- "enamehd": "",
- "enamesd": "SAT.1 emotions",
- "enameuhd": "",
- "id": "SAT1E",
- "servicehd": "",
- "servicesd": "1:0:16:14C1:407:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "SAT.1 emotions"
- }
- ],
- [
- "K1CLA",
- {
- "enamehd": "",
- "enamesd": "kabel eins classics",
- "enameuhd": "",
- "id": "K1CLA",
- "servicehd": "",
- "servicesd": "1:0:16:14C2:407:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "kabel eins CLASSICS"
- }
- ],
- [
- "SKY-K",
- {
- "enamehd": "Sky Krimi HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "SKY-K",
- "servicehd": "1:0:19:17:4:85:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Sky Krimi"
- }
- ],
- [
- "HEIMA",
- {
- "enamehd": "",
- "enamesd": "Heimatkanal",
- "enameuhd": "",
- "id": "HEIMA",
- "servicehd": "",
- "servicesd": "1:0:16:16:2:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Heimatkanal"
- }
- ],
- [
- "DMAX",
- {
- "enamehd": "DMAX HD",
- "enamesd": "DMAX",
- "enameuhd": "",
- "id": "DMAX",
- "servicehd": "1:0:19:151A:455:1:C00000:0:0:0:",
- "servicesd": "1:0:1:3F:21:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "DMAX"
- }
- ],
- [
- "13TH",
- {
- "enamehd": "13th Street HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "13TH",
- "servicehd": "1:0:19:7F:D:85:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "13th Street"
- }
- ],
- [
- "CIN",
- {
- "enamehd": "Sky Cinema Premieren HD",
- "enamesd": "Sky Cinema Premieren",
- "enameuhd": "",
- "id": "CIN",
- "servicehd": "1:0:19:83:6:85:C00000:0:0:0:",
- "servicesd": "1:0:16:A:4:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Sky Cinema Premieren"
- }
- ],
- [
- "CIN24",
- {
- "enamehd": "Sky Cinema Premieren +24 HD",
- "enamesd": "Sky Cinema Premieren +24",
- "enameuhd": "",
- "id": "CIN24",
- "servicehd": "1:0:19:87:B:85:C00000:0:0:0:",
- "servicesd": "1:0:16:2B:6:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Sky Cinema Premieren +24"
- }
- ],
- [
- "SKYCS",
- {
- "enamehd": "Sky Cinema 007 HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "SKYCS",
- "servicehd": "1:0:19:6F:D:85:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Sky Cinema Special HD"
- }
- ],
- [
- "SKY-H",
- {
- "enamehd": "Sky Cinema Best Of HD",
- "enamesd": "Sky Cinema Best Of",
- "enameuhd": "",
- "id": "SKY-H",
- "servicehd": "1:0:19:6B:C:85:C00000:0:0:0:",
- "servicesd": "1:0:16:29:4:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Sky Cinema Best Of"
- }
- ],
- [
- "SKYTH",
- {
- "enamehd": "Sky Cinema Thriller HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "SKYTH",
- "servicehd": "1:0:19:B:4:85:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Sky Cinema Thriller HD"
- }
- ],
- [
- "SKYAT",
- {
- "enamehd": "Sky Atlantic HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "SKYAT",
- "servicehd": "1:0:19:6E:D:85:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Sky Atlantic HD"
- }
- ],
- [
- "SKY-N",
- {
- "enamehd": "",
- "enamesd": "Sky Cinema Classics HD",
- "enameuhd": "",
- "id": "SKY-N",
- "searchtyp": "service",
- "servicehd": "",
- "servicesd": "1:0:16:204:6:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Sky Cinema Classics"
- }
- ],
- [
- "SKY-A",
- {
- "enamehd": "Sky Cinema Action HD",
- "enamesd": "Sky Cinema Action",
- "enameuhd": "",
- "id": "SKY-A",
- "servicehd": "1:0:19:74:9:85:C00000:0:0:0:",
- "servicesd": "1:0:16:9:3:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Sky Action"
- }
- ],
- [
- "SKY-F",
- {
- "enamehd": "Sky Cinema Family HD",
- "enamesd": "Sky Cinema Family",
- "enameuhd": "",
- "id": "SKY-F",
- "servicehd": "1:0:19:8B:2:85:C00000:0:0:0:",
- "servicesd": "1:0:16:197:4:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Sky Family"
- }
- ],
- [
- "SKY-C",
- {
- "enamehd": "",
- "enamesd": "Sky Cinema Fun HD",
- "enameuhd": "",
- "id": "SKY-C",
- "servicehd": "",
- "servicesd": "1:0:16:8:3:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Sky Cinema Fun"
- }
- ],
- [
- "ROM",
- {
- "enamehd": "",
- "enamesd": "Romance TV",
- "enameuhd": "",
- "id": "ROM",
- "servicehd": "",
- "servicesd": "1:0:16:206:2:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Romance TV"
- }
- ],
- [
- "SKY1",
- {
- "enamehd": "Sky One HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "SKY1",
- "servicehd": "1:0:19:93:2:85:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Sky 1"
- }
- ],
- [
- "TNT-F",
- {
- "enamehd": "Warner TV Film HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "TNT-F",
- "servicehd": "1:0:19:8C:4:85:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Warner TV Film"
- }
- ],
- [
- "TNT-C",
- {
- "enamehd": "Warner TV Comedy HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "TNT-C",
- "servicehd": "1:0:19:88:B:85:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Warner TV Comedy"
- }
- ],
- [
- "TNT-S",
- {
- "enamehd": "Warner TV Serie HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "TNT-S",
- "servicehd": "1:0:19:7B:9:85:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Warner TV Serie"
- }
- ],
- [
- "UNIVE",
- {
- "enamehd": "Universal TV HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "UNIVE",
- "servicehd": "1:0:19:65:9:85:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Universal Channel HD"
- }
- ],
- [
- "SCIFI",
- {
- "enamehd": "SYFY HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "SCIFI",
- "servicehd": "1:0:19:7E:C:85:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Syfy"
- }
- ],
- [
- "KINOW",
- {
- "enamehd": "",
- "enamesd": "Kinowelt TV",
- "enameuhd": "",
- "id": "KINOW",
- "servicehd": "",
- "servicesd": "1:0:16:196:2:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "KinoweltTV"
- }
- ],
- [
- "MOVTV",
- {
- "enamehd": "",
- "enamesd": "Motorvision TV",
- "enameuhd": "",
- "id": "MOVTV",
- "servicehd": "",
- "servicesd": "1:0:16:A8:B:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Motorvision TV"
- }
- ],
- [
- "HDDIS",
- {
- "enamehd": "Discovery HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "HDDIS",
- "servicehd": "1:0:19:82:6:85:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Discovery HD"
- }
- ],
- [
- "CRIN",
- {
- "enamehd": "",
- "enamesd": "12382H SID 0x192",
- "enameuhd": "",
- "id": "CRIN",
- "servicehd": "",
- "servicesd": "1:0:16:192:B:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Crime + Investigation"
- }
- ],
- [
- "SP-GE",
- {
- "enamehd": "Spiegel Geschichte HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "SP-GE",
- "servicehd": "1:0:19:89:10:85:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "SPIEGEL Geschichte"
- }
- ],
- [
- "HISHD",
- {
- "enamehd": "HISTORY Channel HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "HISHD",
- "servicehd": "1:0:19:71:B:85:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "HISTORY HD"
- }
- ],
- [
- "N-GHD",
- {
- "enamehd": "NatGeo HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "N-GHD",
- "servicehd": "1:0:19:70:D:85:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "National Geographic HD"
- }
- ],
- [
- "SPTVW",
- {
- "enamehd": "",
- "enamesd": "Curiosity Channel powered by Spiegel",
- "enameuhd": "",
- "id": "SPTVW",
- "servicehd": "",
- "servicesd": "1:0:16:31:D:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Curiosity Channel"
- }
- ],
- [
- "N-GW",
- {
- "enamehd": "Nat Geo Wild HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "N-GW",
- "servicehd": "1:0:19:76:6:85:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "NAT GEO WILD"
- }
- ],
- [
- "TLC",
- {
- "enamehd": "TLC HD",
- "enamesd": "TLC",
- "enameuhd": "",
- "id": "TLC",
- "servicehd": "1:0:19:2774:409:1:C00000:0:0:0:",
- "servicesd": "1:0:1:304:5:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "TLC"
- }
- ],
- [
- "NTV",
- {
- "enamehd": "ntv HD",
- "enamesd": "ntv",
- "enameuhd": "",
- "id": "NTV",
- "servicehd": "1:0:19:EF14:421:1:C00000:0:0:0:",
- "servicesd": "1:0:1:2F3A:441:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "n-tv"
- }
- ],
- [
- "WELT",
- {
- "enamehd": "WELT HD",
- "enamesd": "WELT",
- "enameuhd": "",
- "id": "WELT",
- "servicehd": "1:0:19:5274:41D:1:C00000:0:0:0:",
- "servicesd": "1:0:1:445F:453:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "WELT"
- }
- ],
- [
- "N24DOKU",
- {
- "enamehd": "",
- "enamesd": "N24 DOKU",
- "enameuhd": "",
- "id": "N24DOKU",
- "servicehd": "",
- "servicesd": "1:0:1:30:5:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "N24 Doku"
- }
- ],
- [
- "N3",
- {
- "enamehd": "NDR FS HH HD",
- "enamesd": "NDR FS HH",
- "enameuhd": "",
- "id": "N3",
- "servicehd": "1:0:19:2859:401:1:C00000:0:0:0:",
- "servicesd": "1:0:1:6E41:431:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "NDR"
- }
- ],
- [
- "BR",
- {
- "enamehd": "BR Fernsehen Nord HD",
- "enamesd": "BR Fernsehen Nord",
- "enameuhd": "",
- "id": "BR",
- "servicehd": "1:0:19:2856:401:1:C00000:0:0:0:",
- "servicesd": "1:0:1:6DCE:44D:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "BR"
- }
- ],
- [
- "SWR",
- {
- "enamehd": "SWR BW HD",
- "enamesd": "SWR Fernsehen BW",
- "enameuhd": "",
- "id": "SWR",
- "servicehd": "1:0:19:283F:3FB:1:C00000:0:0:0:",
- "servicesd": "1:0:1:6DD1:44D:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "SWR/SR"
- }
- ],
- [
- "TVM",
- {
- "enamehd": "m\u00fcnchen.tv HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "TVM",
- "servicehd": "1:0:19:16A9:3FF:1:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "m\u00fcnchen.tv"
- }
- ],
- [
- "HR",
- {
- "enamehd": "hr-fernsehen HD",
- "enamesd": "hr-fernsehen",
- "enameuhd": "",
- "id": "HR",
- "servicehd": "1:0:19:2873:425:1:C00000:0:0:0:",
- "servicesd": "1:0:1:6DCC:44D:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "HR"
- }
- ],
- [
- "MDR",
- {
- "enamehd": "MDR Sachsen HD",
- "enamesd": "MDR Sachsen",
- "enameuhd": "",
- "id": "MDR",
- "servicehd": "1:0:19:2870:425:1:C00000:0:0:0:",
- "servicesd": "1:0:1:6E44:431:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "MDR"
- }
- ],
- [
- "RBB",
- {
- "enamehd": "rbb Berlin HD",
- "enamesd": "rbb Berlin",
- "enameuhd": "",
- "id": "RBB",
- "servicehd": "1:0:19:286F:425:1:C00000:0:0:0:",
- "servicesd": "1:0:1:6E2E:431:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "RBB"
- }
- ],
- [
- "AXN",
- {
- "enamehd": "",
- "enamesd": "AXN Deutschland",
- "enameuhd": "",
- "id": "AXN",
- "servicehd": "",
- "servicesd": "1:0:16:101D:451:35:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "AXN"
- }
- ],
- [
- "ARTE",
- {
- "enamehd": "arte HD",
- "enamesd": "arte",
- "enameuhd": "",
- "id": "ARTE",
- "servicehd": "1:0:19:283E:3FB:1:C00000:0:0:0:",
- "servicesd": "1:0:1:7034:41B:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "ARTE"
- }
- ],
- [
- "SIXX",
- {
- "enamehd": "SIXX HD",
- "enamesd": "SIXX",
- "enameuhd": "",
- "id": "SIXX",
- "servicehd": "1:0:19:EF77:3F9:1:C00000:0:0:0:",
- "servicesd": "1:0:1:308:5:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "sixx"
- }
- ],
- [
- "RMTV",
- {
- "enamehd": "",
- "enamesd": "rhein main tv",
- "enameuhd": "",
- "id": "RMTV",
- "servicehd": "",
- "servicesd": "1:0:1:3146:459:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "rheinmain tv"
- }
- ],
- [
- "RTL-N",
- {
- "enamehd": "NITRO HD",
- "enamesd": "NITRO",
- "enameuhd": "",
- "id": "RTL-N",
- "servicehd": "1:0:19:2EAF:411:1:C00000:0:0:0:",
- "servicesd": "1:0:1:2F1D:441:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "NITRO"
- }
- ],
- [
- "K1DOKU",
- {
- "enamehd": "",
- "enamesd": "kabel eins Doku",
- "enameuhd": "",
- "id": "K1DOKU",
- "servicehd": "",
- "servicesd": "1:0:1:4465:453:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "kabel eins Doku"
- }
- ],
- [
- "PRO7M",
- {
- "enamehd": "Pro7 MAXX HD",
- "enamesd": "Pro7 MAXX",
- "enameuhd": "",
- "id": "PRO7M",
- "servicehd": "1:0:19:EF78:3F9:1:C00000:0:0:0:",
- "servicesd": "1:0:1:4461:453:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "ProSieben MAXX"
- }
- ],
- [
- "TELE5",
- {
- "enamehd": "TELE 5 HD",
- "enamesd": "TELE 5",
- "enameuhd": "",
- "id": "TELE5",
- "servicehd": "1:0:19:1519:455:1:C00000:0:0:0:",
- "servicesd": "1:0:1:33:21:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "TELE 5"
- }
- ],
- [
- "ALPHA",
- {
- "enamehd": "ARD alpha HD",
- "enamesd": "ARD-alpha bis 14.12.2021 zu HD wechseln",
- "enameuhd": "",
- "id": "ALPHA",
- "servicehd": "1:0:19:2889:40F:1:C00000:0:0:0:",
- "servicesd": "1:0:1:6F47:445:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "ARD-alpha"
- }
- ],
- [
- "TAG24",
- {
- "enamehd": "tagesschau24 HD",
- "enamesd": "tagesschau24",
- "enameuhd": "",
- "id": "TAG24",
- "servicehd": "1:0:19:2887:40F:1:C00000:0:0:0:",
- "servicesd": "1:0:1:7031:41B:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "tagesschau 24"
- }
- ],
- [
- "3PLUS",
- {
- "enamehd": "",
- "enamesd": "3+",
- "enameuhd": "",
- "id": "3PLUS",
- "servicehd": "",
- "servicesd": "1:0:19:1260:3F7:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "3+"
- }
- ],
- [
- "HGTV",
- {
- "enamehd": "",
- "enamesd": "HGTV",
- "enameuhd": "",
- "id": "HGTV",
- "servicehd": "",
- "servicesd": "1:0:1:26:F:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Home & Garden TV"
- }
- ],
- [
- "ORF3",
- {
- "enamehd": "ORF III HD",
- "enamesd": "ORF III",
- "enameuhd": "",
- "id": "ORF3",
- "servicehd": "1:0:19:33FC:3ED:1:C00000:0:0:0:",
- "servicesd": "1:0:1:332D:45B:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "ORF III"
- }
- ],
- [
- "ORFSP",
- {
- "enamehd": "ORF SPORT+ HD",
- "enamesd": "ORF SPORT+",
- "enameuhd": "",
- "id": "ORFSP",
- "servicehd": "1:0:19:33FD:3ED:1:C00000:0:0:0:",
- "servicesd": "1:0:1:33A5:3EB:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "ORF SPORT +"
- }
- ],
- [
- "PULS4",
- {
- "enamehd": "PULS 4 HD Austria",
- "enamesd": "PULS 4 Austria",
- "enameuhd": "",
- "id": "PULS4",
- "servicehd": "1:0:19:14B7:407:1:C00000:0:0:0:",
- "servicesd": "1:0:1:4E27:43A:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "PULS 4"
- }
- ],
- [
- "OE24TV",
- {
- "enamehd": "oe24.TV HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "OE24TV",
- "servicehd": "1:0:19:3402:3ED:1:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "oe24.TV"
- }
- ],
- [
- "C-NET",
- {
- "enamehd": "",
- "enamesd": "Cartoon Network",
- "enameuhd": "",
- "id": "C-NET",
- "servicehd": "",
- "servicesd": "1:0:16:194:B:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Cartoon Network"
- }
- ],
- [
- "PHOEN",
- {
- "enamehd": "phoenix HD",
- "enamesd": "phoenix",
- "enameuhd": "",
- "id": "PHOEN",
- "servicehd": "1:0:19:285B:401:1:C00000:0:0:0:",
- "servicesd": "1:0:1:7035:41B:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "PHOENIX"
- }
- ],
- [
- "DWTV",
- {
- "enamehd": "",
- "enamesd": "DW English",
- "enameuhd": "",
- "id": "DWTV",
- "servicehd": "",
- "servicesd": "1:0:1:114E:404:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "DW (Europe)"
- }
- ],
- [
- "CC",
- {
- "enamehd": "ShopLC HD",
- "enamesd": "Comedy Central",
- "enameuhd": "",
- "id": "CC",
- "servicehd": "1:0:19:5273:41D:1:C00000:0:0:0:",
- "servicesd": "1:0:1:7004:436:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "COMEDY CENTRAL"
- }
- ],
- [
- "KTV",
- {
- "enamehd": "",
- "enamesd": "K-TV",
- "enameuhd": "",
- "id": "KTV",
- "servicehd": "",
- "servicesd": "1:0:1:3139:459:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "K-TV"
- }
- ],
- [
- "WDWTV",
- {
- "enamehd": "",
- "enamesd": "Welt der Wunder",
- "enameuhd": "",
- "id": "WDWTV",
- "servicehd": "",
- "servicesd": "1:0:1:332F:45B:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Welt der Wunder TV"
- }
- ],
- [
- "KIKA",
- {
- "enamehd": "KiKA HD",
- "enamesd": "KiKA",
- "enameuhd": "",
- "id": "KIKA",
- "servicehd": "1:0:19:2B98:3F2:1:C00000:0:0:0:",
- "servicesd": "1:0:1:6D68:437:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "KiKA"
- }
- ],
- [
- "DISNE",
- {
- "enamehd": "Disney Channel HD",
- "enamesd": "Disney Channel",
- "enameuhd": "",
- "id": "DISNE",
- "servicehd": "1:0:19:157C:41F:1:C00000:0:0:0:",
- "servicesd": "1:0:1:701:5:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Disney Channel"
- }
- ],
- [
- "NICK",
- {
- "enamehd": "",
- "enamesd": "Nick/Comedy Central+1",
- "enameuhd": "",
- "id": "NICK",
- "servicehd": "",
- "servicesd": "1:0:1:7008:436:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "nick/MTV+"
- }
- ],
- [
- "NICKJ",
- {
- "enamehd": "",
- "enamesd": "Nick.Jr.",
- "enameuhd": "",
- "id": "NICKJ",
- "servicehd": "",
- "servicesd": "1:0:1:6FFB:436:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Nick Jr."
- }
- ],
- [
- "NICKT",
- {
- "enamehd": "",
- "enamesd": "Nicktoons",
- "enameuhd": "",
- "id": "NICKT",
- "servicehd": "",
- "servicesd": "1:0:16:1B:D:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Nicktoons"
- }
- ],
- [
- "RIC",
- {
- "enamehd": "",
- "enamesd": "RiC",
- "enameuhd": "",
- "id": "RIC",
- "servicehd": "",
- "servicesd": "1:0:1:32DB:45D:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "RiC"
- }
- ],
- [
- "TOGGO",
- {
- "enamehd": "",
- "enamesd": "TOGGO plus",
- "enameuhd": "",
- "id": "TOGGO",
- "servicehd": "",
- "servicesd": "1:0:1:2EFE:441:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "TOGGO plus"
- }
- ],
- [
- "ALJAZ",
- {
- "enamehd": "Al Jazeera English HD",
- "enamesd": "Al Jazeera English",
- "enameuhd": "",
- "id": "ALJAZ",
- "servicehd": "1:0:19:13A7:3EA:1:C00000:0:0:0:",
- "servicesd": "1:0:1:1158:404:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Al Jazeera"
- }
- ],
- [
- "BBC",
- {
- "enamehd": "BBC World News Europe HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "BBC",
- "servicehd": "1:0:1:1389:3EA:1:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "BBC World News"
- }
- ],
- [
- "BILD",
- {
- "enamehd": "BILD HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "BILD",
- "servicehd": "1:0:19:2775:409:1:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Bild TV"
- }
- ],
- [
- "BLM",
- {
- "enamehd": "",
- "enamesd": "Bloomberg Europe TV",
- "enameuhd": "",
- "id": "BLM",
- "servicehd": "",
- "servicesd": "1:0:1:1C20:457:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Bloomberg Europe TV"
- }
- ],
- [
- "CH21",
- {
- "enamehd": "Channel21 HD",
- "enamesd": "Channel21",
- "enameuhd": "",
- "id": "CH21",
- "servicehd": "1:0:19:2778:409:1:C00000:0:0:0:",
- "servicesd": "1:0:1:301:7:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Channel21"
- }
- ],
- [
- "CNBC",
- {
- "enamehd": "CNBC HD",
- "enamesd": "CNBC Europe",
- "enameuhd": "",
- "id": "CNBC",
- "servicehd": "1:0:19:7D:9:85:C00000:0:0:0:",
- "servicesd": "1:0:1:272E:402:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "CNBC"
- }
- ],
- [
- "CNN",
- {
- "enamehd": "",
- "enamesd": "CNN Int.",
- "enameuhd": "",
- "id": "CNN",
- "servicehd": "",
- "servicesd": "1:0:1:1146:404:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "CNN International"
- }
- ],
- [
- "DMC",
- {
- "enamehd": "Deluxe Music HD",
- "enamesd": "DELUXE MUSIC",
- "enameuhd": "",
- "id": "DMC",
- "servicehd": "1:0:19:157F:41F:1:C00000:0:0:0:",
- "servicesd": "1:0:1:41:7:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "DELUXE MUSIC"
- }
- ],
- [
- "DMF",
- {
- "enamehd": "",
- "enamesd": "Deutsches Musik Fernsehen",
- "enameuhd": "",
- "id": "DMF",
- "servicehd": "",
- "servicesd": "1:0:1:313C:459:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Deutsches Musik Fernsehen"
- }
- ],
- [
- "BUTV",
- {
- "enamehd": "Beate Uhse HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "BUTV",
- "servicehd": "1:0:19:85:3:85:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Beate-Uhse.TV"
- }
- ],
- [
- "HSE",
- {
- "enamehd": "HSE HD",
- "enamesd": "HSE SD",
- "enameuhd": "",
- "id": "HSE",
- "servicehd": "1:0:19:5270:41D:1:C00000:0:0:0:",
- "servicesd": "1:0:1:28:21:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "HSE24"
- }
- ],
- [
- "JUKE",
- {
- "enamehd": "",
- "enamesd": "Jukebox",
- "enameuhd": "",
- "id": "JUKE",
- "servicehd": "",
- "servicesd": "1:0:16:191:9:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Jukebox"
- }
- ],
- [
- "MEZZO",
- {
- "enamehd": "",
- "enamesd": "MEZZO",
- "enameuhd": "",
- "id": "MEZZO",
- "servicehd": "",
- "servicesd": "1:0:19:1F4A:42E:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Mezzo"
- }
- ],
- [
- "MTV",
- {
- "enamehd": "MTV HD",
- "enamesd": "MTV",
- "enameuhd": "",
- "id": "MTV",
- "servicehd": "1:0:19:2777:409:1:C00000:0:0:0:",
- "servicesd": "1:0:1:7006:436:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "MTV"
- }
- ],
- [
- "MTV-D",
- {
- "enamehd": "",
- "enamesd": "MTV Dance",
- "enameuhd": "",
- "id": "MTV-D",
- "servicehd": "",
- "servicesd": "1:0:1:6FEF:436:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Club MTV"
- }
- ],
- [
- "MTV-H",
- {
- "enamehd": "",
- "enamesd": "MTV Hits",
- "enameuhd": "",
- "id": "MTV-H",
- "servicehd": "",
- "servicesd": "1:0:1:6FEE:436:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "MTV Hits"
- }
- ],
- [
- "NHK",
- {
- "enamehd": "",
- "enamesd": "NHK WORLD-JPN",
- "enameuhd": "",
- "id": "NHK",
- "servicehd": "",
- "servicesd": "1:0:1:139D:3EA:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "NHK WORLD TV"
- }
- ],
- [
- "BULI",
- {
- "enamehd": "",
- "enamesd": "Sky Sport Bundesliga",
- "enameuhd": "Sky Sport Bundesliga UHD",
- "id": "BULI",
- "servicehd": "",
- "servicesd": "1:0:16:DF:4:85:C00000:0:0:0:",
- "serviceuhd": "1:0:1F:228:10:85:C00000:0:0:0:",
- "tname": "Sky Bundesliga"
- }
- ],
- [
- "SPO-A",
- {
- "enamehd": "11170H SID 0x8f",
- "enamesd": "Sky Sport Austria 1",
- "enameuhd": "",
- "id": "SPO-A",
- "servicehd": "1:0:19:8F:9:85:C00000:0:0:0:",
- "servicesd": "1:0:16:1E:2:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Sky Sport Austria"
- }
- ],
- [
- "SNHD",
- {
- "enamehd": "Sky Sport News HD",
- "enamesd": "Sky Sport News",
- "enameuhd": "",
- "id": "SNHD",
- "servicehd": "1:0:19:6C:C:85:C00000:0:0:0:",
- "servicesd": "1:0:1:25:F:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Sky Sport News"
- }
- ],
- [
- "SPORT",
- {
- "enamehd": "SPORT1 HD",
- "enamesd": "SPORT1",
- "enameuhd": "",
- "id": "SPORT",
- "servicehd": "1:0:19:1581:41F:1:C00000:0:0:0:",
- "servicesd": "1:0:1:384:21:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "SPORT1"
- }
- ],
- [
- "EURO",
- {
- "enamehd": "Eurosport 1 HD",
- "enamesd": "Eurosport 1 Deutschland",
- "enameuhd": "",
- "id": "EURO",
- "servicehd": "1:0:19:30D6:413:1:C00000:0:0:0:",
- "servicesd": "1:0:1:79E0:443:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Eurosport 1"
- }
- ],
- [
- "EURO2",
- {
- "enamehd": "Eurosport 2 HD",
- "enamesd": "Elevensports 1 FR",
- "enameuhd": "",
- "id": "EURO2",
- "servicehd": "1:0:19:6D:B:85:C00000:0:0:0:",
- "servicesd": "1:0:16:100A:451:35:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Eurosport 2"
- }
- ],
- [
- "SPO-D",
- {
- "enamehd": "SPORTDIGITAL FUSSBALL HD_alt",
- "enamesd": "",
- "enameuhd": "",
- "id": "SPO-D",
- "servicehd": "1:0:19:1194:406:1:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "sportdigital Fussball"
- }
- ],
- [
- "EURON",
- {
- "enamehd": "",
- "enamesd": "EURONEWS GERMAN SD",
- "enameuhd": "",
- "id": "EURON",
- "servicehd": "",
- "servicesd": "1:0:1:79FE:443:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "euronews"
- }
- ],
- [
- "VH1",
- {
- "enamehd": "",
- "enamesd": "MTV 80s",
- "enameuhd": "",
- "id": "VH1",
- "servicehd": "",
- "servicesd": "1:0:1:6FF1:436:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "VH1 Classic"
- }
- ],
- [
- "HEALTH",
- {
- "enamehd": "",
- "enamesd": "health.tv",
- "enameuhd": "",
- "id": "HEALTH",
- "servicehd": "",
- "servicesd": "1:0:1:3138:459:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Health TV"
- }
- ],
- [
- "SERVU",
- {
- "enamehd": "",
- "enamesd": "ServusTV Deutschland",
- "enameuhd": "",
- "id": "SERVU",
- "servicehd": "",
- "servicesd": "1:0:1:3336:45B:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "ServusTV Deutschland"
- }
- ],
- [
- "123TV",
- {
- "enamehd": "1-2-3.tv HD",
- "enamesd": "1-2-3.tv",
- "enameuhd": "",
- "id": "123TV",
- "servicehd": "1:0:19:157E:41F:1:C00000:0:0:0:",
- "servicesd": "1:0:1:296:5:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "123.tv"
- }
- ],
- [
- "QVC",
- {
- "enamehd": "QVC HD",
- "enamesd": "QVC",
- "enameuhd": "QVC UHD",
- "id": "QVC",
- "servicehd": "1:0:19:526F:41D:1:C00000:0:0:0:",
- "servicesd": "1:0:1:702:5:85:C00000:0:0:0:",
- "serviceuhd": "1:0:1F:1086:3EE:1:C00000:0:0:0:",
- "tname": "QVC"
- }
- ],
- [
- "QVCP",
- {
- "enamehd": "QVC ZWEI HD",
- "enamesd": "QVC2",
- "enameuhd": "QVC ZWEI UHD",
- "id": "QVCP",
- "servicehd": "1:0:19:1580:41F:1:C00000:0:0:0:",
- "servicesd": "1:0:1:D42:454:1:C00000:0:0:0:",
- "serviceuhd": "1:0:1F:7DA:449:1:C00000:0:0:0:",
- "tname": "QVC2"
- }
- ],
- [
- "TV5",
- {
- "enamehd": "",
- "enamesd": "TV5 MONDE",
- "enameuhd": "",
- "id": "TV5",
- "servicehd": "",
- "servicesd": "1:0:19:26B6:43E:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "TV5 Monde"
- }
- ],
- [
- "PBOY",
- {
- "enamehd": "",
- "enamesd": "PLAYBOY TV",
- "enameuhd": "",
- "id": "PBOY",
- "servicehd": "",
- "servicesd": "1:0:1:778B:424:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Playboy TV"
- }
- ],
- [
- "TRACE",
- {
- "enamehd": "",
- "enamesd": "TRACE URBAN",
- "enameuhd": "",
- "id": "TRACE",
- "servicehd": "",
- "servicesd": "1:0:19:24C6:43C:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Trace TV"
- }
- ],
- [
- "SKLAR",
- {
- "enamehd": "",
- "enamesd": "Sonnenklar TV",
- "enameuhd": "",
- "id": "SKLAR",
- "servicehd": "",
- "servicesd": "1:0:1:20:21:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "sonnenklar TV"
- }
- ],
- [
- "BIBEL",
- {
- "enamehd": "Bibel TV HD",
- "enamesd": "Bibel TV",
- "enameuhd": "",
- "id": "BIBEL",
- "servicehd": "1:0:19:33A8:3EB:1:C00000:0:0:0:",
- "servicesd": "1:0:1:2F5A:454:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Bibel TV"
- }
- ],
- [
- "UHD1",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "UHD1 by ASTRA / HD+",
- "id": "UHD1",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "1:0:1F:2:40B:1:C00000:0:0:0:",
- "tname": "UHD1"
- }
- ],
- [
- "SF1",
- {
- "enamehd": "SRF 1 HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "SF1",
- "servicehd": "1:0:19:4331:300C:13E:820000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "SRF 1"
- }
- ],
- [
- "SF2",
- {
- "enamehd": "SRF zwei HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "SF2",
- "servicehd": "1:0:19:4332:300C:13E:820000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "SRF zwei"
- }
- ],
- [
- "S1PLU",
- {
- "enamehd": "",
- "enamesd": "SPORT1+",
- "enameuhd": "",
- "id": "S1PLU",
- "servicehd": "",
- "servicesd": "1:0:19:10CD:418:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "SPORT1+"
- }
- ],
- [
- "FR24E",
- {
- "enamehd": "",
- "enamesd": "France 24 (In English)",
- "enameuhd": "",
- "id": "FR24E",
- "servicehd": "",
- "servicesd": "1:0:1:1AFA:3FE:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "France 24 (engl.)"
- }
- ],
- [
- "FR24F",
- {
- "enamehd": "",
- "enamesd": "France 24 (en Francais)",
- "enameuhd": "",
- "id": "FR24F",
- "servicehd": "",
- "servicesd": "1:0:1:1AF9:3FE:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "France 24 (franz.)"
- }
- ],
- [
- "ES1",
- {
- "enamehd": "",
- "enamesd": "eSPORTS1",
- "enameuhd": "",
- "id": "ES1",
- "servicehd": "",
- "servicesd": "1:0:19:10CE:418:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "eSports1"
- }
- ],
- [
- "FRA2",
- {
- "enamehd": "",
- "enamesd": "FRANCE 2",
- "enameuhd": "",
- "id": "FRA2",
- "servicehd": "",
- "servicesd": "1:0:19:245A:440:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "France 2"
- }
- ],
- [
- "FRA3",
- {
- "enamehd": "",
- "enamesd": "FRANCE 3",
- "enameuhd": "",
- "id": "FRA3",
- "servicehd": "",
- "servicesd": "1:0:19:245D:440:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "France 3"
- }
- ],
- [
- "FRA4",
- {
- "enamehd": "",
- "enamesd": "FRANCE 4",
- "enameuhd": "",
- "id": "FRA4",
- "servicehd": "",
- "servicesd": "1:0:19:21FD:44C:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "France 4"
- }
- ],
- [
- "FRA5",
- {
- "enamehd": "",
- "enamesd": "FRANCE 5",
- "enameuhd": "",
- "id": "FRA5",
- "servicehd": "",
- "servicesd": "1:0:19:2330:442:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "France 5"
- }
- ],
- [
- "CPLUS",
- {
- "enamehd": "",
- "enamesd": "CANAL+",
- "enameuhd": "",
- "id": "CPLUS",
- "servicehd": "",
- "servicesd": "1:0:19:2261:438:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Canal+"
- }
- ],
- [
- "CPLUSC",
- {
- "enamehd": "",
- "enamesd": "CANAL+CINEMA",
- "enameuhd": "",
- "id": "CPLUSC",
- "servicehd": "",
- "servicesd": "1:0:19:2263:438:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Canal+ Cin\u00e9ma"
- }
- ],
- [
- "CPLUSS",
- {
- "enamehd": "",
- "enamesd": "CANAL+SPORT",
- "enameuhd": "",
- "id": "CPLUSS",
- "servicehd": "",
- "servicesd": "1:0:19:2264:438:1:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Canal+ Sport"
- }
- ],
- [
- "SKYSPL",
- {
- "enamehd": "Sky Sport Premier League HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "SKYSPL",
- "servicehd": "1:0:19:91:9:85:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Sky Sport Premier League"
- }
- ],
- [
- "SKYSTE",
- {
- "enamehd": "Sky Sport Top Event HD",
- "enamesd": "Sky Sport Top Event",
- "enameuhd": "",
- "id": "SKYSTE",
- "servicehd": "1:0:19:81:6:85:C00000:0:0:0:",
- "servicesd": "1:0:16:DD:4:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Sky Sport Top Event"
- }
- ],
- [
- "SKYSG",
- {
- "enamehd": "Sky Sport Golf HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "SKYSG",
- "servicehd": "1:0:19:90:D:85:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Sky Sport Golf"
- }
- ],
- [
- "SKYST",
- {
- "enamehd": "Sky Sport Tennis HD",
- "enamesd": "Sky Sport Tennis",
- "enameuhd": "",
- "id": "SKYST",
- "servicehd": "1:0:19:72:D:85:C00000:0:0:0:",
- "servicesd": "1:0:16:DE:2:85:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Sky Sport Tennis"
- }
- ],
- [
- "SKYSM",
- {
- "enamehd": "Sky Sport Mix HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "SKYSM",
- "servicehd": "1:0:19:8D:9:85:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Sky Sport Mix"
- }
- ],
- [
- "SKYF1",
- {
- "enamehd": "Sky Sport F1 HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "SKYF1",
- "servicehd": "1:0:19:11:3:85:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "SKY Sport F1"
- }
- ],
- [
- "SKY-CO",
- {
- "enamehd": "Sky Comedy HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "SKY-CO",
- "servicehd": "1:0:19:E:2:85:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Sky Comedy"
- }
- ],
- [
- "SKY-CR",
- {
- "enamehd": "Sky Crime HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "SKY-CR",
- "servicehd": "1:0:19:D:6:85:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Sky Crime"
- }
- ],
- [
- "SKYSH",
- {
- "enamehd": "Sky Showcase HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "SKYSH",
- "servicehd": "1:0:19:8E:B:85:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "sky showcase"
- }
- ],
- [
- "SKYRP",
- {
- "enamehd": "Sky Replay HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "SKYRP",
- "servicehd": "1:0:19:7C:C:85:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "sky replay"
- }
- ],
- [
- "SKY-NA",
- {
- "enamehd": "Sky Nature HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "SKY-NA",
- "servicehd": "1:0:19:F:2:85:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Sky Nature"
- }
- ],
- [
- "BERG",
- {
- "enamehd": "",
- "enamesd": "Bergblick",
- "enameuhd": "",
- "id": "BERG",
- "servicehd": "",
- "servicesd": "1:0:16:1013:451:35:C00000:0:0:0:",
- "serviceuhd": "",
- "tname": "Bergblick"
- }
- ],
- [
- "SKY-D",
- {
- "enamehd": "Sky Documentaries HD",
- "enamesd": "",
- "enameuhd": "",
- "id": "SKY-D",
- "servicehd": "1:0:19:10:3:85:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Sky Documentaries"
- }
- ],
- [
- "AMS",
- {
- "enamehd": "AutoMotorSport HD temp",
- "enamesd": "",
- "enameuhd": "",
- "id": "AMS",
- "servicehd": "1:0:19:22:F:85:C00000:0:0:0:",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Auto Motor und Sport"
- }
- ],
- [
- "EX-SP",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "EX-SP",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "EXTREME SPORTS"
- }
- ],
- [
- "CLASS",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "CLASS",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Classica"
- }
- ],
- [
- "PULS8",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "PULS8",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "PULS acht"
- }
- ],
- [
- "DR1",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "DR1",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "DR1"
- }
- ],
- [
- "TRAVELXP",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "TRAVELXP",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "travelxp 4K"
- }
- ],
- [
- "FATV",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "FATV",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Fashion TV"
- }
- ],
- [
- "APLAN",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "APLAN",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Animal Planet"
- }
- ],
- [
- "HH1",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "HH1",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Hamburg 1"
- }
- ],
- [
- "BBC-E",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "BBC-E",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "BBC Entertainment"
- }
- ],
- [
- "STTV",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "STTV",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "STAR TV"
- }
- ],
- [
- "PRO7F",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "PRO7F",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "ProSieben Fun"
- }
- ],
- [
- "PASS",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "PASS",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "RTL Passion"
- }
- ],
- [
- "RTL-L",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "RTL-L",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "RTL Living"
- }
- ],
- [
- "RTL-C",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "RTL-C",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "RTL Crime"
- }
- ],
- [
- "LEITV",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "LEITV",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Leipzig Fernsehen"
- }
- ],
- [
- "GOLD",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "GOLD",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "GoldStar TV"
- }
- ],
- [
- "MAPO",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "MAPO",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Marco Polo TV"
- }
- ],
- [
- "EOTV",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "EOTV",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "More than Sports TV"
- }
- ],
- [
- "RNF",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "RNF",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Rhein-Neckar Fernsehen"
- }
- ],
- [
- "GEO",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "GEO",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "GEO Television"
- }
- ],
- [
- "DAZN",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "DAZN",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "DAZN"
- }
- ],
- [
- "LUSTP",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "LUSTP",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "LUST PUR"
- }
- ],
- [
- "FFTV",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "FFTV",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "FIX & FOXI"
- }
- ],
- [
- "ADULT",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "ADULT",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Adult Channel"
- }
- ],
- [
- "MTV-B",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "MTV-B",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "MTV Base"
- }
- ],
- [
- "MTV-L",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "MTV-L",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "MTV Live HD"
- }
- ],
- [
- "LAUNE",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "LAUNE",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Gute Laune TV"
- }
- ],
- [
- "GUSTO",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "GUSTO",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "BonGusto"
- }
- ],
- [
- "SILVE",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "SILVE",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Silverline"
- }
- ],
- [
- "SONY",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "SONY",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Sony Channel"
- }
- ],
- [
- "NAUCH",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "NAUCH",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Nautical Channel"
- }
- ],
- [
- "NOWUS",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "NOWUS",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "NOW US"
- }
- ],
- [
- "TVB",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "TVB",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "tv.berlin"
- }
- ],
- [
- "TV2",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "TV2",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "TV2"
- }
- ],
- [
- "BBC-N",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "BBC-N",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "BBC News"
- }
- ],
- [
- "BBC1",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "BBC1",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "BBC One"
- }
- ],
- [
- "BBC2",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "BBC2",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "BBC Two"
- }
- ],
- [
- "BBC4",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "BBC4",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "BBC Four"
- }
- ],
- [
- "CNN-T",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "CNN-T",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "CNN T\u00fcrk"
- }
- ],
- [
- "C5",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "C5",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Canale 5"
- }
- ],
- [
- "SHOT",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "SHOT",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Show Turk"
- }
- ],
- [
- "RBTV",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "RBTV",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Rocket Beans TV"
- }
- ],
- [
- "EURO-S",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "EURO-S",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Euro Star"
- }
- ],
- [
- "EURO-D",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "EURO-D",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Euro D"
- }
- ],
- [
- "BE1",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "BE1",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Belgien 1"
- }
- ],
- [
- "TMAX",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "TMAX",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Turkmax Gurme"
- }
- ],
- [
- "MASPO",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "MASPO",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Magenta Sport"
- }
- ],
- [
- "DR2",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "DR2",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "DR2"
- }
- ],
- [
- "SERVUSA",
- {
- "enamehd": "",
- "enamesd": "",
- "enameuhd": "",
- "id": "SERVUSA",
- "servicehd": "",
- "servicesd": "",
- "serviceuhd": "",
- "tname": "Servus TV \u00d6sterreich"
- }
- ]
- ],
- "typ": "tvdefault"
-}
\ No newline at end of file
diff --git a/src/skin/Default-FHD/skin.xml b/src/skin/Default-FHD/skin.xml
index b09ae50..d28b143 100644
--- a/src/skin/Default-FHD/skin.xml
+++ b/src/skin/Default-FHD/skin.xml
@@ -1,6 +1,6 @@
-
+
@@ -17,7 +17,7 @@
-
+
@@ -56,25 +56,11 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -109,12 +95,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -122,30 +108,23 @@
-
+
{"template":[ MultiContentEntryPixmapAlphaTest(pos=(0,15),size=(90,54),png=2), MultiContentEntryText(pos=(105,0),size=(190,80),flags=RT_VALIGN_CENTER|RT_WRAP,text=1), MultiContentEntryPixmapAlphaTest(pos=(315,15),size=(90,54),png=4,backcolor=None), MultiContentEntryText(pos=(420,0),size=(190,80),flags=RT_VALIGN_CENTER|RT_WRAP,text=3), MultiContentEntryPixmapAlphaTest(pos=(630,15),size=(90,54),png=6,backcolor=None), MultiContentEntryText(pos=(735,0),size=(190,80),flags=RT_VALIGN_CENTER|RT_WRAP,text=5), MultiContentEntryPixmapAlphaTest(pos=(945,15),size=(90,54),png=8,backcolor=None), MultiContentEntryText(pos=(1050,0),size=(190,80),flags=RT_VALIGN_CENTER|RT_WRAP,text=7), MultiContentEntryPixmapAlphaTest(pos=(1260,15),size=(90,54),png=10,backcolor=None), MultiContentEntryText(pos=(1365,0),size=(190,80),flags=RT_VALIGN_CENTER|RT_WRAP,text=9), MultiContentEntryPixmapAlphaTest(pos=(1575,15),size=(90,54),png=12,backcolor=None), MultiContentEntryText(pos=(1680,0),size=(190,80),flags=RT_VALIGN_CENTER|RT_WRAP,text=11), MultiContentEntryText(pos=(0,0),size=(1880,1),flags=RT_VALIGN_CENTER,text="",backcolor=0xa0a0a0)], "fonts":[gFont("Regular",24)],"itemHeight":80}
-
-
-
-
-
-
+
+
+
+
-
+
-
-
-
-
-
-
+
11
diff --git a/src/skin/Default-HD/skin.xml b/src/skin/Default-HD/skin.xml
index b589fe4..b90a9c8 100644
--- a/src/skin/Default-HD/skin.xml
+++ b/src/skin/Default-HD/skin.xml
@@ -1,6 +1,6 @@
-
+
@@ -17,7 +17,7 @@
-
+
@@ -56,25 +56,11 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -109,12 +95,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -122,30 +108,23 @@
-
+
{"template":[MultiContentEntryPixmapAlphaTest(pos=(0,10),size=(60,36),png=2),MultiContentEntryText(pos=(70,0),size=(127,53),flags=RT_VALIGN_CENTER|RT_WRAP,text=1),MultiContentEntryPixmapAlphaTest(pos=(210,10),size=(60,36),png=4,backcolor=None),MultiContentEntryText(pos=(280,0),size=(127,53),flags=RT_VALIGN_CENTER|RT_WRAP,text=3),MultiContentEntryPixmapAlphaTest(pos=(420,10),size=(60,36),png=6,backcolor=None),MultiContentEntryText(pos=(490,0),size=(127,53),flags=RT_VALIGN_CENTER|RT_WRAP,text=5),MultiContentEntryPixmapAlphaTest(pos=(630,10),size=(60,36),png=8,backcolor=None),MultiContentEntryText(pos=(700,0),size=(127,53),flags=RT_VALIGN_CENTER|RT_WRAP,text=7),MultiContentEntryPixmapAlphaTest(pos=(840,10),size=(60,36),png=10,backcolor=None),MultiContentEntryText(pos=(910,0),size=(127,53),flags=RT_VALIGN_CENTER|RT_WRAP,text=9),MultiContentEntryPixmapAlphaTest(pos=(1050,10),size=(60,36),png=12,backcolor=None),MultiContentEntryText(pos=(1120,0),size=(127,53),flags=RT_VALIGN_CENTER|RT_WRAP,text=11),MultiContentEntryText(pos=(0,0),size=(1253,1),flags=RT_VALIGN_CENTER,text="",backcolor=0xa0a0a0)],"fonts":[gFont("Regular",16)],"itemHeight":53}
-
-
-
-
-
-
+
+
+
+
-
+
-
-
-
-
-
-
+
11
diff --git a/src/skin/Default-WQHD/skin.xml b/src/skin/Default-WQHD/skin.xml
index 3fea826..43a04cc 100644
--- a/src/skin/Default-WQHD/skin.xml
+++ b/src/skin/Default-WQHD/skin.xml
@@ -1,6 +1,6 @@
-
+
@@ -17,7 +17,7 @@
-
+
@@ -56,25 +56,11 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -109,12 +95,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -122,30 +108,23 @@
-
+
{"template":[MultiContentEntryPixmapAlphaTest(pos=(0,20),size=(120,72),png=2),MultiContentEntryText(pos=(140,0),size=(253,107),flags=RT_VALIGN_CENTER|RT_WRAP,text=1),MultiContentEntryPixmapAlphaTest(pos=(420,20),size=(120,72),png=4,backcolor=None),MultiContentEntryText(pos=(560,0),size=(253,107),flags=RT_VALIGN_CENTER|RT_WRAP,text=3),MultiContentEntryPixmapAlphaTest(pos=(840,20),size=(120,72),png=6,backcolor=None),MultiContentEntryText(pos=(980,0),size=(253,107),flags=RT_VALIGN_CENTER|RT_WRAP,text=5),MultiContentEntryPixmapAlphaTest(pos=(1260,20),size=(120,72),png=8,backcolor=None),MultiContentEntryText(pos=(1400,0),size=(253,107),flags=RT_VALIGN_CENTER|RT_WRAP,text=7),MultiContentEntryPixmapAlphaTest(pos=(1680,20),size=(120,72),png=10,backcolor=None),MultiContentEntryText(pos=(1820,0),size=(253,107),flags=RT_VALIGN_CENTER|RT_WRAP,text=9),MultiContentEntryPixmapAlphaTest(pos=(2100,20),size=(120,72),png=12,backcolor=None),MultiContentEntryText(pos=(2240,0),size=(253,107),flags=RT_VALIGN_CENTER|RT_WRAP,text=11),MultiContentEntryText(pos=(0,0),size=(2507,1),flags=RT_VALIGN_CENTER,text="",backcolor=0xa0a0a0)],"fonts":[gFont("Regular",32)],"itemHeight":107}
-
-
-
-
-
-
+
+
+
+
-
+
-
-
-
-
-
-
+
11
diff --git a/src/skin/Other-WQHD/skin.xml b/src/skin/Other-WQHD/skin.xml
index 3fea826..43a04cc 100644
--- a/src/skin/Other-WQHD/skin.xml
+++ b/src/skin/Other-WQHD/skin.xml
@@ -1,6 +1,6 @@
-
+
@@ -17,7 +17,7 @@
-
+
@@ -56,25 +56,11 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -109,12 +95,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -122,30 +108,23 @@
-
+
{"template":[MultiContentEntryPixmapAlphaTest(pos=(0,20),size=(120,72),png=2),MultiContentEntryText(pos=(140,0),size=(253,107),flags=RT_VALIGN_CENTER|RT_WRAP,text=1),MultiContentEntryPixmapAlphaTest(pos=(420,20),size=(120,72),png=4,backcolor=None),MultiContentEntryText(pos=(560,0),size=(253,107),flags=RT_VALIGN_CENTER|RT_WRAP,text=3),MultiContentEntryPixmapAlphaTest(pos=(840,20),size=(120,72),png=6,backcolor=None),MultiContentEntryText(pos=(980,0),size=(253,107),flags=RT_VALIGN_CENTER|RT_WRAP,text=5),MultiContentEntryPixmapAlphaTest(pos=(1260,20),size=(120,72),png=8,backcolor=None),MultiContentEntryText(pos=(1400,0),size=(253,107),flags=RT_VALIGN_CENTER|RT_WRAP,text=7),MultiContentEntryPixmapAlphaTest(pos=(1680,20),size=(120,72),png=10,backcolor=None),MultiContentEntryText(pos=(1820,0),size=(253,107),flags=RT_VALIGN_CENTER|RT_WRAP,text=9),MultiContentEntryPixmapAlphaTest(pos=(2100,20),size=(120,72),png=12,backcolor=None),MultiContentEntryText(pos=(2240,0),size=(253,107),flags=RT_VALIGN_CENTER|RT_WRAP,text=11),MultiContentEntryText(pos=(0,0),size=(2507,1),flags=RT_VALIGN_CENTER,text="",backcolor=0xa0a0a0)],"fonts":[gFont("Regular",32)],"itemHeight":107}
-
-
-
-
-
-
+
+
+
+
-
+
-
-
-
-
-
-
+
11
diff --git a/src/skin/Shadow-FHD/skin.xml b/src/skin/Shadow-FHD/skin.xml
index b09ae50..d28b143 100644
--- a/src/skin/Shadow-FHD/skin.xml
+++ b/src/skin/Shadow-FHD/skin.xml
@@ -1,6 +1,6 @@
-
+
@@ -17,7 +17,7 @@
-
+
@@ -56,25 +56,11 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -109,12 +95,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -122,30 +108,23 @@
-
+
{"template":[ MultiContentEntryPixmapAlphaTest(pos=(0,15),size=(90,54),png=2), MultiContentEntryText(pos=(105,0),size=(190,80),flags=RT_VALIGN_CENTER|RT_WRAP,text=1), MultiContentEntryPixmapAlphaTest(pos=(315,15),size=(90,54),png=4,backcolor=None), MultiContentEntryText(pos=(420,0),size=(190,80),flags=RT_VALIGN_CENTER|RT_WRAP,text=3), MultiContentEntryPixmapAlphaTest(pos=(630,15),size=(90,54),png=6,backcolor=None), MultiContentEntryText(pos=(735,0),size=(190,80),flags=RT_VALIGN_CENTER|RT_WRAP,text=5), MultiContentEntryPixmapAlphaTest(pos=(945,15),size=(90,54),png=8,backcolor=None), MultiContentEntryText(pos=(1050,0),size=(190,80),flags=RT_VALIGN_CENTER|RT_WRAP,text=7), MultiContentEntryPixmapAlphaTest(pos=(1260,15),size=(90,54),png=10,backcolor=None), MultiContentEntryText(pos=(1365,0),size=(190,80),flags=RT_VALIGN_CENTER|RT_WRAP,text=9), MultiContentEntryPixmapAlphaTest(pos=(1575,15),size=(90,54),png=12,backcolor=None), MultiContentEntryText(pos=(1680,0),size=(190,80),flags=RT_VALIGN_CENTER|RT_WRAP,text=11), MultiContentEntryText(pos=(0,0),size=(1880,1),flags=RT_VALIGN_CENTER,text="",backcolor=0xa0a0a0)], "fonts":[gFont("Regular",24)],"itemHeight":80}
-
-
-
-
-
-
+
+
+
+
-
+
-
-
-
-
-
-
+
11
diff --git a/src/skin/screen_TvSpielfilmchannel.xmlinc b/src/skin/screen_Channel.xmlinc
similarity index 96%
rename from src/skin/screen_TvSpielfilmchannel.xmlinc
rename to src/skin/screen_Channel.xmlinc
index 92a8a56..9f8a560 100755
--- a/src/skin/screen_TvSpielfilmchannel.xmlinc
+++ b/src/skin/screen_Channel.xmlinc
@@ -1,4 +1,4 @@
-
+
diff --git a/src/skin/screen_TvSpielfilmChannelGroup.xmlinc b/src/skin/screen_ChannelGroup.xmlinc
similarity index 90%
rename from src/skin/screen_TvSpielfilmChannelGroup.xmlinc
rename to src/skin/screen_ChannelGroup.xmlinc
index 7da0908..e069a7c 100755
--- a/src/skin/screen_TvSpielfilmChannelGroup.xmlinc
+++ b/src/skin/screen_ChannelGroup.xmlinc
@@ -1,4 +1,4 @@
-
+
{"template":[
diff --git a/src/skin/screen_TvSpielfilmsDirBrowser_summary.xmlinc b/src/skin/screen_DirBrowser.xmlinc
similarity index 82%
rename from src/skin/screen_TvSpielfilmsDirBrowser_summary.xmlinc
rename to src/skin/screen_DirBrowser.xmlinc
index 00f17a1..fb0df70 100755
--- a/src/skin/screen_TvSpielfilmsDirBrowser_summary.xmlinc
+++ b/src/skin/screen_DirBrowser.xmlinc
@@ -1,4 +1,4 @@
-
+
diff --git a/src/skin/screen_EventDetails.xmlinc b/src/skin/screen_EventDetails.xmlinc
index c89f7ae..8d48076 100755
--- a/src/skin/screen_EventDetails.xmlinc
+++ b/src/skin/screen_EventDetails.xmlinc
@@ -11,7 +11,7 @@
-
+
diff --git a/src/skin/screen_TvSpielfilmTvProgramm.xmlinc b/src/skin/screen_ProgramColumns.xmlinc
similarity index 88%
rename from src/skin/screen_TvSpielfilmTvProgramm.xmlinc
rename to src/skin/screen_ProgramColumns.xmlinc
index ad845c6..e6fcd8f 100755
--- a/src/skin/screen_TvSpielfilmTvProgramm.xmlinc
+++ b/src/skin/screen_ProgramColumns.xmlinc
@@ -1,4 +1,4 @@
-
+
@@ -39,12 +39,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/src/skin/screen_TvSpielfilmmain.xmlinc b/src/skin/screen_ProgramMain.xmlinc
similarity index 96%
rename from src/skin/screen_TvSpielfilmmain.xmlinc
rename to src/skin/screen_ProgramMain.xmlinc
index 90efe46..9f28083 100755
--- a/src/skin/screen_TvSpielfilmmain.xmlinc
+++ b/src/skin/screen_ProgramMain.xmlinc
@@ -1,4 +1,4 @@
-
+
diff --git a/src/skin/screen_TvSpielfilmmain_group_summary.xmlinc b/src/skin/screen_ProgramMain_group_summary.xmlinc
similarity index 93%
rename from src/skin/screen_TvSpielfilmmain_group_summary.xmlinc
rename to src/skin/screen_ProgramMain_group_summary.xmlinc
index 241845c..845d8a9 100755
--- a/src/skin/screen_TvSpielfilmmain_group_summary.xmlinc
+++ b/src/skin/screen_ProgramMain_group_summary.xmlinc
@@ -1,4 +1,4 @@
-
+
11
diff --git a/src/skin/screen_TvSpielfilmservice.xmlinc b/src/skin/screen_Service.xmlinc
similarity index 66%
rename from src/skin/screen_TvSpielfilmservice.xmlinc
rename to src/skin/screen_Service.xmlinc
index 0671fb9..a999ae3 100755
--- a/src/skin/screen_TvSpielfilmservice.xmlinc
+++ b/src/skin/screen_Service.xmlinc
@@ -1,4 +1,4 @@
-
+
diff --git a/src/skin/screen_TvSpielfilmTipps.xmlinc b/src/skin/screen_TvSpielfilmTipps.xmlinc
deleted file mode 100755
index 66504a1..0000000
--- a/src/skin/screen_TvSpielfilmTipps.xmlinc
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/skin/screen_TvSpielfilmsDirBrowser.xmlinc b/src/skin/screen_TvSpielfilmsDirBrowser.xmlinc
deleted file mode 100755
index 76a07e6..0000000
--- a/src/skin/screen_TvSpielfilmsDirBrowser.xmlinc
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/src/skin/skin_src.xml b/src/skin/skin_src.xml
index 632f078..43301d2 100644
--- a/src/skin/skin_src.xml
+++ b/src/skin/skin_src.xml
@@ -1,12 +1,11 @@
-
-
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/src/tvconfig.py b/src/tvconfig.py
index 61ae0a4..92ee414 100644
--- a/src/tvconfig.py
+++ b/src/tvconfig.py
@@ -79,7 +79,7 @@ def read_tvconfig_search():
def read_tvconfig():
logger.info("...")
_tv_config['order'] = {}
- _tv_config['order']['Sender'] = {'name': 'Sender', 'disname': 'Tv Spielfilm / ' + _('Channel'), 'id': 'channel'}
+ _tv_config['order']['Sender'] = {'name': 'Sender', 'disname': 'TV Spielfilm / ' + _('Channel'), 'id': 'channel'}
_tv_config['order']['custom'] = {'name': 'custom', 'disname': _('User') + ' / ' + _('Channel'), 'id': 'channel'}
_tv_config['order']['customtime'] = {'name': 'customtime', 'disname': _('User') + ' / ' + _('Time'), 'id': 'time'}
@@ -87,11 +87,11 @@ def read_tvconfig():
_tv_config['order']['customtimechannel'] = {'name': 'customtimechannel', 'disname': _('User') + ' / ' + _('Time') + ' / ' + _('Channel'), 'id': 'time'}
_tv_config['order']['customchanneltime'] = {'name': 'customchanneltime', 'disname': _('User') + ' / ' + _('Channel') + ' / ' + _('Time'), 'id': 'channel'}
- _tv_config['order']['Zeit'] = {'name': 'Zeit', 'disname': 'Tv Spielfilm / ' + 'Zeit', 'id': 'time'}
- _tv_config['order']['Titel'] = {'name': 'Titel', 'disname': 'Tv Spielfilm / ' + 'Titel', 'id': 'title'}
- _tv_config['order']['Genre'] = {'name': 'Genre', 'disname': 'Tv Spielfilm / ' + 'Genre', 'id': 'genre'}
- _tv_config['order']['Sparte'] = {'name': 'Sparte', 'disname': 'Tv Spielfilm / ' + 'Sparte', 'id': 'category'}
- _tv_config['order']['Daumen'] = {'name': 'Daumen', 'disname': 'Tv Spielfilm / ' + 'Daumen', 'id': 'daumen'}
+ _tv_config['order']['Zeit'] = {'name': 'Zeit', 'disname': 'TV Spielfilm / ' + 'Zeit', 'id': 'time'}
+ _tv_config['order']['Titel'] = {'name': 'Titel', 'disname': 'TV Spielfilm / ' + 'Titel', 'id': 'title'}
+ _tv_config['order']['Genre'] = {'name': 'Genre', 'disname': 'TV Spielfilm / ' + 'Genre', 'id': 'genre'}
+ _tv_config['order']['Sparte'] = {'name': 'Sparte', 'disname': 'TV Spielfilm / ' + 'Sparte', 'id': 'category'}
+ _tv_config['order']['Daumen'] = {'name': 'Daumen', 'disname': 'TV Spielfilm / ' + 'Daumen', 'id': 'daumen'}
_tv_config['order']['default'] = _tv_config['order']['Zeit']['name']
_tv_config['category'] = {}
@@ -335,7 +335,7 @@ def read_default_channels_prog(resolution="hd"):
return None
-def read_channel_default_prog(file_name, resolution="hd"):
+def read_channel_default_prog(file_name, _resolution="hd"):
logger.info("...")
if pathExists(channels_file_name(file_name)):
with open(channels_file_name(file_name)) as data_file:
@@ -367,7 +367,7 @@ def read_channel_favo():
counter = 0
channelslen = len(channels) - 1
_channelcache['favo'] = {}
- for key, value in channels.iteritems():
+ for key, _value in channels.iteritems():
_tv_config['channel_string'] += key.encode('utf-8')
if counter < channelslen:
_tv_config['channel_string'] += '%2C'
@@ -528,12 +528,12 @@ def write_tvconfig():
def write_channels(file, result, typ=''):
logger.info("...")
if isinstance(result, list):
- result = convert_channels_list_to_dict(result, typ=typ)
+ result = convert_channels_list_to_dict(result, typ)
with open(file, 'w') as fp:
json.dump(result, fp, encoding='utf-8', indent=2, sort_keys=True)
-def convert_channels_list_to_dict(data, typ=''):
+def convert_channels_list_to_dict(data, _typ):
logger.info("data: %s", data)
result = {}
if len(data) > 0:
diff --git a/src/tvspielfilmsetup.py b/src/tvspielfilmsetup.py
deleted file mode 100755
index 6431812..0000000
--- a/src/tvspielfilmsetup.py
+++ /dev/null
@@ -1,440 +0,0 @@
-# coding=utf-8
-
-from Screens.Screen import Screen
-from Screens.MessageBox import MessageBox
-from Components.Sources.StaticText import StaticText
-from Components.ConfigList import ConfigListScreen
-from Components.ActionMap import ActionMap
-from Components.config import config, getConfigListEntry, ConfigSelection, ConfigText, ConfigYesNo, \
- ConfigSubsection, KEY_OK, ConfigSelectionNumber, NoSave, ConfigDirectory
-from Components.FileList import FileList
-from Tools.Directories import pathExists
-from ServiceReference import ServiceReference
-from .tvconfig import _premode, write_tvconfig_search, read_tvconfig_search, read_ServiceReference, write_tvconfig
-from ._tvdict import _changed, _tv_config, _channelcache, _channelreference, _tv_config_search, _tv_config_config, _pixmap_cache
-from .MYSimpleSummary import MYSimpleSummary
-from .MYSimpleChannelSelection import MYSimpleChannelSelection
-from .__init__ import _
-from .Debug import logger
-
-
-class TvSpielfilmsDirBrowser(Screen):
- def __init__(self, session, directory='/'):
- logger.info("...")
- self.skinName = "TvSpielfilmsDirBrowser"
- Screen.__init__(self, session)
- if directory == '':
- directory = '/'
- self["dirlist"] = FileList(directory, showDirectories=True, showFiles=False)
- self["actions"] = ActionMap(
- ["OkCancelActions", "DirectionActions", "ColorActions"],
- {
- "ok": self["dirlist"].descent,
- "cancel": self.cancel,
- "red": self.cancel,
- "green": self.key_green,
- "yellow": self.key_yellow
- }
- )
- self["key_red"] = StaticText(_("Close"))
- self["key_green"] = StaticText(_("Save"))
- self["key_yellow"] = StaticText(_("disable"))
- self["status"] = StaticText("")
- if self.selectionChanged not in self["dirlist"].onSelectionChanged:
- self["dirlist"].onSelectionChanged.append(self.selectionChanged)
- self.selectionChanged()
-
- def selectionChanged(self):
- logger.info("...")
- self["status"].setText(str(self["dirlist"].getCurrentDirectory() or ''))
-
- def cancel(self):
- logger.info("...")
- self.close(None)
-
- def key_green(self):
- logger.info("...")
- self.close(self["dirlist"].getCurrentDirectory())
-
- def key_yellow(self):
- logger.info("...")
- self.close("")
-
- def createSummary(self):
- logger.info("...")
- return MYSimpleSummary
-
-
-class TvSpielfilmstartSetup(Screen, ConfigListScreen):
- def __init__(self, session):
- logger.info("...")
- Screen.__init__(self, session)
- ConfigListScreen.__init__(self, [], session=session)
- self.skinName = "Setup"
-
- self["key_red"] = StaticText(_("Cancel"))
- self["key_green"] = StaticText(_("Save"))
-
- self["actions"] = ActionMap(
- ["SetupActions"],
- {
- "cancel": self.keyCancel,
- "red": self.keyCancel,
- "save": self.keySave
- }
- )
-
- self.onLayoutFinish.append(self.firststart)
- self._createSetup()
-
- def firststart(self):
- logger.info("...")
- self.setTitle("Tv Spielfilm" + " Strart " + _("Setup"))
-
- def _createSetup(self):
- logger.info("...")
- entries = []
- entries.append(getConfigListEntry(_('Tv Spielfilm') + ' ' + _('Start') + ' ' + _('Screen'), config.plugins.tvmagazinecockpit.startscreen))
-
- self["config"].list = entries
-
-
-class TvSpielfilmmainSetup(Screen, ConfigListScreen):
- def __init__(self, session):
- logger.info("...")
- Screen.__init__(self, session)
- ConfigListScreen.__init__(self, [], session=session)
- self.skinName = "Setup"
-
- self["key_red"] = StaticText(_("Cancel"))
- self["key_green"] = StaticText(_("Save"))
-
- self["actions"] = ActionMap(
- ["SetupActions"],
- {
- "cancel": self.keyCancel,
- "red": self.keyCancel,
- "save": self.keySave
- }
- )
- self.settings = ConfigSubsection()
-
- self.onLayoutFinish.append(self.firststart)
- self._createSetup()
-
- def firststart(self):
- logger.info("...")
- self.setTitle("Tv Spielfilm" + " " + _("Setup"))
-
- def _createSetup(self):
- logger.info("...")
- # if 'channel' not in _tv_config:
- # read_tvconfig()
- _changed['picondir'] = _tv_config_config.get('picondir', '')
-
- self.settings.channel = NoSave(self.make_ConfigSelection('channel', 'alle'))
- self.settings.order = NoSave(self.make_ConfigSelection('order', 'Zeit'))
- self.settings.time = NoSave(self.make_ConfigSelection('time', 'jetzt'))
- self.settings.defaultstart = NoSave(self.make_ConfigSelection('time', 'jetzt', 'defaultstart' , ('None', _("not active"))))
- self.settings.picondir = NoSave(ConfigDirectory(default=_tv_config_config.get('picondir') or ''))
-
- default = ', '.join(_tv_config_config.get('prevideomode', _premode))
- choices = [(', '.join((_premode[0], _premode[1], _premode[2])), 'SD')]
- choices.append((', '.join((_premode[1], _premode[2], _premode[0])), 'HD'))
- choices.append((', '.join((_premode[2], _premode[1], _premode[0])), 'UHD'))
- self.settings.premode = NoSave(ConfigSelection(default=default, choices=choices))
- _changed['premode'] = default
-
- entries = []
- entries.append(getConfigListEntry(_('Channel Selection'), self.settings.channel))
- entries.append(getConfigListEntry(_('Sort Mode'), self.settings.order))
- entries.append(getConfigListEntry(_('Assignment of the blue button'), self.settings.time))
- entries.append(getConfigListEntry(_("Start from the beginning"), self.settings.defaultstart))
- entries.append(getConfigListEntry(_('Resolution') + ' ' + _('Priority'), self.settings.premode))
- entries.append(getConfigListEntry(_('Picons path'), self.settings.picondir))
-
- entries.append(getConfigListEntry(' '))
- self.settings.nurtipps = NoSave(ConfigYesNo(default=_tv_config['category_only']['Tipps'].get('value', False)))
- entries.append(getConfigListEntry(_('Tipps only'), self.settings.nurtipps))
-
- self.settings.nurfreetv = NoSave(ConfigYesNo(default=_tv_config['category_only']['Free_TV'].get('value', False)))
- entries.append(getConfigListEntry(_('Free-TV only'), self.settings.nurfreetv))
-
- entries.append(getConfigListEntry(''))
- entries.append(getConfigListEntry(_('looking for branch')))
- self.settings.Spielfilm = NoSave(ConfigYesNo(default=_tv_config['category']['Spielfilm'].get('value', True)))
- entries.append(getConfigListEntry(_('Movie'), self.settings.Spielfilm))
- self.settings.Serie = NoSave(ConfigYesNo(default=_tv_config['category']['Serie'].get('value', True)))
- entries.append(getConfigListEntry(_('Series'), self.settings.Serie))
- self.settings.Report = NoSave(ConfigYesNo(default=_tv_config['category']['Report'].get('value', True)))
- entries.append(getConfigListEntry(_('Report'), self.settings.Report))
- self.settings.Unterhaltung = NoSave(ConfigYesNo(default=_tv_config['category']['Unterhaltung'].get('value', True)))
- entries.append(getConfigListEntry(_('Entertainment'), self.settings.Unterhaltung))
- self.settings.Kinder = NoSave(ConfigYesNo(default=_tv_config['category']['Kinder'].get('value', True)))
- entries.append(getConfigListEntry(_('Kids'), self.settings.Kinder))
- self.settings.Sport = NoSave(ConfigYesNo(default=_tv_config['category']['Sport'].get('value', True)))
- entries.append(getConfigListEntry(_('Sport'), self.settings.Sport))
-
- self["config"].list = entries
-
- def LocationBoxback(self, res):
- logger.info("...")
- if res is not None:
- if pathExists(res):
- self.settings.picondir.value = res
- else:
- self.settings.picondir.value = ''
-
- def keyOK(self):
- logger.info("...")
- curr = self["config"].getCurrent()
- if curr and curr[1] == self.settings.picondir:
- self.session.openWithCallback(self.LocationBoxback, TvSpielfilmsDirBrowser, self.settings.picondir.value)
- else:
- self["config"].handleKey(KEY_OK)
-
- def make_ConfigSelection(self, name, defaultval, defaultname='default', appchoices=None):
- logger.info("...")
- choices = []
- if appchoices:
- choices.append(appchoices)
- for val in _tv_config.get(name):
- if _tv_config[name].get(val):
- if isinstance(_tv_config[name][val], dict):
- if 'uservalue' not in _tv_config[name][val]['name']:
- choices.append(((_tv_config[name][val]['name'].encode('utf-8'), _tv_config[name][val]['disname'].encode('utf-8'))))
- if len(choices) > 0:
- choices.sort(key=lambda x: x[1])
- if _tv_config.get(name).get(defaultname):
- if 'uservalue' in _tv_config[name][defaultname]:
- defaultval = choices[0][0]
- else:
- defaultval = _tv_config[name][defaultname]
- return ConfigSelection(default=defaultval, choices=choices)
- return None
-
- def keySave(self):
- logger.info("...")
- if self["config"].isChanged():
- _tv_config['channel']['default'] = self.settings.channel.value
- _tv_config['order']['default'] = self.settings.order.value
- _tv_config['time']['default'] = self.settings.time.value
- _tv_config['time']['defaultstart'] = self.settings.defaultstart.value
- _tv_config_config['picondir'] = self.settings.picondir.value
- _tv_config_config['prevideomode'] = self.settings.premode.value.split(', ')
- _tv_config['category_only']['Tipps']['value'] = self.settings.nurtipps.value
- _tv_config['category_only']['Free_TV']['value'] = self.settings.nurfreetv.value
- _tv_config['category']['Spielfilm']['value'] = self.settings.Spielfilm.value
- _tv_config['category']['Serie']['value'] = self.settings.Serie.value
- _tv_config['category']['Report']['value'] = self.settings.Report.value
- _tv_config['category']['Unterhaltung']['value'] = self.settings.Unterhaltung.value
- _tv_config['category']['Kinder']['value'] = self.settings.Kinder.value
- _tv_config['category']['Sport']['value'] = self.settings.Sport.value
-
- if _changed['channel'] != self.settings.channel.value:
- _channelcache['favo'].clear()
- _channelcache['bouq'].clear()
- _channelreference.clear()
- _pixmap_cache.clear()
- read_ServiceReference()
- write_tvconfig()
- self.close(True)
- else:
- self.close(False)
-
-
-class TvSpielfilmsearchSetup(TvSpielfilmmainSetup):
- def __init__(self, session):
- logger.info("...")
- TvSpielfilmmainSetup.__init__(self, session)
-
- def firststart(self):
- logger.info("...")
- self.setTitle("Tv Spielfilm " + _("Search") + " " + _("Setup"))
-
- def keyOK(self):
- logger.info("...")
- self["config"].handleKey(KEY_OK)
-
- def _createSetup(self):
- logger.info("...")
- if not _tv_config_search.has_key('searchfilter'):
- read_tvconfig_search()
- entries = []
- self.settings.historylength = NoSave(ConfigSelectionNumber(min=0, max=100, stepwidth=5, default=_tv_config_search['searchfilter'].get('historylength', 0), wraparound=True))
- entries.append(getConfigListEntry(_('Length of History') + " (0=" + _("disable") + ")", self.settings.historylength))
- entries.append(getConfigListEntry(' '))
- entries.append(getConfigListEntry(_('Filter')))
- self.settings.colon = NoSave(ConfigYesNo(default=_tv_config_search['searchfilter'].get('colon', True)))
- entries.append(getConfigListEntry(_('separated by') + " " + "[ : ]", self.settings.colon))
- self.settings.stroke = NoSave(ConfigYesNo(default=_tv_config_search['searchfilter'].get('stroke', False)))
- entries.append(getConfigListEntry(_('separated by') + " " + "[ - ]", self.settings.stroke))
- self.settings.bracket = NoSave(ConfigYesNo(default=_tv_config_search['searchfilter'].get('bracket', True)))
- entries.append(getConfigListEntry(_('separated by') + " " + "[ (]", self.settings.bracket))
-
- entries.append(getConfigListEntry(' '))
- entries.append(getConfigListEntry(_('Plugins') + ' ' + _('show')))
- entries.append(getConfigListEntry(_('Button') + ' ' + _('EPG') + ' ' + _('blue'), config.plugins.tvmagazinecockpit.showepgblue))
- entries.append(getConfigListEntry(_('Button') + ' ' + _('Channel') + ' ' + _('red'), config.plugins.tvmagazinecockpit.showchannelred))
- entries.append(getConfigListEntry(_('Button') + ' ' + _('Eventview') + ' ' + _('blue'), config.plugins.tvmagazinecockpit.showeventview))
-
- self["config"].list = entries
-
- def keySave(self):
- logger.info("...")
- if self["config"].isChanged():
- _tv_config_search['searchfilter']['historylength'] = int(self.settings.historylength.value)
- _tv_config_search['searchfilter']['colon'] = self.settings.colon.value
- _tv_config_search['searchfilter']['stroke'] = self.settings.stroke.value
- _tv_config_search['searchfilter']['bracket'] = self.settings.bracket.value
-
- if _tv_config_search['searchfilter'].get('history'):
- historylength = int(self.settings.historylength.value)
- del _tv_config_search['searchfilter']['history'][historylength:]
- write_tvconfig_search()
- self.saveAll()
- self.close()
-
-
-class MyConfigDirectory(ConfigDirectory):
- def __init__(self, default, visible_width=60):
- logger.info("...")
- ConfigDirectory.__init__(self, default, visible_width=visible_width)
-
- def getMulti(self, selected):
- logger.info("...")
- if self.text == "":
- return ("mtext"[1 - selected:], _("List of Storage Devices"), range(0))
- return ConfigText.getMulti(self, selected)
-
-
-class TvSpielfilmservice(Screen, ConfigListScreen):
- def __init__(self, session, mdict=None):
- logger.info("...")
- if mdict is None:
- mdict = {}
- Screen.__init__(self, session)
- ConfigListScreen.__init__(self, [], session=session)
- self.skinName = "TvSpielfilmservice"
-
- self["key_red"] = StaticText(_("Cancel"))
- self["key_green"] = StaticText(_("Save"))
- self["key_yellow"] = StaticText(_("Remove"))
-
- self["actions"] = ActionMap(
- ["SetupActions", "ColorActions"],
- {
- "cancel": self.keyCancel,
- "red": self.keyCancel,
- "yellow": self.keyYellow,
- "save": self.keySave
- }
- )
- self.mdict = mdict
- self.destext = {'sd': 'SD ', 'hd': 'HD ', 'uhd': 'UHD ', 'notfound': _('not found')}
- self["config"].onSelectionChanged.append(self.updateHelp)
- self.settings = ConfigSubsection()
- self._createSetup()
-
- def updateHelp(self):
- logger.info("...")
- curr = self["config"].getCurrent()
- if curr and len(curr) >= 3:
- if curr[1].getValue() == '':
- self["key_yellow"].setText('')
- else:
- self["key_yellow"].setText(_("Remove"))
-
- def make_ConfigSelection(self, ename, service, value):
- logger.info("...")
- default = 'None'
- if ename in value and value[ename] and service in value and value[service]:
- default = value[ename].encode('utf-8')
- choices = [(default, value[service])]
- else:
- default = ''
- choices = [(default, self.destext['notfound'])]
- return NoSave(ConfigSelection(default=default, choices=choices))
-
- def _createSetup(self):
- logger.info("...")
- entries = []
- ttmp = (self.mdict['tname'] if 'tname' in self.mdict else self.destext['notfound'])
- ttmp += '\tID:' + ('id' in self.mdict and self.mdict['id']) or ''
- entries.append(getConfigListEntry((ttmp)))
-
- self.settings.sd = self.make_ConfigSelection('enamesd', 'servicesd', self.mdict)
- entries.append(getConfigListEntry(self.destext['sd'] + (('enamesd' in self.mdict and self.mdict['enamesd']) or self.destext['notfound']), self.settings.sd, 'sd'))
-
- self.settings.hd = self.make_ConfigSelection('enamehd', 'servicehd', self.mdict)
- entries.append(getConfigListEntry(self.destext['hd'] + (('enamehd' in self.mdict and self.mdict['enamehd']) or self.destext['notfound']), self.settings.hd, 'hd'))
-
- self.settings.uhd = self.make_ConfigSelection('enameuhd', 'serviceuhd', self.mdict)
- entries.append(getConfigListEntry(self.destext['uhd'] + (('enameuhd' in self.mdict and self.mdict['enameuhd']) or self.destext['notfound']), self.settings.uhd, 'uhd'))
-
- self["config"].list = entries
-
- def SimpleChannelCallback(self, *argsref):
- logger.info("...")
- if argsref:
- ename = ServiceReference(argsref[0]).getServiceName().replace('\xc2\x86', '').replace('\xc2\x87', '')
- eservice = argsref[0].toString()
- if ename and eservice:
- curr = self["config"].getCurrent()
- if curr and len(curr) >= 3:
- # choice = curr[1].getChoices()
- choicelist = [(ename, eservice)]
- curr[1].setChoices(choicelist, ename)
- curr[1].saved_value = True
- new = (self.destext[curr[2]] + ename, curr[1], curr[2])
- self["config"].list[self["config"].getCurrentIndex()] = new
- self["config"].invalidateCurrent()
-
- def keyYellow(self):
- logger.info("...")
- curr = self["config"].getCurrent()
- if curr and len(curr) >= 3:
- def del_curr(res):
- logger.info("...")
- if res:
- choices = [("", self.destext['notfound'])]
- curr[1].setChoices(choices, '')
- curr[1].saved_value = True
- new = (self.destext[curr[2]] + self.destext['notfound'], curr[1], curr[2])
- self["config"].list[self["config"].getCurrentIndex()] = new
- self["config"].invalidateCurrent()
-
- text = "%s\n%s\n\n%s" % (curr[1].getValue(), curr[1].getText(), _('Remove'))
- self.session.openWithCallback(del_curr, MessageBox, text)
-
- def keySave(self):
- logger.info("...")
- if self["config"].isChanged():
- if self.settings.sd.saved_value:
- self.mdict['enamesd'] = self.settings.sd.getValue()
- if self.settings.sd.getText() == self.destext['notfound']:
- self.mdict['servicesd'] = ''
- else:
- self.mdict['servicesd'] = self.settings.sd.getText()
- if self.settings.hd.saved_value:
- self.mdict['enamehd'] = self.settings.hd.getValue()
- if self.settings.hd.getText() == self.destext['notfound']:
- self.mdict['servicehd'] = ''
- else:
- self.mdict['servicehd'] = self.settings.hd.getText()
- if self.settings.uhd.saved_value:
- self.mdict['enameuhd'] = self.settings.uhd.getValue()
- if self.settings.uhd.getText() == self.destext['notfound']:
- self.mdict['serviceuhd'] = ''
- else:
- self.mdict['serviceuhd'] = self.settings.uhd.getText()
-
- self.close(True)
- else:
- self.close(False)
-
- def keyOK(self):
- logger.info("...")
- curr = self["config"].getCurrent()
- if curr and len(curr) >= 3:
- self.session.openWithCallback(self.SimpleChannelCallback, MYSimpleChannelSelection, _("Select"))