diff --git a/src/services/channel-service.js b/src/services/channel-service.js index b981f9c..cffcf70 100644 --- a/src/services/channel-service.js +++ b/src/services/channel-service.js @@ -16,17 +16,19 @@ class ChannelService extends events.EventEmitter { async saveChannel(number, channelJson, options) { let channel = cleanUpChannel(channelJson); + let ignoreOnDemand = true; if ( (this.onDemandService != null) && ( (typeof(options) === 'undefined') || (options.ignoreOnDemand !== true) ) ) { + ignoreOnDemand = false; this.onDemandService.fixupChannelBeforeSave( channel ); } channelCache.saveChannelConfig( number, channel); await channelDB.saveChannel( number, channel ); - this.emit('channel-update', { channelNumber: number, channel: channel} ); + this.emit('channel-update', { channelNumber: number, channel: channel, ignoreOnDemand: ignoreOnDemand} ); } async deleteChannel(number) { diff --git a/src/video.js b/src/video.js index 39dab90..5dd1927 100644 --- a/src/video.js +++ b/src/video.js @@ -196,6 +196,8 @@ function video( channelService, fillerDB, db, programmingService, activeChannelS }; } else if (lineupItem != null) { redirectChannels = lineupItem.redirectChannels; + upperBounds = lineupItem.upperBounds; + brandChannel = redirectChannels[ redirectChannels.length -1]; } else { prog = programmingService.getCurrentProgramAndTimeElapsed(t0, channel); activeChannelService.peekChannel(t0, channel.number); @@ -284,6 +286,7 @@ function video( channelService, fillerDB, db, programmingService, activeChannelS for (let i = redirectChannels.length-1; i >= 0; i--) { lineupItem = JSON.parse( JSON.stringify(lineupItem )); lineupItem.redirectChannels = redirectChannels; + lineupItem.upperBounds = upperBounds; let u = upperBounds[i] + beginningOffset; if (typeof(u) !== 'undefined') { let u2 = upperBound; @@ -385,6 +388,10 @@ function video( channelService, fillerDB, db, programmingService, activeChannelS activeChannelService.registerChannelActive(t0, redirectChannels[i].number); } let listener = (data) => { + if (data.ignoreOnDemand) { + console.log("Ignore channel update because it is from on-demand service"); + return; + } let shouldStop = false; try { for (let i = 0; i < redirectChannels.length; i++) {