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' ')