Browse Source

disambiguate song search results (#515)

pull/516/head
Jason Dove 5 years ago committed by GitHub
parent
commit
db3dfbd446
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      CHANGELOG.md
  2. 7
      ErsatzTV.Core/Metadata/LocalMetadataProvider.cs
  3. 3843
      ErsatzTV.Infrastructure/Migrations/20211128033237_Reset_SongMetadataOriginalTitle.Designer.cs
  4. 31
      ErsatzTV.Infrastructure/Migrations/20211128033237_Reset_SongMetadataOriginalTitle.cs
  5. 1
      ErsatzTV.Infrastructure/Search/SearchIndex.cs

1
CHANGELOG.md

@ -10,6 +10,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). @@ -10,6 +10,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Include song artist and cover art in channel guide (xmltv)
- Use subtitles to display errors, which fixes many edge cases of unescaped characters
- Properly split song genre tags
- Properly display all songs that have an identical album and title
### Added
- Add song genres to search index

7
ErsatzTV.Core/Metadata/LocalMetadataProvider.cs

@ -228,9 +228,6 @@ namespace ErsatzTV.Core.Metadata @@ -228,9 +228,6 @@ namespace ErsatzTV.Core.Metadata
Tags = new List<Tag>()
};
// TODO: check for cover artwork, and use for watermark if not embedded
// maybe add album as entity rather than string?
if (tags.TryGetValue(MetadataFormatTag.Album, out string album))
{
result.Album = album;
@ -254,7 +251,6 @@ namespace ErsatzTV.Core.Metadata @@ -254,7 +251,6 @@ namespace ErsatzTV.Core.Metadata
if (tags.TryGetValue(MetadataFormatTag.Title, out string title))
{
result.Title = title;
result.OriginalTitle = title;
}
if (tags.TryGetValue(MetadataFormatTag.Track, out string track))
@ -267,9 +263,10 @@ namespace ErsatzTV.Core.Metadata @@ -267,9 +263,10 @@ namespace ErsatzTV.Core.Metadata
if (string.IsNullOrWhiteSpace(result.Title))
{
result.Title = fallbackMetadata.Title;
result.OriginalTitle = fallbackMetadata.OriginalTitle;
}
result.OriginalTitle = fallbackMetadata.OriginalTitle;
// preserve folder tagging - maybe someone uses this
foreach (Tag tag in fallbackMetadata.Tags)
{

3843
ErsatzTV.Infrastructure/Migrations/20211128033237_Reset_SongMetadataOriginalTitle.Designer.cs generated

File diff suppressed because it is too large Load Diff

31
ErsatzTV.Infrastructure/Migrations/20211128033237_Reset_SongMetadataOriginalTitle.cs

@ -0,0 +1,31 @@ @@ -0,0 +1,31 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace ErsatzTV.Infrastructure.Migrations
{
public partial class Reset_SongMetadataOriginalTitle : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.Sql(
@"UPDATE LibraryPath SET LastScan = '0001-01-01 00:00:00' WHERE Id IN
(SELECT LP.Id FROM LibraryPath LP INNER JOIN Library L on L.Id = LP.LibraryId WHERE MediaKind = 5)");
migrationBuilder.Sql(
@"UPDATE Library SET LastScan = '0001-01-01 00:00:00' WHERE MediaKind = 5");
migrationBuilder.Sql(
@"UPDATE SongMetadata SET DateUpdated = '0001-01-01 00:00:00'");
migrationBuilder.Sql(
@"UPDATE LibraryFolder SET Etag = NULL WHERE Id IN
(SELECT LF.Id FROM LibraryFolder LF INNER JOIN LibraryPath LP on LF.LibraryPathId = LP.Id INNER JOIN Library L on LP.LibraryId = L.Id WHERE MediaKind = 5)");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
}
}
}

1
ErsatzTV.Infrastructure/Search/SearchIndex.cs

@ -908,6 +908,7 @@ namespace ErsatzTV.Infrastructure.Search @@ -908,6 +908,7 @@ namespace ErsatzTV.Infrastructure.Search
$"{em.Title}_{em.Year}_{em.Episode.Season.SeasonNumber}_{em.EpisodeNumber}"
.ToLowerInvariant(),
OtherVideoMetadata ovm => $"{ovm.OriginalTitle}".ToLowerInvariant(),
SongMetadata sm => $"{sm.OriginalTitle}".ToLowerInvariant(),
_ => $"{metadata.Title}_{metadata.Year}".ToLowerInvariant()
};

Loading…
Cancel
Save