diff --git a/ErsatzTV.Infrastructure/Search/ElasticSearchIndex.cs b/ErsatzTV.Infrastructure/Search/ElasticSearchIndex.cs index db934d19c..3a6fb5150 100644 --- a/ErsatzTV.Infrastructure/Search/ElasticSearchIndex.cs +++ b/ErsatzTV.Infrastructure/Search/ElasticSearchIndex.cs @@ -46,7 +46,7 @@ public class ElasticSearchIndex : ISearchIndex return exists.IsValidResponse; } - public int Version => 39; + public int Version => 40; public async Task Initialize( ILocalFileSystem localFileSystem, @@ -777,7 +777,7 @@ public class ElasticSearchIndex : ISearchIndex foreach (MediaVersion version in mediaVersions.HeadOrNone()) { var mediaCodes = version.Streams - .Filter(ms => ms.MediaStreamKind == MediaStreamKind.Subtitle) + .Filter(ms => ms.MediaStreamKind is MediaStreamKind.Subtitle or MediaStreamKind.ExternalSubtitle) .Map(ms => ms.Language) .Distinct() .ToList(); @@ -814,7 +814,10 @@ public class ElasticSearchIndex : ISearchIndex private static List GetSubLanguageTags(IEnumerable mediaVersions) => mediaVersions - .Map(mv => mv.Streams.Filter(ms => ms.MediaStreamKind == MediaStreamKind.Subtitle).Map(ms => ms.Language)) + .Map( + mv => mv.Streams + .Filter(ms => ms.MediaStreamKind is MediaStreamKind.Subtitle or MediaStreamKind.ExternalSubtitle) + .Map(ms => ms.Language)) .Flatten() .Filter(s => !string.IsNullOrWhiteSpace(s)) .Distinct() diff --git a/ErsatzTV.Infrastructure/Search/LuceneSearchIndex.cs b/ErsatzTV.Infrastructure/Search/LuceneSearchIndex.cs index 83cf5839f..a2c2a1eb2 100644 --- a/ErsatzTV.Infrastructure/Search/LuceneSearchIndex.cs +++ b/ErsatzTV.Infrastructure/Search/LuceneSearchIndex.cs @@ -111,7 +111,7 @@ public sealed class LuceneSearchIndex : ISearchIndex return Task.FromResult(directoryExists && fileExists); } - public int Version => 39; + public int Version => 40; public async Task Initialize( ILocalFileSystem localFileSystem, @@ -513,9 +513,12 @@ public sealed class LuceneSearchIndex : ISearchIndex .ToList(); await AddLanguages(searchRepository, doc, mediaCodes); - + var subMediaCodes = mediaVersions - .Map(mv => mv.Streams.Filter(ms => ms.MediaStreamKind == MediaStreamKind.Subtitle).Map(ms => ms.Language)) + .Map( + mv => mv.Streams + .Filter(ms => ms.MediaStreamKind is MediaStreamKind.Subtitle or MediaStreamKind.ExternalSubtitle) + .Map(ms => ms.Language)) .Flatten() .Filter(c => !string.IsNullOrWhiteSpace(c)) .Distinct() diff --git a/ErsatzTV/Pages/Index.razor b/ErsatzTV/Pages/Index.razor index c7d16908d..9cb679a35 100644 --- a/ErsatzTV/Pages/Index.razor +++ b/ErsatzTV/Pages/Index.razor @@ -130,7 +130,17 @@ _cts.Dispose(); } - private async void OnStartupProgress(object sender, EventArgs e) => await InvokeAsync(StateHasChanged); + private async void OnStartupProgress(object sender, EventArgs e) + { + try + { + await InvokeAsync(StateHasChanged); + } + catch (Exception) + { + // do nothing + } + } protected override async Task OnParametersSetAsync() {