From 75529dd972c5102f3c5234a2acf6fe664a1bcfad Mon Sep 17 00:00:00 2001 From: tidusjar Date: Wed, 24 Nov 2021 22:27:28 +0000 Subject: [PATCH 1/3] fix(emby): :bug: Fixed an issue where we were not properly syncing episodes --- src/Ombi.Schedule/Jobs/Emby/EmbyContentSync.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Ombi.Schedule/Jobs/Emby/EmbyContentSync.cs b/src/Ombi.Schedule/Jobs/Emby/EmbyContentSync.cs index d20439fbb..5f9c294a7 100644 --- a/src/Ombi.Schedule/Jobs/Emby/EmbyContentSync.cs +++ b/src/Ombi.Schedule/Jobs/Emby/EmbyContentSync.cs @@ -79,7 +79,7 @@ namespace Ombi.Schedule.Jobs.Emby // Episodes - await OmbiQuartz.Scheduler.TriggerJob(new JobKey(nameof(IEmbyEpisodeSync), "Emby"), new JobDataMap(new Dictionary { { JobDataKeys.EmbyRecentlyAddedSearch, "true" } })); + await OmbiQuartz.Scheduler.TriggerJob(new JobKey(nameof(IEmbyEpisodeSync), "Emby"), new JobDataMap(new Dictionary { { JobDataKeys.EmbyRecentlyAddedSearch, recentlyAddedSearch.ToString() } })); } From 914b096781c9b73292a533a010a5dd05ecfd0aac Mon Sep 17 00:00:00 2001 From: tidusjar Date: Wed, 24 Nov 2021 22:34:16 +0000 Subject: [PATCH 2/3] fix(availability-rules): :bug: Fixed a small issue where some shows would not appear as Available even know they had no future unaired episodes listed --- .../Rule/Search/ExistingRequestRuleTests.cs | 71 +++++++++++++++++++ .../Rule/Rules/Search/ExistingRule.cs | 9 ++- src/Ombi/.vscode/settings.json | 3 +- 3 files changed, 81 insertions(+), 2 deletions(-) diff --git a/src/Ombi.Core.Tests/Rule/Search/ExistingRequestRuleTests.cs b/src/Ombi.Core.Tests/Rule/Search/ExistingRequestRuleTests.cs index ea9208cf7..11860ce28 100644 --- a/src/Ombi.Core.Tests/Rule/Search/ExistingRequestRuleTests.cs +++ b/src/Ombi.Core.Tests/Rule/Search/ExistingRequestRuleTests.cs @@ -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 + { + new SeasonRequests + { + Episodes = new List + { + 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 + { + new SeasonRequests + { + Episodes = new List + { + 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); + } } } \ No newline at end of file diff --git a/src/Ombi.Core/Rule/Rules/Search/ExistingRule.cs b/src/Ombi.Core/Rule/Rules/Search/ExistingRule.cs index a7cd43336..58c2508a6 100644 --- a/src/Ombi.Core/Rule/Rules/Search/ExistingRule.cs +++ b/src/Ombi.Core/Rule/Rules/Search/ExistingRule.cs @@ -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) diff --git a/src/Ombi/.vscode/settings.json b/src/Ombi/.vscode/settings.json index 5862f9a19..23bdd881e 100644 --- a/src/Ombi/.vscode/settings.json +++ b/src/Ombi/.vscode/settings.json @@ -19,6 +19,7 @@ "newsletter", "mass-email", "issues", - "emby" + "emby", + "availability-rules" ] } From f32adbdb8b7aa6329cc77790146da9fdb34cb125 Mon Sep 17 00:00:00 2001 From: tidusjar Date: Thu, 25 Nov 2021 08:11:53 +0000 Subject: [PATCH 3/3] test(automation): :white_check_mark: Fixed automation tests --- tests/cypress/tests/search/search.spec.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/cypress/tests/search/search.spec.ts b/tests/cypress/tests/search/search.spec.ts index 6bcef1712..12566d26f 100644 --- a/tests/cypress/tests/search/search.spec.ts +++ b/tests/cypress/tests/search/search.spec.ts @@ -101,7 +101,7 @@ describe("Search Tests", () => { it("No Movie results, enabling Tv filter we get results", () => { Page.navbar.searchFilter.applyFilter(false, true, false); - Page.visit("It's always sunny in Philadelphia"); + Page.visit("Dexter New Blood"); cy.wait('@searchResponse'); Page.noSearchResultMessage.should('exist'); @@ -113,7 +113,7 @@ describe("Search Tests", () => { const card = Page.getCard('2710', false); card.topLevelCard.realHover(); - card.title.should('have.text', "It's Always Sunny in Philadelphia"); + card.title.should('have.text', "Dexter: New Blood"); card.overview.contains('Irish pub'); card.requestType.contains('TV Show'); card.requestButton.should('exist');