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.Approved);
|
||||||
Assert.False(search.Requested);
|
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;
|
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;
|
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();
|
return Success();
|
||||||
}
|
}
|
||||||
if (obj.Type == RequestType.Album)
|
if (obj.Type == RequestType.Album)
|
||||||
|
|
3
src/Ombi/.vscode/settings.json
vendored
3
src/Ombi/.vscode/settings.json
vendored
|
@ -19,6 +19,7 @@
|
||||||
"newsletter",
|
"newsletter",
|
||||||
"mass-email",
|
"mass-email",
|
||||||
"issues",
|
"issues",
|
||||||
"emby"
|
"emby",
|
||||||
|
"availability-rules"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue