Open cafs78 opened 6 years ago
sin tener ni iea de como va el programa, poniendo un if en la funcion __parse_bin_epg parece que no peta justo en ese punto (solia petar muy al principio y ahora lleva ya un rato)
def __parse_bin_epg(self):
merged_epg = {}
for epg_day in self.__epg:
if epg_day is not None:
programs = {}
for ch_id in epg_day.keys():
if epg_day[ch_id] and 'replacement' not in epg_day[ch_id]:
head = self.__parse_bin_epg_header(epg_day[ch_id])
programs[str(head['service_id'])] = self.__parse_bin_epg_body(head['data'])
self.__merge_dicts(merged_epg, programs)
logger.debug('Canales con EPG: %s' % len(merged_epg))
cache.save_epg(merged_epg)
return merged_epg
otra cosa es que tenga sentido que epg_day sea None (como digo ni idea de como va el programa)
No, no tiene sentido que epg_day
sea None
, precisamente por eso se genera la excepción y el programa se detiene. El valor es None
porque falta un día de EPG. Durante la descarga uno de los hilos dio un timeout y no pudo obtener una parte de la guía.
La descarga de esta guía básica viene por Multicast y es multihilo, se conecta a varias IP simultáneamente para agilizar el tiempo de ejecución del grabber. Por defecto hay tres hilos (tres conexiones a tres IP diferentes) porque con cuatro o más algunos de los hilos empezaban a dar timeouts.
Parece ser que en tu caso tres hilos es demasiado... prueba a bajarlo a dos.
Edita el grabber y busca la línea:
threads = 3
Cámbiala por:
threads = 2
Si sigues teniendo problemas desactiva el multihilo. Busca la línea:
use_multithread = True
Y cámbiala por:
use_multithread = False
Si incluso con el multihilo desactivado sigue dando timeouts comprueba tu red.
ok probaré, gracias
06/10/2018 18:47:30] [INFO] --------------------------------------------------- [06/10/2018 18:47:30] [INFO] MovistarTV EPG Grabber [06/10/2018 18:47:30] [INFO] Parámetros: ['--tvheadend', '/home/hts/MovistarTV'] [06/10/2018 18:47:30] [INFO] --------------------------------------------------- [06/10/2018 18:47:30] [INFO] Cookie: JSESSIONID=474B6A811C821D8D07383AEC79E017A0-node9; Path=/appserver/; HttpOnly [06/10/2018 18:47:30] [INFO] tvPackages: UTX6C|UTX6L [06/10/2018 18:47:30] [INFO] Demarcation: 32 [06/10/2018 18:47:30] [INFO] Buscando el Proveedor de Servicios de Extremadura [06/10/2018 18:47:30] [INFO] Proveedor de Servicios de Extremadura: 239.0.2.162 [06/10/2018 18:47:30] [INFO] Canales: 423 [06/10/2018 18:47:30] [INFO] Paquetes: 166 [06/10/2018 18:47:30] [INFO] Días de EPG: 8 [06/10/2018 18:47:30] [INFO] Multithread: 3 descargas simultáneas [06/10/2018 18:47:30] [INFO] Descargando EPG_0_BIN.imagenio.es [06/10/2018 18:47:30] [INFO] Descargando EPG_1_BIN.imagenio.es [06/10/2018 18:47:30] [INFO] Descargando EPG_2_BIN.imagenio.es [06/10/2018 18:48:08] [INFO] Descargando EPG_3_BIN.imagenio.es [06/10/2018 18:48:09] [INFO] Descargando EPG_4_BIN.imagenio.es [06/10/2018 18:48:09] [INFO] Descargando EPG_5_BIN.imagenio.es [06/10/2018 18:48:12] [ERROR] Error al descargar los archivos XML: timed out [06/10/2018 18:48:12] [INFO] Descargando EPG_6_BIN.imagenio.es [06/10/2018 18:48:14] [INFO] Descargando EPG_7_BIN.imagenio.es [06/10/2018 18:48:52] [CRITICAL] 'NoneType' object has no attribute 'keys' Traceback (most recent call last): File "/home/pi/tv_grab_es_movistartv/tv_grab_es_movistartv.py", line 1199, in
epg = iptv.get_epg()
File "/home/pi/tv_grab_es_movistartv/tv_grab_es_movistartv.py", line 779, in get_epg
return self.parse_bin_epg()
File "/home/pi/tv_grab_es_movistartv/tv_grab_es_movistartv.py", line 885, in parse_bin_epg
for ch_id in epg_day.keys():
AttributeError: 'NoneType' object has no attribute 'keys'