mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-20 21:33:15 -07:00
fix(availability-rules): 🐛 Fixed a small issue where some shows would not appear as Available even know they had no future unaired episodes listed
This commit is contained in:
parent
75529dd972
commit
914b096781
3 changed files with 81 additions and 2 deletions
|
@ -130,5 +130,76 @@ namespace Ombi.Core.Tests.Rule.Search
|
|||
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);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -85,11 +85,18 @@ namespace Ombi.Core.Rule.Rules.Search
|
|||
{
|
||||
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)
|
||||
|
|
3
src/Ombi/.vscode/settings.json
vendored
3
src/Ombi/.vscode/settings.json
vendored
|
@ -19,6 +19,7 @@
|
|||
"newsletter",
|
||||
"mass-email",
|
||||
"issues",
|
||||
"emby"
|
||||
"emby",
|
||||
"availability-rules"
|
||||
]
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue