Browse Source

include external subtitles in search index (#1602)

pull/1604/head
Jason Dove 2 years ago committed by GitHub
parent
commit
c743d07425
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 9
      ErsatzTV.Infrastructure/Search/ElasticSearchIndex.cs
  2. 9
      ErsatzTV.Infrastructure/Search/LuceneSearchIndex.cs
  3. 12
      ErsatzTV/Pages/Index.razor

9
ErsatzTV.Infrastructure/Search/ElasticSearchIndex.cs

@ -46,7 +46,7 @@ public class ElasticSearchIndex : ISearchIndex @@ -46,7 +46,7 @@ public class ElasticSearchIndex : ISearchIndex
return exists.IsValidResponse;
}
public int Version => 39;
public int Version => 40;
public async Task<bool> Initialize(
ILocalFileSystem localFileSystem,
@ -777,7 +777,7 @@ public class ElasticSearchIndex : ISearchIndex @@ -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 @@ -814,7 +814,10 @@ public class ElasticSearchIndex : ISearchIndex
private static List<string> GetSubLanguageTags(IEnumerable<MediaVersion> 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()

9
ErsatzTV.Infrastructure/Search/LuceneSearchIndex.cs

@ -111,7 +111,7 @@ public sealed class LuceneSearchIndex : ISearchIndex @@ -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<bool> Initialize(
ILocalFileSystem localFileSystem,
@ -513,9 +513,12 @@ public sealed class LuceneSearchIndex : ISearchIndex @@ -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()

12
ErsatzTV/Pages/Index.razor

@ -130,7 +130,17 @@ @@ -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()
{

Loading…
Cancel
Save