diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations')
3 files changed, 38 insertions, 13 deletions
diff --git a/MediaBrowser.Server.Implementations/Dto/DtoService.cs b/MediaBrowser.Server.Implementations/Dto/DtoService.cs index d5faa25bf..932c7ba3f 100644 --- a/MediaBrowser.Server.Implementations/Dto/DtoService.cs +++ b/MediaBrowser.Server.Implementations/Dto/DtoService.cs @@ -739,10 +739,12 @@ namespace MediaBrowser.Server.Implementations.Dto dto.MediaType = item.MediaType; dto.LocationType = item.LocationType; - var hasLanguage = item as IHasLanguage; - if (hasLanguage != null) + var hasLang = item as IHasPreferredMetadataLanguage; + + if (hasLang != null) { - dto.Language = hasLanguage.Language; + dto.PreferredMetadataCountryCode = hasLang.PreferredMetadataCountryCode; + dto.PreferredMetadataLanguage = hasLang.PreferredMetadataLanguage; } var hasCriticRating = item as IHasCriticRating; diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs index dad0c915d..6552c6892 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs @@ -62,7 +62,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv if (program != null) { - dto.ProgramInfo = GetProgramInfoDto(program); + dto.ProgramInfo = GetProgramInfoDto(program, channel.ChannelInfo.Name); dto.ProgramInfo.TimerId = dto.Id; dto.ProgramInfo.SeriesTimerId = dto.SeriesTimerId; @@ -260,7 +260,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv return dto; } - public ProgramInfoDto GetProgramInfoDto(LiveTvProgram item, User user = null) + public ProgramInfoDto GetProgramInfoDto(LiveTvProgram item, string channelName, User user = null) { var program = item.ProgramInfo; @@ -283,7 +283,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv AspectRatio = program.AspectRatio, IsRepeat = program.IsRepeat, EpisodeTitle = program.EpisodeTitle, - ChannelName = program.ChannelName, + ChannelName = channelName, IsMovie = program.IsMovie, IsSeries = program.IsSeries, IsSports = program.IsSports, diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs index 281f38e87..1d12e2d45 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs @@ -123,11 +123,14 @@ namespace MediaBrowser.Server.Implementations.LiveTv public LiveTvChannel GetInternalChannel(string id) { - var guid = new Guid(id); + return GetInternalChannel(new Guid(id)); + } + private LiveTvChannel GetInternalChannel(Guid id) + { LiveTvChannel channel = null; - _channels.TryGetValue(guid, out channel); + _channels.TryGetValue(id, out channel); return channel; } @@ -272,11 +275,24 @@ namespace MediaBrowser.Server.Implementations.LiveTv return item; } + private LiveTvChannel GetChannel(LiveTvProgram program) + { + var programChannelId = program.ProgramInfo.ChannelId; + + var internalProgramChannelId = _tvDtoService.GetInternalChannelId(program.ServiceName, programChannelId); + + return GetInternalChannel(internalProgramChannelId); + } + public async Task<ProgramInfoDto> GetProgram(string id, CancellationToken cancellationToken, User user = null) { var program = GetInternalProgram(id); - var dto = _tvDtoService.GetProgramInfoDto(program, user); + var channel = GetChannel(program); + + var channelName = channel == null ? null : channel.ChannelInfo.Name; + + var dto = _tvDtoService.GetProgramInfoDto(program, channelName, user); await AddRecordingInfo(new[] { dto }, cancellationToken).ConfigureAwait(false); @@ -311,7 +327,14 @@ namespace MediaBrowser.Server.Implementations.LiveTv var returnArray = programs .OrderBy(i => i.ProgramInfo.StartDate) - .Select(i => _tvDtoService.GetProgramInfoDto(i, user)) + .Select(i => + { + var channel = GetChannel(i); + + var channelName = channel == null ? null : channel.ChannelInfo.Name; + + return _tvDtoService.GetProgramInfoDto(i, channelName, user); + }) .ToArray(); await AddRecordingInfo(returnArray, cancellationToken).ConfigureAwait(false); @@ -447,7 +470,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv var returnArray = entities .Select(i => { - var channel = string.IsNullOrEmpty(i.RecordingInfo.ChannelId) ? null : GetInternalChannel(_tvDtoService.GetInternalChannelId(service.Name, i.RecordingInfo.ChannelId).ToString("N")); + var channel = string.IsNullOrEmpty(i.RecordingInfo.ChannelId) ? null : GetInternalChannel(_tvDtoService.GetInternalChannelId(service.Name, i.RecordingInfo.ChannelId)); return _tvDtoService.GetRecordingInfoDto(i, channel, service, user); }) .OrderByDescending(i => i.StartDate) @@ -504,7 +527,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv .Select(i => { var program = string.IsNullOrEmpty(i.ProgramId) ? null : GetInternalProgram(_tvDtoService.GetInternalProgramId(service.Name, i.ProgramId).ToString("N")); - var channel = string.IsNullOrEmpty(i.ChannelId) ? null : GetInternalChannel(_tvDtoService.GetInternalChannelId(service.Name, i.ChannelId).ToString("N")); + var channel = string.IsNullOrEmpty(i.ChannelId) ? null : GetInternalChannel(_tvDtoService.GetInternalChannelId(service.Name, i.ChannelId)); return _tvDtoService.GetTimerInfoDto(i, service, program, channel); }) @@ -603,7 +626,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv if (!string.IsNullOrEmpty(i.ChannelId)) { var internalChannelId = _tvDtoService.GetInternalChannelId(service.Name, i.ChannelId); - var channel = GetInternalChannel(internalChannelId.ToString("N")); + var channel = GetInternalChannel(internalChannelId); channelName = channel == null ? null : channel.ChannelInfo.Name; } |
