diff --git a/CHANGELOG.md b/CHANGELOG.md index 9df32db5a..2dc4f7337 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ## [Unreleased] +### Fixed +- Fix scanning and indexing local movies and episodes with no metadata +- Fix displaying seasons for shows with no year (in metadata or in folder name) ## [0.0.58-alpha] - 2021-09-15 ### Added diff --git a/ErsatzTV.Core/Domain/MediaItem/Episode.cs b/ErsatzTV.Core/Domain/MediaItem/Episode.cs index 1829bb92f..a7f36508b 100644 --- a/ErsatzTV.Core/Domain/MediaItem/Episode.cs +++ b/ErsatzTV.Core/Domain/MediaItem/Episode.cs @@ -3,7 +3,7 @@ using System.Diagnostics; namespace ErsatzTV.Core.Domain { - [DebuggerDisplay("{EpisodeMetadata[0].Title}")] + [DebuggerDisplay("{EpisodeMetadata[0].Title ?? \"[unknown episode]\"}")] public class Episode : MediaItem { public int SeasonId { get; set; } diff --git a/ErsatzTV.Core/Metadata/FallbackMetadataProvider.cs b/ErsatzTV.Core/Metadata/FallbackMetadataProvider.cs index 90e3b280d..3008499e0 100644 --- a/ErsatzTV.Core/Metadata/FallbackMetadataProvider.cs +++ b/ErsatzTV.Core/Metadata/FallbackMetadataProvider.cs @@ -15,7 +15,14 @@ namespace ErsatzTV.Core.Metadata { string fileName = Path.GetFileName(showFolder); var metadata = new ShowMetadata - { MetadataKind = MetadataKind.Fallback, Title = fileName ?? showFolder }; + { + MetadataKind = MetadataKind.Fallback, + Title = fileName ?? showFolder, + Genres = new List(), + Tags = new List(), + Studios = new List(), + Actors = new List() + }; return GetTelevisionShowMetadata(fileName, metadata); } @@ -33,7 +40,7 @@ namespace ErsatzTV.Core.Metadata var baseMetadata = new EpisodeMetadata { MetadataKind = MetadataKind.Fallback, - Title = fileName ?? path, + Title = Path.GetFileNameWithoutExtension(path) ?? path, DateAdded = DateTime.UtcNow, EpisodeNumber = 0, Actors = new List(), @@ -54,7 +61,17 @@ namespace ErsatzTV.Core.Metadata { string path = movie.MediaVersions.Head().MediaFiles.Head().Path; string fileName = Path.GetFileName(path); - var metadata = new MovieMetadata { MetadataKind = MetadataKind.Fallback, Title = fileName ?? path }; + var metadata = new MovieMetadata + { + MetadataKind = MetadataKind.Fallback, + Title = Path.GetFileNameWithoutExtension(path) ?? path, + Genres = new List(), + Tags = new List(), + Studios = new List(), + Actors = new List(), + Directors = new List(), + Writers = new List() + }; return fileName != null ? GetMovieMetadata(fileName, metadata) : metadata; } @@ -128,6 +145,7 @@ namespace ErsatzTV.Core.Metadata EpisodeNumber = episodeNumber, DateAdded = baseMetadata.DateAdded, DateUpdated = baseMetadata.DateAdded, + Title = baseMetadata.Title, Actors = new List(), Artwork = new List(), Directors = new List(), @@ -164,12 +182,6 @@ namespace ErsatzTV.Core.Metadata metadata.Title = match.Groups[1].Value.Trim(); metadata.Year = int.Parse(match.Groups[2].Value); metadata.ReleaseDate = new DateTime(int.Parse(match.Groups[2].Value), 1, 1); - metadata.Genres = new List(); - metadata.Tags = new List(); - metadata.Studios = new List(); - metadata.Actors = new List(); - metadata.Directors = new List(); - metadata.Writers = new List(); metadata.DateUpdated = DateTime.UtcNow; } } @@ -214,10 +226,6 @@ namespace ErsatzTV.Core.Metadata metadata.Title = match.Groups[1].Value; metadata.Year = int.Parse(match.Groups[2].Value); metadata.ReleaseDate = new DateTime(int.Parse(match.Groups[2].Value), 1, 1); - metadata.Genres = new List(); - metadata.Tags = new List(); - metadata.Studios = new List(); - metadata.Actors = new List(); metadata.DateUpdated = DateTime.UtcNow; } } diff --git a/ErsatzTV.Infrastructure/Data/Repositories/TelevisionRepository.cs b/ErsatzTV.Infrastructure/Data/Repositories/TelevisionRepository.cs index aba7bcfef..47141d41e 100644 --- a/ErsatzTV.Infrastructure/Data/Repositories/TelevisionRepository.cs +++ b/ErsatzTV.Infrastructure/Data/Repositories/TelevisionRepository.cs @@ -144,7 +144,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories @"SELECT m1.ShowId FROM ShowMetadata m1 LEFT OUTER JOIN ShowMetadata m2 ON m2.ShowId = @ShowId - WHERE m1.Title = m2.Title AND m1.Year = m2.Year", + WHERE m1.Title = m2.Title AND m1.Year is m2.Year", new { ShowId = televisionShowId }) .Map(results => results.ToList());