kpl-addons / plugin.video.tvpgo

tvpgo
MIT License
6 stars 0 forks source link

Kanały na żywo nie zawsze się ładują - lista m3u też nie działa. #4

Closed zuzia-dev closed 2 years ago

zuzia-dev commented 2 years ago

Przy wejściu w kanały na żywo pojawia się błąd. Problem występuje, tyle, że nie za każdym razem. Błąd dotyczy funkcji get_epgs

- NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
  Error Type: <class 'TypeError'>
  Error Contents: 'NoneType' object is not iterable
  Traceback (most recent call last):
File "/home/zuzia/.kodi/addons/plugin.video.tvpgo/main.py", line 752, in <module>
Main().run()
  File "/home/zuzia/.kodi/addons/script.module.libka/lib/libka/addon.py", line 152, in run
res = self.dispatch(sync=sync)
  File "/home/zuzia/.kodi/addons/script.module.libka/lib/libka/addon.py", line 146, in dispatch
return self.router.sync_dispatch(self.req.url, root=root, missing=missing)
  File "/home/zuzia/.kodi/addons/script.module.libka/lib/libka/routing.py", line 573, in sync_dispatch
return entry.method(*entry.args, **entry.kwargs)
  File "/home/zuzia/.kodi/addons/plugin.video.tvpgo/main.py", line 204, in live
epg_data = {epg.code: epg for epg in self.get_epgs()}
  File "/home/zuzia/.kodi/addons/plugin.video.tvpgo/main.py", line 154, in get_epgs
for e in data['items']:
  TypeError: 'NoneType' object is not iterable

Sprawdzałam na PC z Debianem, Kodi 19.4.

DenDyGH commented 2 years ago

Trwają prace nad nową wtyczką dla serwisów TVP, ale na pewno się temu przyjrzymy, prawdopodobnie po świętach.

Mariusz89B commented 2 years ago

@zuzia-dev Nalezy zmienic linie 153 w main.py na:

if tv_code is None or tv_code == data.get('station', {}).get('code'):

    itemz = data.get('items')
    if itemz:
        for e in itemz:
        start = e.get('date_start')
        end = e.get('date_end')
        now_msec = datetime.now().timestamp() * 1000
        if all_day or start <= now_msec <= end:
            ch_id = e.get('_id')
            ch_code = e.get('station_code')
            p_live = 'Live' if e.get('live') else ''
            prog = e.get('program')
            if prog is not None:
                imgs = prog.get('akpa_images')
                if imgs is not None:
                    for img in imgs:
                        img_id = img['fileName'].replace('.jpg', '')
                        p_img = f'https://s2.tvp.pl/images-akpa/0/0/0/uid_' \
                                f'{img_id}_width_1280_play_0_pos_0_gs_0_height_720.jpg '
                else:
                    p_img = ''
                epg_data.append(EpgInfo(ch_id, ch_code, p_live, start, end, e.get('duration'),
                                        prog['title'], prog['year'], prog['land'], prog['description'],
                                        prog['description_long'], p_img))

    return epg_data
zuzia-dev commented 2 years ago

@Mariusz89B jak zwykle nie zawodzisz, dziękuję! Ale zrób, proszę zip dla userów, żeby na święta mieli kanały TVP :)