rework tuner channel id
This commit is contained in:
parent
ce0547abde
commit
e6178a65f9
|
@ -498,11 +498,17 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
|
|||
|
||||
if (!string.IsNullOrWhiteSpace(tunerChannel.TunerChannelId))
|
||||
{
|
||||
var mappedTunerChannelId = GetMappedChannel(tunerChannel.TunerChannelId, mappings);
|
||||
var tunerChannelId = tunerChannel.TunerChannelId;
|
||||
if (tunerChannelId.IndexOf(".json.schedulesdirect.org", StringComparison.OrdinalIgnoreCase) != -1)
|
||||
{
|
||||
tunerChannelId = tunerChannelId.Replace(".json.schedulesdirect.org", string.Empty, StringComparison.OrdinalIgnoreCase).TrimStart('I');
|
||||
}
|
||||
|
||||
var mappedTunerChannelId = GetMappedChannel(tunerChannelId, mappings);
|
||||
|
||||
if (string.IsNullOrWhiteSpace(mappedTunerChannelId))
|
||||
{
|
||||
mappedTunerChannelId = tunerChannel.TunerChannelId;
|
||||
mappedTunerChannelId = tunerChannelId;
|
||||
}
|
||||
|
||||
var channel = epgChannels.FirstOrDefault(i => string.Equals(mappedTunerChannelId, i.Id, StringComparison.OrdinalIgnoreCase));
|
||||
|
@ -644,8 +650,9 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
|
|||
|
||||
public Task<string> CreateTimer(TimerInfo timer, CancellationToken cancellationToken)
|
||||
{
|
||||
var existingTimer = _timerProvider.GetAll()
|
||||
.FirstOrDefault(i => string.Equals(timer.ProgramId, i.ProgramId, StringComparison.OrdinalIgnoreCase));
|
||||
var existingTimer = string.IsNullOrWhiteSpace(timer.ProgramId) ?
|
||||
null :
|
||||
_timerProvider.GetTimerByProgramId(timer.ProgramId);
|
||||
|
||||
if (existingTimer != null)
|
||||
{
|
||||
|
@ -724,10 +731,10 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
|
|||
return true;
|
||||
}
|
||||
|
||||
//if (string.Equals(i.SeriesId, info.SeriesId, StringComparison.OrdinalIgnoreCase) && !string.IsNullOrWhiteSpace(info.SeriesId))
|
||||
//{
|
||||
// return true;
|
||||
//}
|
||||
if (string.Equals(i.SeriesId, info.SeriesId, StringComparison.OrdinalIgnoreCase) && !string.IsNullOrWhiteSpace(info.SeriesId))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
})
|
||||
|
@ -740,7 +747,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
|
|||
timer.SeriesTimerId = info.Id;
|
||||
timer.IsManual = true;
|
||||
|
||||
_timerProvider.AddOrUpdate(timer);
|
||||
_timerProvider.AddOrUpdate(timer, false);
|
||||
}
|
||||
|
||||
await UpdateTimersForSeriesTimer(epgData, info, true, false).ConfigureAwait(false);
|
||||
|
@ -2340,6 +2347,13 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
|
|||
{
|
||||
var existingTimer = _timerProvider.GetTimer(timer.Id);
|
||||
|
||||
if (existingTimer == null)
|
||||
{
|
||||
existingTimer = string.IsNullOrWhiteSpace(timer.ProgramId)
|
||||
? null
|
||||
: _timerProvider.GetTimerByProgramId(timer.ProgramId);
|
||||
}
|
||||
|
||||
if (existingTimer == null)
|
||||
{
|
||||
if (ShouldCancelTimerForSeriesTimer(seriesTimer, timer))
|
||||
|
@ -2354,9 +2368,10 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
|
|||
}
|
||||
else
|
||||
{
|
||||
// Only update if not currently active
|
||||
// Only update if not currently active - test both new timer and existing in case Id's are different
|
||||
// Id's could be different if the timer was created manually prior to series timer creation
|
||||
ActiveRecordingInfo activeRecordingInfo;
|
||||
if (!_activeRecordings.TryGetValue(timer.Id, out activeRecordingInfo))
|
||||
if (!_activeRecordings.TryGetValue(timer.Id, out activeRecordingInfo) && !_activeRecordings.TryGetValue(existingTimer.Id, out activeRecordingInfo))
|
||||
{
|
||||
UpdateExistingTimerWithNewMetadata(existingTimer, timer);
|
||||
|
||||
|
|
|
@ -166,5 +166,10 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
|
|||
{
|
||||
return GetAll().FirstOrDefault(r => string.Equals(r.Id, id, StringComparison.OrdinalIgnoreCase));
|
||||
}
|
||||
|
||||
public TimerInfo GetTimerByProgramId(string programId)
|
||||
{
|
||||
return GetAll().FirstOrDefault(r => string.Equals(r.ProgramId, programId, StringComparison.OrdinalIgnoreCase));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1078,25 +1078,28 @@ namespace Emby.Server.Implementations.LiveTv
|
|||
|
||||
var channel = GetInternalChannel(program.ChannelId);
|
||||
|
||||
var channelUserdata = _userDataManager.GetUserData(userId, channel);
|
||||
if (channel != null)
|
||||
{
|
||||
var channelUserdata = _userDataManager.GetUserData(userId, channel);
|
||||
|
||||
if (channelUserdata.Likes ?? false)
|
||||
{
|
||||
score += 2;
|
||||
}
|
||||
else if (!(channelUserdata.Likes ?? true))
|
||||
{
|
||||
score -= 2;
|
||||
}
|
||||
if (channelUserdata.Likes ?? false)
|
||||
{
|
||||
score += 2;
|
||||
}
|
||||
else if (!(channelUserdata.Likes ?? true))
|
||||
{
|
||||
score -= 2;
|
||||
}
|
||||
|
||||
if (channelUserdata.IsFavorite)
|
||||
{
|
||||
score += 3;
|
||||
}
|
||||
if (channelUserdata.IsFavorite)
|
||||
{
|
||||
score += 3;
|
||||
}
|
||||
|
||||
if (factorChannelWatchCount)
|
||||
{
|
||||
score += channelUserdata.PlayCount;
|
||||
if (factorChannelWatchCount)
|
||||
{
|
||||
score += channelUserdata.PlayCount;
|
||||
}
|
||||
}
|
||||
|
||||
return score;
|
||||
|
|
|
@ -144,11 +144,6 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
|
|||
|
||||
channel.TunerChannelId = string.IsNullOrWhiteSpace(tvgId) ? channelId : tvgId;
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(channel.TunerChannelId) && channel.TunerChannelId.IndexOf(".json.schedulesdirect.org", StringComparison.OrdinalIgnoreCase) != -1)
|
||||
{
|
||||
channel.TunerChannelId = channel.TunerChannelId.Replace(".json.schedulesdirect.org", string.Empty, StringComparison.OrdinalIgnoreCase).TrimStart('I');
|
||||
}
|
||||
|
||||
var channelIdValues = new List<string>();
|
||||
if (!string.IsNullOrWhiteSpace(channelId))
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue
Block a user