Skip to content

Commit

Permalink
fix(availability-rules): 🐛 Fixed a small issue where some shows would…
Browse files Browse the repository at this point in the history
… not appear as Available even know they had no future unaired episodes listed
  • Loading branch information
tidusjar committed Nov 24, 2021
1 parent 75529dd commit 914b096
Show file tree
Hide file tree
Showing 3 changed files with 81 additions and 2 deletions.
71 changes: 71 additions & 0 deletions src/Ombi.Core.Tests/Rule/Search/ExistingRequestRuleTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -130,5 +130,76 @@ public async Task ShouldBe_NotRequested_WhenNewTv()
Assert.False(search.Approved);
Assert.False(search.Requested);
}

[Test]
public async Task ShouldBeFullyAvailable_NoFutureAiredEpisodes_NoRequest()
{
var search = new SearchTvShowViewModel()
{
Id = 999,
SeasonRequests = new List<SeasonRequests>
{
new SeasonRequests
{
Episodes = new List<EpisodeRequests>
{
new EpisodeRequests
{
Available = true,
AirDate = new System.DateTime(2020,01,01)
},
new EpisodeRequests
{
Available = true,
AirDate = new System.DateTime(2020,01,02)
},
}
}
}
};
var result = await Rule.Execute(search);

Assert.True(result.Success);
Assert.That(search.FullyAvailable, Is.True);
Assert.That(search.PartlyAvailable, Is.False);
}

[Test]
public async Task ShouldBeFullyAvailable_AndPartly_FutureAiredEpisodes_NoRequest()
{
var search = new SearchTvShowViewModel()
{
Id = 999,
SeasonRequests = new List<SeasonRequests>
{
new SeasonRequests
{
Episodes = new List<EpisodeRequests>
{
new EpisodeRequests
{
Available = true,
AirDate = new System.DateTime(2020,01,01)
},
new EpisodeRequests
{
Available = true,
AirDate = new System.DateTime(2020,01,02)
},
new EpisodeRequests
{
Available = true,
AirDate = new System.DateTime(2029,01,02)
},
}
}
}
};
var result = await Rule.Execute(search);

Assert.True(result.Success);
Assert.That(search.FullyAvailable, Is.True);
Assert.That(search.PartlyAvailable, Is.True);
}
}
}
9 changes: 8 additions & 1 deletion src/Ombi.Core/Rule/Rules/Search/ExistingRule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -85,11 +85,18 @@ public async Task<RuleResult> Execute(SearchViewModel obj)
{
request.FullyAvailable = true;
}
if (request.SeasonRequests.Any() && request.SeasonRequests.All(x => x.Episodes.Any(e => e.Available && e.AirDate > DateTime.MinValue)))
if (request.SeasonRequests.Any() && request.SeasonRequests.All(x => x.Episodes.Any(e => e.Available && e.AirDate > DateTime.MinValue && e.AirDate <= DateTime.UtcNow)))
{
request.PartlyAvailable = true;
}

var hasUnairedRequests = request.SeasonRequests.Any() && request.SeasonRequests.All(x => x.Episodes.Any(e => e.AirDate >= DateTime.UtcNow));

if (request.FullyAvailable)
{
request.PartlyAvailable = hasUnairedRequests;
}

return Success();
}
if (obj.Type == RequestType.Album)
Expand Down
3 changes: 2 additions & 1 deletion src/Ombi/.vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
"newsletter",
"mass-email",
"issues",
"emby"
"emby",
"availability-rules"
]
}

0 comments on commit 914b096

Please # to comment.