diff --git a/src/services/channel-service.js b/src/services/channel-service.js index ee7facc..30945f6 100644 --- a/src/services/channel-service.js +++ b/src/services/channel-service.js @@ -105,6 +105,11 @@ function cleanUpChannel(channel) { delete channel.filler; channel.fallback = channel.fallback.flatMap( cleanUpProgram ); + // Set default for mergeAdjacentPrograms if not already defined + if (typeof channel.mergeAdjacentPrograms === 'undefined') { + channel.mergeAdjacentPrograms = false; // Disabled by default for backward compatibility + } + // Calculate total channel duration using effective durations channel.duration = 0; for (let i = 0; i < channel.programs.length; i++) { diff --git a/src/services/tv-guide-service.js b/src/services/tv-guide-service.js index d44ad13..85bbe3e 100644 --- a/src/services/tv-guide-service.js +++ b/src/services/tv-guide-service.js @@ -365,8 +365,10 @@ class TVGuideService extends events.EventEmitter } } - // Merge adjacent programs with the same ratingKey - result.programs = this.mergeAdjacentSamePrograms(result.programs); + // Only merge programs if enabled in channel settings + if (channel.mergeAdjacentPrograms === true) { + result.programs = this.mergeAdjacentSamePrograms(result.programs); + } return result; } diff --git a/web/public/templates/channel-config.html b/web/public/templates/channel-config.html index 081300d..7c60b99 100644 --- a/web/public/templates/channel-config.html +++ b/web/public/templates/channel-config.html @@ -727,6 +727,15 @@ (This will hide the channel from TV guides, spoofed HDHR, m3u playlist... The channel can still be streamed directly or be used as a redirect target.) + +
+
+ + + + (When enabled, adjacent programs with the same content ID will appear as a single program in the guide. This is useful for shows split by commercials or bumpers.) +
+