Browse Source

load fallback metadata when nfo fails; don't require metadata in ui

pull/26/head
Jason Dove 6 years ago
parent
commit
e900d3f013
  1. 18
      ErsatzTV.Application/MediaCards/Mapper.cs
  2. 12
      ErsatzTV.Core/Metadata/LocalMetadataProvider.cs

18
ErsatzTV.Application/MediaCards/Mapper.cs

@ -9,14 +9,14 @@ namespace ErsatzTV.Application.MediaCards
internal static TelevisionShowCardViewModel ProjectToViewModel(TelevisionShow televisionShow) => internal static TelevisionShowCardViewModel ProjectToViewModel(TelevisionShow televisionShow) =>
new( new(
televisionShow.Id, televisionShow.Id,
televisionShow.Metadata.Title, televisionShow.Metadata?.Title,
televisionShow.Metadata.Year.ToString(), televisionShow.Metadata?.Year.ToString(),
televisionShow.Metadata.SortTitle, televisionShow.Metadata?.SortTitle,
televisionShow.Poster); televisionShow.Poster);
internal static TelevisionSeasonCardViewModel ProjectToViewModel(TelevisionSeason televisionSeason) => internal static TelevisionSeasonCardViewModel ProjectToViewModel(TelevisionSeason televisionSeason) =>
new( new(
televisionSeason.TelevisionShow.Metadata.Title, televisionSeason.TelevisionShow.Metadata?.Title,
televisionSeason.Id, televisionSeason.Id,
televisionSeason.Number, televisionSeason.Number,
GetSeasonName(televisionSeason.Number), GetSeasonName(televisionSeason.Number),
@ -29,13 +29,13 @@ namespace ErsatzTV.Application.MediaCards
TelevisionEpisodeMediaItem televisionEpisode) => TelevisionEpisodeMediaItem televisionEpisode) =>
new( new(
televisionEpisode.Id, televisionEpisode.Id,
televisionEpisode.Metadata.Aired ?? DateTime.MinValue, televisionEpisode.Metadata?.Aired ?? DateTime.MinValue,
televisionEpisode.Season.TelevisionShow.Metadata.Title, televisionEpisode.Season.TelevisionShow.Metadata.Title,
televisionEpisode.Metadata.Title, televisionEpisode.Metadata?.Title,
$"Episode {televisionEpisode.Metadata.Episode}", $"Episode {televisionEpisode.Metadata?.Episode}",
televisionEpisode.Metadata.Episode.ToString(), televisionEpisode.Metadata?.Episode.ToString(),
televisionEpisode.Poster, televisionEpisode.Poster,
televisionEpisode.Metadata.Episode.ToString()); televisionEpisode.Metadata?.Episode.ToString());
internal static MovieCardViewModel ProjectToViewModel(MovieMediaItem movie) => internal static MovieCardViewModel ProjectToViewModel(MovieMediaItem movie) =>
new( new(

12
ErsatzTV.Core/Metadata/LocalMetadataProvider.cs

@ -138,7 +138,7 @@ namespace ErsatzTV.Core.Metadata
return None; return None;
} }
return await LoadMovieMetadata(nfoFileName); return await LoadMovieMetadata(mediaItem, nfoFileName);
} }
private async Task<Option<TelevisionEpisodeMetadata>> LoadMetadata( private async Task<Option<TelevisionEpisodeMetadata>> LoadMetadata(
@ -157,7 +157,7 @@ namespace ErsatzTV.Core.Metadata
return None; return None;
} }
return await LoadEpisodeMetadata(nfoFileName); return await LoadEpisodeMetadata(mediaItem, nfoFileName);
} }
private async Task<Option<TelevisionShowMetadata>> LoadMetadata( private async Task<Option<TelevisionShowMetadata>> LoadMetadata(
@ -197,7 +197,7 @@ namespace ErsatzTV.Core.Metadata
} }
} }
private async Task<Option<TelevisionEpisodeMetadata>> LoadEpisodeMetadata(string nfoFileName) private async Task<Option<TelevisionEpisodeMetadata>> LoadEpisodeMetadata(TelevisionEpisodeMediaItem mediaItem, string nfoFileName)
{ {
try try
{ {
@ -219,11 +219,11 @@ namespace ErsatzTV.Core.Metadata
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogDebug(ex, "Failed to read TV episode nfo metadata from {Path}", nfoFileName); _logger.LogDebug(ex, "Failed to read TV episode nfo metadata from {Path}", nfoFileName);
return None; return FallbackMetadataProvider.GetFallbackMetadata(mediaItem);
} }
} }
private async Task<Option<MovieMetadata>> LoadMovieMetadata(string nfoFileName) private async Task<Option<MovieMetadata>> LoadMovieMetadata(MovieMediaItem mediaItem, string nfoFileName)
{ {
try try
{ {
@ -247,7 +247,7 @@ namespace ErsatzTV.Core.Metadata
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogDebug(ex, "Failed to read Movie nfo metadata from {Path}", nfoFileName); _logger.LogDebug(ex, "Failed to read Movie nfo metadata from {Path}", nfoFileName);
return None; return FallbackMetadataProvider.GetFallbackMetadata(mediaItem);
} }
} }

Loading…
Cancel
Save