MovistarTV / tv_grab_es_movistartv

Grabber XMLTV para Movistar TV
GNU General Public License v3.0
45 stars 20 forks source link

desde ayer me da una excepcion y no se genera la epg #11

Open cafs78 opened 6 years ago

cafs78 commented 6 years ago

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'

cafs78 commented 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)

MovistarTV commented 6 years ago

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.

cafs78 commented 6 years ago

ok probaré, gracias