From ac2ca1fec211d7793c3cacc219204515aa4defe8 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sat, 15 Oct 2016 18:12:16 -0400 Subject: [PATCH] update recording dialogs --- .../Entities/InternalItemsQuery.cs | 2 +- MediaBrowser.Model/Entities/MediaStream.cs | 15 +++++++++++++-- .../Library/MediaSourceManager.cs | 1 + .../Library/Resolvers/TV/SeriesResolver.cs | 6 ++++++ .../LiveTv/LiveTvManager.cs | 9 ++++----- .../Persistence/SqliteItemRepository.cs | 13 ++++++------- 6 files changed, 31 insertions(+), 15 deletions(-) diff --git a/MediaBrowser.Controller/Entities/InternalItemsQuery.cs b/MediaBrowser.Controller/Entities/InternalItemsQuery.cs index fec703b946..3fb118a9cf 100644 --- a/MediaBrowser.Controller/Entities/InternalItemsQuery.cs +++ b/MediaBrowser.Controller/Entities/InternalItemsQuery.cs @@ -182,7 +182,7 @@ namespace MediaBrowser.Controller.Entities case ItemFields.HomePageUrl: case ItemFields.VoteCount: case ItemFields.DisplayMediaType: - case ItemFields.ServiceName: + //case ItemFields.ServiceName: case ItemFields.Genres: case ItemFields.Studios: case ItemFields.Settings: diff --git a/MediaBrowser.Model/Entities/MediaStream.cs b/MediaBrowser.Model/Entities/MediaStream.cs index 990de332e1..6d3e2ce4c3 100644 --- a/MediaBrowser.Model/Entities/MediaStream.cs +++ b/MediaBrowser.Model/Entities/MediaStream.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using MediaBrowser.Model.Dlna; using MediaBrowser.Model.Extensions; using System.Diagnostics; @@ -47,7 +48,7 @@ namespace MediaBrowser.Model.Entities { if (!string.IsNullOrEmpty(Title)) { - return Title; + return AddLanguageIfNeeded(Title); } if (Type == MediaStreamType.Audio) @@ -115,6 +116,16 @@ namespace MediaBrowser.Model.Entities } } + private string AddLanguageIfNeeded(string title) + { + if (!string.IsNullOrEmpty(Language) && title.IndexOf(Language, StringComparison.OrdinalIgnoreCase) == -1) + { + title = StringHelper.FirstToUpper(Language) + " " + title; + } + + return title; + } + public string NalLengthSize { get; set; } /// diff --git a/MediaBrowser.Server.Implementations/Library/MediaSourceManager.cs b/MediaBrowser.Server.Implementations/Library/MediaSourceManager.cs index e7bfe56f2e..716d627a93 100644 --- a/MediaBrowser.Server.Implementations/Library/MediaSourceManager.cs +++ b/MediaBrowser.Server.Implementations/Library/MediaSourceManager.cs @@ -360,6 +360,7 @@ namespace MediaBrowser.Server.Implementations.Library public async Task OpenLiveStream(LiveStreamRequest request, bool enableAutoClose, CancellationToken cancellationToken) { + enableAutoClose = false; await _liveStreamSemaphore.WaitAsync(cancellationToken).ConfigureAwait(false); try diff --git a/MediaBrowser.Server.Implementations/Library/Resolvers/TV/SeriesResolver.cs b/MediaBrowser.Server.Implementations/Library/Resolvers/TV/SeriesResolver.cs index 1e480e265f..3217cd67b9 100644 --- a/MediaBrowser.Server.Implementations/Library/Resolvers/TV/SeriesResolver.cs +++ b/MediaBrowser.Server.Implementations/Library/Resolvers/TV/SeriesResolver.cs @@ -85,6 +85,12 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.TV { if (args.ContainsFileSystemEntryByName("tvshow.nfo")) { + if (args.Parent.IsRoot) + { + // For now, return null, but if we want to allow this in the future then add some additional checks to guard against a misplaced tvshow.nfo + return null; + } + return new Series { Path = args.Path, diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs index bac9789b5e..aa404b37ca 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs @@ -1752,7 +1752,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv public async Task AddInfoToProgramDto(List> tuples, List fields, User user = null) { - var recordingTuples = new List>(); + var programTuples = new List>(); foreach (var tuple in tuples) { @@ -1812,18 +1812,17 @@ namespace MediaBrowser.Server.Implementations.LiveTv } } - var service = GetService(program); - var serviceName = service == null ? null : service.Name; + var serviceName = program.ServiceName; if (fields.Contains(ItemFields.ServiceName)) { dto.ServiceName = serviceName; } - recordingTuples.Add(new Tuple(dto, serviceName, program.ExternalId, program.ExternalSeriesIdLegacy)); + programTuples.Add(new Tuple(dto, serviceName, program.ExternalId, program.ExternalSeriesIdLegacy)); } - await AddRecordingInfo(recordingTuples, CancellationToken.None).ConfigureAwait(false); + await AddRecordingInfo(programTuples, CancellationToken.None).ConfigureAwait(false); } public void AddInfoToRecordingDto(BaseItem item, BaseItemDto dto, User user = null) diff --git a/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs b/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs index 2235bfe0da..f33b18389a 100644 --- a/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs +++ b/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs @@ -1188,7 +1188,7 @@ namespace MediaBrowser.Server.Implementations.Persistence public ItemImageInfo ItemImageInfoFromValueString(string value) { - var parts = value.Split(new[] { '*' }, StringSplitOptions.RemoveEmptyEntries); + var parts = value.Split(new[] { '*' }, StringSplitOptions.None); var image = new ItemImageInfo(); @@ -1633,14 +1633,13 @@ namespace MediaBrowser.Server.Implementations.Persistence } index++; - if (query.HasField(ItemFields.ServiceName)) + // TODO: Even if not needed by apps, the server needs it internally + // But get this excluded from contexts where it is not needed + if (!reader.IsDBNull(index)) { - if (!reader.IsDBNull(index)) - { - item.ServiceName = reader.GetString(index); - } - index++; + item.ServiceName = reader.GetString(index); } + index++; if (!reader.IsDBNull(index)) {