diff --git a/apps/epg/tasks.py b/apps/epg/tasks.py index 3c2df895..d3062171 100644 --- a/apps/epg/tasks.py +++ b/apps/epg/tasks.py @@ -1634,6 +1634,9 @@ def extract_custom_properties(prog): elif system == 'onscreen' and ep_num.text: # Just store the raw onscreen format custom_props['onscreen_episode'] = ep_num.text.strip() + elif system == 'dd_progid' and ep_num.text: + # Store the dd_progid format + custom_props['dd_progid'] = ep_num.text.strip() # Extract ratings more efficiently rating_elem = prog.find('rating') @@ -1669,7 +1672,7 @@ def extract_custom_properties(prog): custom_props['icon'] = icon_elem.get('src') # Simpler approach for boolean flags - for kw in ['previously-shown', 'premiere', 'new']: + for kw in ['previously-shown', 'premiere', 'new', 'live']: if prog.find(kw) is not None: custom_props[kw.replace('-', '_')] = True diff --git a/apps/output/views.py b/apps/output/views.py index eb00270d..afe3927a 100644 --- a/apps/output/views.py +++ b/apps/output/views.py @@ -314,6 +314,10 @@ def generate_epg(request, profile_name=None): if 'onscreen_episode' in custom_data: xml_lines.append(f' {html.escape(custom_data["onscreen_episode"])}') + # Handle dd_progid format + if 'dd_progid' in custom_data: + xml_lines.append(f' {html.escape(custom_data["dd_progid"])}') + # Add season and episode numbers in xmltv_ns format if available if 'season' in custom_data and 'episode' in custom_data: season = int(custom_data['season']) - 1 if str(custom_data['season']).isdigit() else 0 @@ -360,6 +364,9 @@ def generate_epg(request, profile_name=None): if custom_data.get('new', False): xml_lines.append(f' ') + if custom_data.get('live', False): + xml_lines.append(f' ') + except Exception as e: xml_lines.append(f' ')