Browse Source

fix block playout history loading (#1876)

pull/1877/head
Jason Dove 12 months ago committed by GitHub
parent
commit
4130f7316c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 1
      CHANGELOG.md
  2. 12
      ErsatzTV.Core/Scheduling/HistoryDetails.cs

1
CHANGELOG.md

@ -65,6 +65,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Fix local subtitle scanner to detect non-lowercase extensions (e.g. `Movie (2000).EN.SRT`) - Fix local subtitle scanner to detect non-lowercase extensions (e.g. `Movie (2000).EN.SRT`)
- Fix adding a single image to a manual collection from search results - Fix adding a single image to a manual collection from search results
- Fix loading manual collection view when collection contains images - Fix loading manual collection view when collection contains images
- Fix edge case where block playout history would get stuck and repeat an item
### Changed ### Changed
- Remove some unnecessary API calls related to media server scanning and paging - Remove some unnecessary API calls related to media server scanning and paging

12
ErsatzTV.Core/Scheduling/HistoryDetails.cs

@ -82,7 +82,14 @@ internal static class HistoryDetails
var copy = collectionItems.ToList(); var copy = collectionItems.ToList();
Details details = JsonConvert.DeserializeObject<Details>(detailsString); Details details = JsonConvert.DeserializeObject<Details>(detailsString);
if (details.SeasonNumber.HasValue && details.EpisodeNumber.HasValue)
// try for an exact match first
if (details.MediaItemId != null)
{
maybeMatchedItem = collectionItems.Find(mi => mi.Id == details.MediaItemId);
}
if (maybeMatchedItem.IsNone && details.SeasonNumber.HasValue && details.EpisodeNumber.HasValue)
{ {
int season = details.SeasonNumber.Value; int season = details.SeasonNumber.Value;
int episode = details.EpisodeNumber.Value; int episode = details.EpisodeNumber.Value;
@ -108,7 +115,7 @@ internal static class HistoryDetails
maybeMatchedItem = fakeItem; maybeMatchedItem = fakeItem;
} }
} }
else if (playbackOrder is PlaybackOrder.Chronological && details.ReleaseDate.HasValue) else if (maybeMatchedItem.IsNone && playbackOrder is PlaybackOrder.Chronological && details.ReleaseDate.HasValue)
{ {
maybeMatchedItem = Optional(collectionItems.Find(ci => MatchReleaseDate(ci, details.ReleaseDate.Value))); maybeMatchedItem = Optional(collectionItems.Find(ci => MatchReleaseDate(ci, details.ReleaseDate.Value)));
@ -119,7 +126,6 @@ internal static class HistoryDetails
maybeMatchedItem = fakeItem; maybeMatchedItem = fakeItem;
} }
} }
// TODO: match media item
foreach (MediaItem matchedItem in maybeMatchedItem) foreach (MediaItem matchedItem in maybeMatchedItem)
{ {

Loading…
Cancel
Save