1515from Components .config import config
1616from Components .Converter .Converter import Converter
1717from Components .Element import cached
18- from enigma import eServiceCenter , eServiceReference , iServiceInformation
18+ from enigma import iServiceInformation
1919from xml .etree .cElementTree import parse
2020
2121##########################################################################
2222
2323
24- class MetrixHDExtServiceInfo (Converter , object ):
24+ class MetrixHDExtServiceInfo (Converter ):
2525 SERVICENAME = 0
2626 SERVICENUMBER = 1
2727 SERVICENUMBERANDNAME = 2
@@ -34,9 +34,6 @@ class MetrixHDExtServiceInfo(Converter, object):
3434 def __init__ (self , type ):
3535 Converter .__init__ (self , type )
3636 self .satNames = {}
37- self .readSatXml ()
38- self .getLists ()
39-
4037 if type == "ServiceName" :
4138 self .type = self .SERVICENAME
4239 elif type == "ServiceNumber" :
@@ -46,10 +43,12 @@ def __init__(self, type):
4643 elif type == "OrbitalPosition" :
4744 self .type = self .ORBITALPOSITION
4845 elif type == "SatName" :
46+ self .readSatXml ()
4947 self .type = self .SATNAME
5048 elif type == "Provider" :
5149 self .type = self .PROVIDER
5250 elif type == "Config" :
51+ self .readSatXml ()
5352 self .type = self .FROMCONFIG
5453 else :
5554 self .type = self .ALL
@@ -66,31 +65,28 @@ def getText(self):
6665 try :
6766 service = self .source .serviceref
6867 num = service and service .getChannelNum () or None
69- except :
68+ except Exception :
7069 num = None
71- if num :
72- number = str (num )
73- else :
74- num = self .getServiceNumber (name , info .getInfoString (iServiceInformation .sServiceref ))
75- number = num and str (num ) or ''
70+ number = str (num ) if num is not None else ""
7671 orbital = self .getOrbitalPosition (info )
77- satName = self .satNames .get (orbital , orbital )
7872
7973 if len (number ) > 5 :
80- number = ''
74+ number = ""
8175 if self .type == self .SERVICENAME :
8276 text = name
8377 elif self .type == self .SERVICENUMBER :
8478 text = number
8579 elif self .type == self .SERVICENUMBERANDNAME :
86- text = number + " " + name
80+ text = f" { number } { name } "
8781 elif self .type == self .ORBITALPOSITION :
8882 text = orbital
8983 elif self .type == self .SATNAME :
84+ satName = self .satNames .get (orbital , orbital )
9085 text = satName
9186 elif self .type == self .PROVIDER :
9287 text = info .getInfoString (iServiceInformation .sProvider )
9388 elif self .type == self .FROMCONFIG :
89+ satName = self .satNames .get (orbital , orbital )
9490 if config .plugins .ExtendedServiceInfo .showServiceNumber .value is True and number != "" :
9591 text = f"{ number } . { name } "
9692 else :
@@ -101,10 +97,7 @@ def getText(self):
10197 else :
10298 text = f"{ text } ({ orbital } )"
10399 else :
104- if number == "" :
105- text = name
106- else :
107- text = f"{ number } . { name } "
100+ text = name if number == "" else f"{ number } { name } "
108101 if orbital != "" :
109102 text = f"{ text } ({ orbital } )"
110103
@@ -115,30 +108,10 @@ def getText(self):
115108 def changed (self , what ):
116109 Converter .changed (self , what )
117110
118- def getListFromRef (self , ref ):
119- list = []
120-
121- serviceHandler = eServiceCenter .getInstance ()
122- services = serviceHandler .list (ref )
123- bouquets = services and services .getContent ("SN" , True )
124-
125- for bouquet in bouquets :
126- services = serviceHandler .list (eServiceReference (bouquet [0 ]))
127- channels = services and services .getContent ("SN" , True )
128- for channel in channels :
129- if not channel [0 ].startswith ("1:64:" ): # Ignore marker
130- list .append (channel [1 ].replace ('\xc2 \x86 ' , '' ).replace ('\xc2 \x87 ' , '' ).replace ('\x86 ' , '' ).replace ('\x87 ' , '' ))
131-
132- return list
133-
134- def getLists (self ):
135- self .tv_list = self .getListFromRef (eServiceReference ('1:7:1:0:0:0:0:0:0:0:(type == 1) || (type == 17) || (type == 195) || (type == 25) FROM BOUQUET "bouquets.tv" ORDER BY bouquet' ))
136- self .radio_list = self .getListFromRef (eServiceReference ('1:7:2:0:0:0:0:0:0:0:(type == 2) FROM BOUQUET "bouquets.radio" ORDER BY bouquet' ))
137-
138111 def readSatXml (self ):
139112 try :
140113 satXml = parse ("/etc/enigma2/satellites.xml" ).getroot ()
141- except :
114+ except Exception :
142115 satXml = parse ("/etc/tuxbox/satellites.xml" ).getroot ()
143116 if satXml is not None :
144117 for sat in satXml .findall ("sat" ):
@@ -154,33 +127,14 @@ def readSatXml(self):
154127 position = f"0{ position } "
155128 self .satNames [position ] = name
156129
157- def getServiceNumber (self , name , ref ):
158- _list = []
159- if ref .startswith ("1:0:2" ):
160- _list = self .radio_list
161- elif ref .startswith ("1:0:1" ):
162- _list = self .tv_list
163- number = ""
164- if name in _list :
165- for idx in list (range (1 , len (_list ))):
166- if name == _list [idx - 1 ]:
167- number = str (idx )
168- break
169- return number
170-
171130 def getOrbitalPosition (self , info ):
172131 transponderData = info .getInfoObject (iServiceInformation .sTransponderData )
173- orbital = 0
174132 if transponderData is not None :
175133 if isinstance (transponderData , float ):
176134 return ""
177135 if "tuner_type" in transponderData :
178136 if (transponderData ["tuner_type" ] == "DVB-S" ) or (transponderData ["tuner_type" ] == "DVB-S2" ):
179137 orbital = transponderData ["orbital_position" ]
180138 orbital = int (orbital )
181- if orbital > 1800 :
182- orbital = str ((float (3600 - orbital )) / 10.0 ) + "W"
183- else :
184- orbital = str ((float (orbital )) / 10.0 ) + "E"
185- return orbital
139+ return str ((float (3600 - orbital )) / 10.0 ) + "W" if orbital > 1800 else str ((float (orbital )) / 10.0 ) + "E"
186140 return ""
0 commit comments