From 740b2c8f6a764f2d064a76de20f7daabf1bfb1fb Mon Sep 17 00:00:00 2001 From: frankdpGH <60138601+frankdpGH@users.noreply.github.com> Date: Fri, 4 Sep 2026 09:52:39 +0200 Subject: [PATCH 1/2] Refactor start timestamp calculation in api.py Update timestamp calculation for livestream to handle timezone information. --- resources/lib/api.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/lib/api.py b/resources/lib/api.py index 56ffa9dd..00c783a8 100644 --- a/resources/lib/api.py +++ b/resources/lib/api.py @@ -2866,7 +2866,8 @@ def convert_episode(episode, destination=None): channel = episode.get('brand') start_time = episode.get('status').get('text').get('small').split(' - ')[0] hours, minutes = map(int, start_time.split(':')) - start_ts = now.replace(hour=hours, minute=minutes, second=0, microsecond=0).timestamp() + dt = now.replace(hour=hours, minute=minutes, second=0, microsecond=0) + start_ts = dt.replace(tzinfo=None).timestamp() else: comp_id = episode.get('componentId', '').lstrip('#') decoded = b64decode(comp_id.encode('utf-8')).decode('utf-8') From 4fb75ed3b043910cfabc61c7438e9be7356c0c83 Mon Sep 17 00:00:00 2001 From: frankdpGH <60138601+frankdpGH@users.noreply.github.com> Date: Sun, 13 Sep 2026 12:16:25 +0200 Subject: [PATCH 2/2] Avoid error when StatusMeta is None /data/addons/plugin.video.vrt.nu/resources/lib/api.py", line 2757, in convert_episode status = next((item.get('value') for item in episode.get('statusMeta', [])), None) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ TypeError: 'NoneType' object is not iterable --- resources/lib/api.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/resources/lib/api.py b/resources/lib/api.py index 00c783a8..72748cc4 100644 --- a/resources/lib/api.py +++ b/resources/lib/api.py @@ -2754,7 +2754,9 @@ def convert_episode(episode, destination=None): # Duration progress = episode.get('progress') or {} - status = next((item.get('value') for item in episode.get('statusMeta', [])), None) + status_meta = episode.get("statusMeta") or [] + status = next((item.get("value") for item in status_meta), None) + # status = next((item.get('value') for item in episode.get('statusMeta', [])), None) gives error if statusMeta is None alt_status = ((episode.get('status') or {}).get('text') or {}).get('default', '') text = status or alt_status seconds = progress.get('durationInSeconds') @@ -2809,7 +2811,7 @@ def convert_episode(episode, destination=None): meta = raw tapu = meta.get('$tapu', '') parts = tapu.split("/") - log(0, f'tapu is {tapu}, parts is {parts}') + log(2, f'tapu is {tapu}, parts is {parts}') value = parts[4] if len(parts) > 4 else "" m = re.search(r'(\d+)', value) season_no = int(m.group(1)) if m else None