diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 467073cd2..6191c7a55 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -68,7 +68,7 @@ jobs: uses: TriPSs/conventional-changelog-action@v3 with: version-file: 'version.json' - release-count: 20 + release-count: 40 skip-on-empty: 'false' git-message: 'chore(release): :rocket: {version}' diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ea8fe031..163422bc6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,21 @@ +## [4.10.3](https://github.com/Ombi-app/Ombi/compare/v4.10.1...v4.10.3) (2022-01-31) + + +### Bug Fixes + +* fix swagger api key auth ([#4483](https://github.com/Ombi-app/Ombi/issues/4483)) [no ci] ([32ee4e8](https://github.com/Ombi-app/Ombi/commit/32ee4e88ec05bf610150933974408fbe95ccd7bd)) +* **frontend:** add link on logo text ([6d7274a](https://github.com/Ombi-app/Ombi/commit/6d7274a94ea24343f32fc028984bd3fd5d5f2ee3)) + + + +## [4.10.1](https://github.com/Ombi-app/Ombi/compare/v4.10.0...v4.10.1) (2022-01-22) + + + +## [4.3.3](https://github.com/Ombi-app/Ombi/compare/v4.3.2...v4.3.3) (2021-11-05) + + + # [4.10.0](https://github.com/Ombi-app/Ombi/compare/v4.9.2...v4.10.0) (2022-01-14) @@ -181,3 +199,184 @@ +## [4.6.3](https://github.com/Ombi-app/Ombi/compare/v4.6.2...v4.6.3) (2021-11-11) + + +### Bug Fixes + +* **discover:** :bug: Display TV + movies on actor page in user language ([#4395](https://github.com/Ombi-app/Ombi/issues/4395)) ([fe635c7](https://github.com/Ombi-app/Ombi/commit/fe635c7106bc487ff879bdc8a73bab16cb389b97)) +* **permissions:** :bug: Improved the security around the role "Manage Own Requests" ([#4397](https://github.com/Ombi-app/Ombi/issues/4397)) ([334a32b](https://github.com/Ombi-app/Ombi/commit/334a32bca42f90198d9b720d2bdb710a583be47f)), closes [#4391](https://github.com/Ombi-app/Ombi/issues/4391) +* **search:** Fixed some cases where search wouldn't work correctly ([#4398](https://github.com/Ombi-app/Ombi/issues/4398)) ([4410790](https://github.com/Ombi-app/Ombi/commit/4410790bc096826bc11554098f846e3acb59589a)) + + + +## [4.6.2](https://github.com/Ombi-app/Ombi/compare/v4.6.1...v4.6.2) (2021-11-10) + + +### Bug Fixes + +* **discover:** TV shows now display on the Actor Pages ([#4388](https://github.com/Ombi-app/Ombi/issues/4388)) ([6b716e7](https://github.com/Ombi-app/Ombi/commit/6b716e722076e3d1e6bf2097c5263645d5ea9edf)) + + + +## [4.6.1](https://github.com/Ombi-app/Ombi/compare/v4.6.0...v4.6.1) (2021-11-10) + + +### Bug Fixes + +* :bug: Fixed the MySQL issue after .net 6 upgrade [#4393](https://github.com/Ombi-app/Ombi/issues/4393) ([fea7ff0](https://github.com/Ombi-app/Ombi/commit/fea7ff05139e9ff50c8097fa5389b4ef9ad21a15)) +* **translations:** 馃寪 New translations from Crowdin [skip ci] ([c6acb45](https://github.com/Ombi-app/Ombi/commit/c6acb45f8d3f371c0b4024c4272849d0d0cc867f)) +* **translations:** 馃寪 New translations from Crowdin [skip ci] ([18c220a](https://github.com/Ombi-app/Ombi/commit/18c220a0cd0d19e45a07d0c319da2b9512778a8a)) + + + +# [4.6.0](https://github.com/Ombi-app/Ombi/compare/v4.4.0...v4.6.0) (2021-11-09) + + +### Features + +* :sparkles: Upgrade Ombi to .NET 6 ([#4390](https://github.com/Ombi-app/Ombi/issues/4390)) ([719eb7d](https://github.com/Ombi-app/Ombi/commit/719eb7dbe37b3a72d264e2f670067518eef70694)), closes [#4392](https://github.com/Ombi-app/Ombi/issues/4392) + + + +# [4.4.0](https://github.com/Ombi-app/Ombi/compare/v4.3.3...v4.4.0) (2021-11-06) + + +### Bug Fixes + +* **request-list:** :bug: Fixed an issue where the request options were not appearing for Music requests ([c0406a2](https://github.com/Ombi-app/Ombi/commit/c0406a2ddebafb03d98ed25cdf7d89dc9a600c7d)) + + +### Features + +* **mass-email:** :sparkles: Added the ability to configure the Mass Email, we can now send BCC and we are less likely to be rate limited when not using bcc [#4377](https://github.com/Ombi-app/Ombi/issues/4377) ([ca655ae](https://github.com/Ombi-app/Ombi/commit/ca655ae57042dec44106a2f2ef5ba2e6f1019ee4)) + + + +## [4.3.3](https://github.com/Ombi-app/Ombi/compare/v4.3.2...v4.3.3) (2021-11-05) + + + +## [4.3.2](https://github.com/Ombi-app/Ombi/compare/v4.3.1...v4.3.2) (2021-11-02) + + +### Bug Fixes + +* **translations:** 馃寪 Localization - Ensuring all of the app including backend are localized [#4366](https://github.com/Ombi-app/Ombi/issues/4366) ([5e140ab](https://github.com/Ombi-app/Ombi/commit/5e140ab6183b887a7665f5e870eb0bd05d487ace)) + + + +## [4.3.1](https://github.com/Ombi-app/Ombi/compare/v4.3.0...v4.3.1) (2021-10-27) + + +### Bug Fixes + +* :bug: Hides no results message during search. ([#4375](https://github.com/Ombi-app/Ombi/issues/4375)) ([b819b0e](https://github.com/Ombi-app/Ombi/commit/b819b0e007e578bf3d8425f19591f87029c64d06)) + + + +# [4.3.0](https://github.com/Ombi-app/Ombi/compare/v4.2.13...v4.3.0) (2021-10-20) + + +### Bug Fixes + +* **translations:** 馃寪 New translations from Crowdin [skip ci] ([b0f3abb](https://github.com/Ombi-app/Ombi/commit/b0f3abb9ceebdbe5d6c20af98b7355df2999eb58)) +* **translations:** 馃寪 New translations from Crowdin [skip ci] ([77d017b](https://github.com/Ombi-app/Ombi/commit/77d017b3d8ffd1714a2f6efecc8c900d56d062e4)) +* **translations:** 馃寪 New translations from Crowdin [skip ci] ([f6e9784](https://github.com/Ombi-app/Ombi/commit/f6e9784367d3678d899ed79bef6caa52005b6661)) +* **translations:** 馃寪 New translations from Crowdin [skip ci] ([601a877](https://github.com/Ombi-app/Ombi/commit/601a87762a2ad393ee5fa2fe52052ceeeefb1bef)) +* **translations:** 馃寪 New translations from Crowdin [skip ci] ([a4a80ba](https://github.com/Ombi-app/Ombi/commit/a4a80ba4da49733a65e691003646c0f349bd4c5f)) +* **translations:** 馃寪 New translations from Crowdin [skip ci] ([2961319](https://github.com/Ombi-app/Ombi/commit/2961319f61e95b2871480152b86ddca3375576a1)) +* **translations:** 馃寪 New translations from Crowdin [skip ci] ([fc8d108](https://github.com/Ombi-app/Ombi/commit/fc8d108b660d53f499538328bfc271b05ac47d2b)) +* **translations:** 馃寪 New translations from Crowdin [skip ci] ([1e03651](https://github.com/Ombi-app/Ombi/commit/1e03651c3b0eb77e45f9f6c55d31ee672eacd51e)) +* **translations:** 馃寪 New translations from Crowdin [skip ci] ([c0dd327](https://github.com/Ombi-app/Ombi/commit/c0dd327426514e305a88750d7c3deb21c194108f)) +* **translations:** 馃寪 New translations from Crowdin [skip ci] ([2156129](https://github.com/Ombi-app/Ombi/commit/2156129f175335746f204bb123035c070f518e96)) +* **translations:** 馃寪 New translations from Crowdin [skip ci] ([aef0368](https://github.com/Ombi-app/Ombi/commit/aef0368de3aec306245bd1b16bc0de596a20d451)) +* **translations:** 馃寪 New translations from Crowdin [skip ci] ([a38090b](https://github.com/Ombi-app/Ombi/commit/a38090b8dde17d1d150af0bca2830ea45d013a0e)) +* **translations:** 馃寪 New translations from Crowdin [skip ci] ([c5f1d33](https://github.com/Ombi-app/Ombi/commit/c5f1d3355758a5c3648479d44e50397c7f6c1a9d)) +* **translations:** 馃寪 New translations from Crowdin [skip ci] ([3846d56](https://github.com/Ombi-app/Ombi/commit/3846d56a6e561a1b1dc65c385151d90fdd6217ee)) +* **translations:** 馃寪 New translations from Crowdin [skip ci] ([dafe9c1](https://github.com/Ombi-app/Ombi/commit/dafe9c1a19d84f00c13f0a51ba90927c24282926)) +* **translations:** 馃寪 New translations from Crowdin [skip ci] ([edb418a](https://github.com/Ombi-app/Ombi/commit/edb418a6f05887c68a0c24c48decc691996f97e4)) +* **translations:** 馃寪 New translations from Crowdin [skip ci] ([dadabf9](https://github.com/Ombi-app/Ombi/commit/dadabf93e1582a0c39321fd9bf3de3fb11e3f406)) + + +### Features + +* **request-limits:** :sparkles: Added the new request limit options into the user importer ([01d4f4d](https://github.com/Ombi-app/Ombi/commit/01d4f4d718fe85ac181dae52565fb1b427965b4f)) +* **request-limits:** :sparkles: Added the new request limit options to the bulk edit ([03bc23a](https://github.com/Ombi-app/Ombi/commit/03bc23a74e4308aa6b4c6b25636edcdeb65c1f0e)) + + + +## [4.2.13](https://github.com/Ombi-app/Ombi/compare/v4.2.12...v4.2.13) (2021-10-20) + + +### Bug Fixes + +* **translations:** 馃寪 New translations %two_letters_code% from Crowdin [skip ci] ([8fbd267](https://github.com/Ombi-app/Ombi/commit/8fbd267b516ddaa80fd16c091bae532b860fbf45)) + + + +## [4.2.12](https://github.com/Ombi-app/Ombi/compare/v4.2.11...v4.2.12) (2021-10-20) + + +### Bug Fixes + +* **newsletter:** :bug: Fixed a few small bugs in the newsletter ([21dba4c](https://github.com/Ombi-app/Ombi/commit/21dba4c524b98b9f2b883d97e7e13329425a8762)) +* **translations:** 馃寪 New translations en.json from Crowdin [skip ci] ([52eda6a](https://github.com/Ombi-app/Ombi/commit/52eda6ab917a73842bc02b0d8e0c442e564ca8f0)) +* **translations:** 馃寪 New translations en.json from Crowdin [skip ci] ([1095d52](https://github.com/Ombi-app/Ombi/commit/1095d524962648a1e427f0bcd8105fa734dd5b60)) + + + +## [4.2.11](https://github.com/Ombi-app/Ombi/compare/v4.2.10...v4.2.11) (2021-10-18) + + + +## [4.2.10](https://github.com/Ombi-app/Ombi/compare/v4.2.9...v4.2.10) (2021-10-15) + + +### Bug Fixes + +* :bug: Really really fix it this time? ([543d36e](https://github.com/Ombi-app/Ombi/commit/543d36e5615341bc8378cac377b843a3dbc1ef99)) + + + +## [4.2.9](https://github.com/Ombi-app/Ombi/compare/v4.2.8...v4.2.9) (2021-10-15) + + +### Bug Fixes + +* :fire: Really fix the base url issue this time ([9f36923](https://github.com/Ombi-app/Ombi/commit/9f36923c51bfabf9cb026f2da14f9947050af0d9)) + + + +## [4.2.8](https://github.com/Ombi-app/Ombi/compare/v4.2.7...v4.2.8) (2021-10-15) + + +### Bug Fixes + +* :adhesive_bandage: See if this fixes the proxy issue ([74d1aca](https://github.com/Ombi-app/Ombi/commit/74d1acae499707a7e21401f53eb2bb90c5bb9cfa)) +* :bug: Fixed Ombi not writing the baseUrl correctly ([e9cc8b6](https://github.com/Ombi-app/Ombi/commit/e9cc8b6fe71d3e10c1a901e70227989b3362afe3)) + + + +## [4.2.7](https://github.com/Ombi-app/Ombi/compare/v4.2.6...v4.2.7) (2021-10-14) + + +### Bug Fixes + +* :bug: Fixed the issue parsing TheMovieDB dates. They have broken something... ([6e397e0](https://github.com/Ombi-app/Ombi/commit/6e397e02e95f894a92e8bf02428efdcac1275b31)) + + + +## [4.2.6](https://github.com/Ombi-app/Ombi/compare/v4.2.5...v4.2.6) (2021-10-14) + + +### Performance Improvements + +* :zap: Use ngxs store for the whole customization section of the app ([97b493d](https://github.com/Ombi-app/Ombi/commit/97b493d869feee59d360b484a6c59388a2aead1f)) + + + +## [4.2.5](https://github.com/Ombi-app/Ombi/compare/v4.2.4...v4.2.5) (2021-10-14) + + + diff --git a/README.md b/README.md index 6b785e94f..9c0b7dba2 100644 --- a/README.md +++ b/README.md @@ -594,6 +594,13 @@ Here are some of the features Ombi has: Matt + + + LMaxence +
+ Maxence Lecanu +
+ AliMickey @@ -608,13 +615,21 @@ Here are some of the features Ombi has: Nathan Miller + + + cqxmzz +
+ Qiming Chen +
+ randallbruder
Randall Bruder
- + + rob1998 @@ -628,8 +643,7 @@ Here are some of the features Ombi has:
Samuel Bart铆k
- - + seancallinan @@ -657,7 +671,8 @@ Here are some of the features Ombi has:
Tim Trott
- + + tombomb @@ -671,8 +686,7 @@ Here are some of the features Ombi has:
Torkil
- - + bybeet @@ -700,7 +714,8 @@ Here are some of the features Ombi has:
Blake Drumm
- + + camjac251 @@ -714,8 +729,7 @@ Here are some of the features Ombi has:
Michael DiStaula
- - + baikunz @@ -743,7 +757,8 @@ Here are some of the features Ombi has:
Patrick Weber
- + + sir-marv @@ -757,8 +772,7 @@ Here are some of the features Ombi has:
Tdorsey
- - + thegame3202 diff --git a/makefile b/makefile index ec70a7815..62c11e5b5 100644 --- a/makefile +++ b/makefile @@ -7,8 +7,11 @@ frontend: install-frontend: cd src/Ombi/ClientApp && yarn -install-tests: +install-frontend-tests: cd tests && yarn -tests: - cd tests && npx cypress open +frontend-tests: + cd tests && npx cypress run + +backend-tests: + cd src/Ombi.Core.Tests && dotnet test \ No newline at end of file diff --git a/src/Ombi.Core.Tests/Rule/Search/EmbyAvailabilityRuleTests.cs b/src/Ombi.Core.Tests/Rule/Search/EmbyAvailabilityRuleTests.cs index 58db4329b..0e455418a 100644 --- a/src/Ombi.Core.Tests/Rule/Search/EmbyAvailabilityRuleTests.cs +++ b/src/Ombi.Core.Tests/Rule/Search/EmbyAvailabilityRuleTests.cs @@ -47,66 +47,6 @@ namespace Ombi.Core.Tests.Rule.Search Assert.True(search.Available); } - [Test] - public async Task Movie_Has_Custom_Url_When_Specified_In_Settings() - { - SettingsMock.Setup(x => x.GetSettingsAsync()).ReturnsAsync(new EmbySettings - { - Enable = true, - Servers = new List - { - new EmbyServers - { - ServerHostname = "http://test.com/", - ServerId = "8" - } - } - }); - ContextMock.Setup(x => x.GetByTheMovieDbId(It.IsAny())).ReturnsAsync(new EmbyContent - { - ProviderId = "123", - EmbyId = 1.ToString(), - }); - var search = new SearchMovieViewModel() - { - TheMovieDbId = "123", - }; - var result = await Rule.Execute(search); - - Assert.True(result.Success); - Assert.That(search.EmbyUrl, Is.EqualTo("http://test.com/web/index.html#!/item?id=1&serverId=8")); - } - - [Test] - public async Task Movie_Uses_Default_Url_When() - { - SettingsMock.Setup(x => x.GetSettingsAsync()).ReturnsAsync(new EmbySettings - { - Enable = true, - Servers = new List - { - new EmbyServers - { - ServerHostname = string.Empty, - ServerId = "8" - } - } - }); - ContextMock.Setup(x => x.GetByTheMovieDbId(It.IsAny())).ReturnsAsync(new EmbyContent - { - ProviderId = "123", - EmbyId = 1.ToString() - }); - var search = new SearchMovieViewModel() - { - TheMovieDbId = "123", - }; - var result = await Rule.Execute(search); - - Assert.True(result.Success); - Assert.That(search.EmbyUrl, Is.EqualTo("https://app.emby.media/web/index.html#!/item?id=1&serverId=8")); - } - [Test] public async Task Movie_ShouldBe_NotAvailable_WhenNotFoundInEmby() { diff --git a/src/Ombi.Core.Tests/Rule/Search/JellyfinAvailabilityRuleTests.cs b/src/Ombi.Core.Tests/Rule/Search/JellyfinAvailabilityRuleTests.cs index 68c918457..b733b0b2b 100644 --- a/src/Ombi.Core.Tests/Rule/Search/JellyfinAvailabilityRuleTests.cs +++ b/src/Ombi.Core.Tests/Rule/Search/JellyfinAvailabilityRuleTests.cs @@ -47,36 +47,6 @@ namespace Ombi.Core.Tests.Rule.Search Assert.True(search.Available); } - [Test] - public async Task Movie_Has_Custom_Url_When_Specified_In_Settings() - { - SettingsMock.Setup(x => x.GetSettingsAsync()).ReturnsAsync(new JellyfinSettings - { - Enable = true, - Servers = new List - { - new JellyfinServers - { - ServerHostname = "http://test.com/", - ServerId = "8" - } - } - }); - ContextMock.Setup(x => x.GetByTheMovieDbId(It.IsAny())).ReturnsAsync(new JellyfinContent - { - ProviderId = "123", - JellyfinId = 1.ToString(), - }); - var search = new SearchMovieViewModel() - { - TheMovieDbId = "123", - }; - var result = await Rule.Execute(search); - - Assert.True(result.Success); - Assert.That(search.JellyfinUrl, Is.EqualTo("http://test.com/web/index.html#!/details?id=1&serverId=8")); - } - [Test] public async Task Movie_Uses_Default_Url_When() { diff --git a/src/Ombi.Core/Rule/Rules/Search/EmbyAvailabilityRule.cs b/src/Ombi.Core/Rule/Rules/Search/EmbyAvailabilityRule.cs index 027f22e8b..e7a629854 100644 --- a/src/Ombi.Core/Rule/Rules/Search/EmbyAvailabilityRule.cs +++ b/src/Ombi.Core/Rule/Rules/Search/EmbyAvailabilityRule.cs @@ -67,19 +67,7 @@ namespace Ombi.Core.Rule.Rules.Search if (item != null) { obj.Available = true; - var s = await EmbySettings.GetSettingsAsync(); - if (s.Enable) - { - var server = s.Servers.FirstOrDefault(); - if ((server?.ServerHostname ?? string.Empty).HasValue()) - { - obj.EmbyUrl = EmbyHelper.GetEmbyMediaUrl(item.EmbyId, server?.ServerId, server?.ServerHostname); - } - else - { - obj.EmbyUrl = EmbyHelper.GetEmbyMediaUrl(item.EmbyId, server?.ServerId, null); - } - } + obj.EmbyUrl = item.Url; if (obj.Type == RequestType.TvShow) { diff --git a/src/Ombi.Core/Rule/Rules/Search/JellyfinAvailabilityRule.cs b/src/Ombi.Core/Rule/Rules/Search/JellyfinAvailabilityRule.cs index dbbfc8da5..95a2da80b 100644 --- a/src/Ombi.Core/Rule/Rules/Search/JellyfinAvailabilityRule.cs +++ b/src/Ombi.Core/Rule/Rules/Search/JellyfinAvailabilityRule.cs @@ -81,20 +81,7 @@ namespace Ombi.Core.Rule.Rules.Search useTheMovieDb = true; } obj.Available = true; - var s = await JellyfinSettings.GetSettingsAsync(); - if (s.Enable) - { - var server = s.Servers.FirstOrDefault(x => x.ServerHostname != null); - if ((server?.ServerHostname ?? string.Empty).HasValue()) - { - obj.JellyfinUrl = JellyfinHelper.GetJellyfinMediaUrl(item.JellyfinId, server?.ServerId, server?.ServerHostname); - } - else - { - var firstServer = s.Servers?.FirstOrDefault(); - obj.JellyfinUrl = JellyfinHelper.GetJellyfinMediaUrl(item.JellyfinId, firstServer.ServerId, firstServer.FullUri); - } - } + obj.JellyfinUrl = item.Url; if (obj.Type == RequestType.TvShow) { diff --git a/src/Ombi.Core/Rule/Rules/Search/PlexAvailabilityRule.cs b/src/Ombi.Core/Rule/Rules/Search/PlexAvailabilityRule.cs index c84eb610c..4c05e0fe1 100644 --- a/src/Ombi.Core/Rule/Rules/Search/PlexAvailabilityRule.cs +++ b/src/Ombi.Core/Rule/Rules/Search/PlexAvailabilityRule.cs @@ -90,9 +90,17 @@ namespace Ombi.Core.Rule.Rules.Search useTheMovieDb = true; } obj.Available = true; - obj.PlexUrl = PlexHelper.BuildPlexMediaUrl(item.Url, host); + if (item.Url.StartsWith("http")) + { + obj.PlexUrl = item.Url; + } + else + { + // legacy content + obj.PlexUrl = PlexHelper.BuildPlexMediaUrl(item.Url, host); + } obj.Quality = item.Quality; - + if (obj.Type == RequestType.TvShow) { var search = (SearchTvShowViewModel)obj; diff --git a/src/Ombi.Notifications.Templates/NewsletterTemplate.cs b/src/Ombi.Notifications.Templates/NewsletterTemplate.cs index d731c50d3..90b5a217c 100644 --- a/src/Ombi.Notifications.Templates/NewsletterTemplate.cs +++ b/src/Ombi.Notifications.Templates/NewsletterTemplate.cs @@ -44,7 +44,7 @@ namespace Ombi.Notifications.Templates sb.Replace(DateKey, DateTime.Now.ToString("f")); sb.Replace(Logo, string.IsNullOrEmpty(logo) ? OmbiLogo : logo); sb.Replace(Unsubscribe, string.IsNullOrEmpty(unsubscribeLink) ? string.Empty : unsubscribeLink); - sb.Replace(UnsubscribeText, Texts.Unsubscribe); + sb.Replace(UnsubscribeText, string.IsNullOrEmpty(unsubscribeLink) ? string.Empty : "Unsubscrible"); sb.Replace(PoweredByText, Texts.PoweredBy); return sb.ToString(); diff --git a/src/Ombi.Schedule/Jobs/Ombi/NewsletterJob.cs b/src/Ombi.Schedule/Jobs/Ombi/NewsletterJob.cs index 83788f1b4..9dc6c64a6 100644 --- a/src/Ombi.Schedule/Jobs/Ombi/NewsletterJob.cs +++ b/src/Ombi.Schedule/Jobs/Ombi/NewsletterJob.cs @@ -265,7 +265,7 @@ namespace Ombi.Schedule.Jobs.Ombi recentlyAddedLog.Add(new RecentlyAddedLog { AddedAt = DateTime.Now, - Type = p.Series.RecentlyAddedType, + Type = p.Series.RecentlyAddedType, ContentType = ContentType.Episode, ContentId = StringHelper.IntParseLinq(p.Series.TvDbId), EpisodeNumber = p.EpisodeNumber, @@ -312,7 +312,7 @@ namespace Ombi.Schedule.Jobs.Ombi private HashSet GetSeriesContent(IMediaServerContentRepository repository, bool test) where T : class, IMediaServerContent { var content = repository.GetAllEpisodes().Include(x => x.Series).OrderByDescending(x => x.Series.AddedAt).AsNoTracking(); - + HashSet episodesToSend; if (test) { diff --git a/src/Ombi.Store/Entities/EmbyContent.cs b/src/Ombi.Store/Entities/EmbyContent.cs index 4005e7a48..08118b6df 100644 --- a/src/Ombi.Store/Entities/EmbyContent.cs +++ b/src/Ombi.Store/Entities/EmbyContent.cs @@ -35,9 +35,7 @@ namespace Ombi.Store.Entities public class EmbyContent : MediaServerContent { - /// - /// OBSOLETE, Cannot delete due to DB migration issues with SQLite - /// + [Obsolete("Cannot delete due to DB migration issues with SQLite")] public string ProviderId { get; set; } public string EmbyId { get; set; } public override RecentlyAddedType RecentlyAddedType => RecentlyAddedType.Emby; diff --git a/src/Ombi.Store/Entities/JellyfinContent.cs b/src/Ombi.Store/Entities/JellyfinContent.cs index da77c910c..b2bb63959 100644 --- a/src/Ombi.Store/Entities/JellyfinContent.cs +++ b/src/Ombi.Store/Entities/JellyfinContent.cs @@ -35,9 +35,8 @@ namespace Ombi.Store.Entities public class JellyfinContent : MediaServerContent { - /// - /// OBSOLETE, Cannot delete due to DB migration issues with SQLite - /// + + [Obsolete("Cannot delete due to DB migration issues with SQLite")] public string ProviderId { get; set; } public string JellyfinId { get; set; } public override RecentlyAddedType RecentlyAddedType => RecentlyAddedType.Jellyfin; diff --git a/src/Ombi.Store/Entities/PlexServerContent.cs b/src/Ombi.Store/Entities/PlexServerContent.cs index a9116ad16..cba02c68c 100644 --- a/src/Ombi.Store/Entities/PlexServerContent.cs +++ b/src/Ombi.Store/Entities/PlexServerContent.cs @@ -45,13 +45,6 @@ namespace Ombi.Store.Entities public int? RequestId { get; set; } - [NotMapped] - public ICollection PlexEpisodes - { - get => (ICollection)Episodes; - set => Episodes = (ICollection)value; - } - public override RecentlyAddedType RecentlyAddedType => RecentlyAddedType.Plex; } diff --git a/src/Ombi/ClientApp/src/app/my-nav/my-nav.component.html b/src/Ombi/ClientApp/src/app/my-nav/my-nav.component.html index 85abdbf0a..f35a8f612 100644 --- a/src/Ombi/ClientApp/src/app/my-nav/my-nav.component.html +++ b/src/Ombi/ClientApp/src/app/my-nav/my-nav.component.html @@ -3,7 +3,12 @@ [attr.role]="(isHandset$ | async) ? 'dialog' : 'navigation'" [mode]="(isHandset$ | async) ? 'over' : 'side'" [opened]="!(isHandset$ | async)"> - {{applicationName}} + + {{applicationName}} + + + {{applicationName}} + diff --git a/src/Ombi/ClientApp/src/app/my-nav/my-nav.component.scss b/src/Ombi/ClientApp/src/app/my-nav/my-nav.component.scss index e83ae2d66..80a00c6bb 100644 --- a/src/Ombi/ClientApp/src/app/my-nav/my-nav.component.scss +++ b/src/Ombi/ClientApp/src/app/my-nav/my-nav.component.scss @@ -165,6 +165,15 @@ display: flex; white-space: normal; word-break: break-word; + + .application-name-link { + text-decoration: none; + color: inherit; + + &:active, &:hover, &:focus { + color: inherit; + } + } } .outer-profile { diff --git a/src/Ombi/Extensions/StartupExtensions.cs b/src/Ombi/Extensions/StartupExtensions.cs index e3253045a..296339dd0 100644 --- a/src/Ombi/Extensions/StartupExtensions.cs +++ b/src/Ombi/Extensions/StartupExtensions.cs @@ -41,6 +41,21 @@ namespace Ombi Type = SecuritySchemeType.ApiKey }); + c.AddSecurityRequirement(new OpenApiSecurityRequirement + { + { + new OpenApiSecurityScheme + { + Reference = new OpenApiReference + { + Type = ReferenceType.SecurityScheme, + Id = "ApiKey" + } + }, + new string[] {} + } + }); + c.CustomSchemaIds(x => x.FullName); try diff --git a/src/Ombi/wwwroot/translations/es.json b/src/Ombi/wwwroot/translations/es.json index 8bf684664..a09d958d0 100644 --- a/src/Ombi/wwwroot/translations/es.json +++ b/src/Ombi/wwwroot/translations/es.json @@ -38,7 +38,7 @@ "Update": "Actualizaci贸n", "tvShow": "Programa de televisi贸n", "movie": "Pel铆cula", - "album": "Album" + "album": "脕lbum" }, "PasswordReset": { "EmailAddressPlaceholder": "Correo electr贸nico", @@ -204,7 +204,7 @@ "Approved": "Los elementos seleccionados ha sido aprobados correctamente" }, "SuccessfullyApproved": "Se ha aprobado con 茅xito", - "SuccessfullyDeleted": "Request successfully deleted", + "SuccessfullyDeleted": "Solicitud eliminada con 茅xito", "NowAvailable": "La solicitud est谩 disponible", "NowUnavailable": "La solicitud no est谩 disponible", "SuccessfullyReprocessed": "La solicitud ha sido procesada correctamente", @@ -214,21 +214,21 @@ "NeedToSelectEpisodes": "隆Necesitas seleccionar algunos episodios!", "RequestAddedSuccessfully": "La solicitud de {{title}} se ha a帽adido correctamente", "ErrorCodes": { - "AlreadyRequested": "This has already been requested", + "AlreadyRequested": "Ya se ha solicitado", "EpisodesAlreadyRequested": "We already have episodes requested from this series", "NoPermissionsOnBehalf": "You do not have the correct permissions to request on behalf of users!", "NoPermissions": "You do not have the correct permissions!", - "RequestDoesNotExist": "Request does not exist", + "RequestDoesNotExist": "Esta petici贸n no existe", "ChildRequestDoesNotExist": "Child Request does not exist", "NoPermissionsRequestMovie": "You do not have permissions to Request a Movie", - "NoPermissionsRequestTV": "You do not have permissions to Request a TV Show", - "NoPermissionsRequestAlbum": "You do not have permissions to Request an Album", - "MovieRequestQuotaExceeded": "You have exceeded your Movie request quota!", + "NoPermissionsRequestTV": "No tienes permiso para solicitar un Programa de televisi贸n", + "NoPermissionsRequestAlbum": "No tienes permiso para solicitar un 脕lbum", + "MovieRequestQuotaExceeded": "隆Has superado tu cuota de solicitudes de pel铆culas!", "TvRequestQuotaExceeded": "You have exceeded your Episode request quota!", "AlbumRequestQuotaExceeded": "You have exceeded your Album request quota!" }, - "Notify": "Notify", - "RemoveNotification": "Remove Notifications", + "Notify": "Notificar", + "RemoveNotification": "Eliminar notificaci贸n", "SuccessfulNotify": "You will now be notified for title {{title}}", "SuccessfulUnNotify": "You will no longer be notified for title {{title}}", "CouldntNotify": "Couldn't notify title {{title}}" @@ -317,7 +317,7 @@ "Rumored": "Rumored", "Planned": "Planificado", "In Production": "En Producci贸n", - "Post Production": "Post Production", + "Post Production": "Post-Producci贸n", "Released": "En cines", "Running": "Running", "Returning Series": "Returning Series", @@ -331,18 +331,18 @@ "Quality": "Calidad:", "RootFolderOverride": "Root Folder Override:", "QualityOverride": "Quality Override:", - "Network": "Network:", + "Network": "Cadena:", "GenresLabel": "G茅neros:", "Genres": "G茅neros", - "FirstAired": "First Aired:", - "TheatricalRelease": "Release:", - "DigitalRelease": "Digital Release:", - "Votes": "Votes:", - "Runtime": "Runtime:", + "FirstAired": "Emitido por primera vez:", + "TheatricalRelease": "Lanzamiento:", + "DigitalRelease": "Estreno Digital:", + "Votes": "Votos:", + "Runtime": "Duraci贸n:", "Minutes": "{{runtime}} Minutos", - "Revenue": "Revenue:", - "Budget": "Budget:", - "Keywords": "Keywords/Tags:", + "Revenue": "Ingresos:", + "Budget": "Presupuesto:", + "Keywords": "Palabras clave/Etiquetas:", "Casts": { "CastTitle": "Enviar pantalla" }, @@ -350,22 +350,22 @@ "AllSeasonsTooltip": "Esto solicitar谩 cada temporada para este programa", "FirstSeasonTooltip": "Esto solo solicitar谩 la primera temporada para este programa", "LatestSeasonTooltip": "Esto solo solicitar谩 la 煤ltima temporada para este programa", - "NoEpisodes": "There unfortunately is no episode data for this show yet!", - "SeasonNumber": "Season {{number}}" + "NoEpisodes": "Lamentablemente, no hay datos de episodio para este programa de televisi贸n todav铆a!", + "SeasonNumber": "Temporada {{number}}" }, - "SonarrConfiguration": "Sonarr Configuration", - "RadarrConfiguration": "Radarr Configuration", - "RequestOnBehalf": "Request on behalf of", - "PleaseSelectUser": "Please select a user", + "SonarrConfiguration": "Configuraci贸n de Sonarr", + "RadarrConfiguration": "Configuraci贸n de Radarr", + "RequestOnBehalf": "Solicitar en nombre de", + "PleaseSelectUser": "Seleccione un usuario", "StreamingOn": "Streaming On:", - "RequestedBy": "Requested By:", + "RequestedBy": "Solicitado por:", "RequestedByOn": "Solicitado por {{user}} el {{date}}", - "RequestDate": "Request Date:", + "RequestDate": "Fecha de solicitud:", "DeniedReason": "Denied Reason:", "ReProcessRequest": "Re-Process Request", "Music": { - "Type": "Type:", - "Country": "Country:", + "Type": "Tipo:", + "Country": "Pa铆s:", "StartDate": "Start Date:", "EndDate": "EndDate:" } @@ -375,7 +375,7 @@ "TrendingTab": "Tendencias", "UpcomingTab": "Pr贸ximamente", "SeasonalTab": "Seasonal", - "RecentlyRequestedTab": "Recently Requested", + "RecentlyRequestedTab": "Solicitudes recientes", "Movies": "Pel铆culas", "Combined": "Combinado", "Tv": "TV", @@ -391,36 +391,36 @@ "Writer": "Guionistas", "ExecProducer": "Productor ejecutivo" }, - "NoSearch": "Sorry, nothing matches your search!" + "NoSearch": "隆Lo sentimos, nada coincide con tu b煤squeda!" }, "UserPreferences": { "Welcome": "Bienvenido {{username}}!", "OmbiLanguage": "Idioma", "DarkMode": "Modo Oscuro", - "Updated": "Successfully Updated", - "StreamingCountry": "Streaming Country", - "StreamingCountryDescription": "This is the country code that we will display streaming information for. If you are in the US please select US and you will get US related streaming information.", - "LanguageDescription": "This is the language you would like the Ombi interface to be displayed in.", + "Updated": "Actualizado correctamente", + "StreamingCountry": "Pa铆s de emisi贸n", + "StreamingCountryDescription": "Este es el c贸digo de pa铆s desde el que mostraremos informaci贸n de emisi贸n. Si est谩s en Espa帽a, por favor selecciona ES y tendr谩s informaci贸n relacionada con la emisi贸n en Espa帽a.", + "LanguageDescription": "Este es el idioma en el que desea mostrar la interfaz de Ombi.", "MobileQRCode": "Mobile QR Code", "LegacyApp": "Launch Legacy App", "NoQrCode": "Please contact your administrator to enable QR codes", "UserType": "User Type:", - "ChangeDetails": "Change Details", + "ChangeDetails": "Modificar mis datos", "NeedCurrentPassword": "You need your current password to make any changes here", - "CurrentPassword": "Current Password", - "EmailAddress": "Email Address", - "NewPassword": "New Password", - "NewPasswordConfirm": "New Password Confirm", - "Security": "Security", - "Profile": "Profile", - "UpdatedYourInformation": "Updated your information", + "CurrentPassword": "Contrase帽a actual", + "EmailAddress": "Correo electr贸nico", + "NewPassword": "Nueva Contrase帽a", + "NewPasswordConfirm": "Confirmar contrase帽a", + "Security": "Seguridad", + "Profile": "Perfil", + "UpdatedYourInformation": "Informaci贸n actualizada", "Unsubscribed": "No suscrito!" }, "UserTypeLabel": { "1": "Usuario local", "2": "Usuario de Plex", "3": "Usuario de Emby", - "4": "Emby Connect User", + "4": "Conectar usuario de Emby", "5": "Usuario de Jellyfin" }, "Paginator": { diff --git a/version.json b/version.json index 8e1cf1a5b..55747f7f1 100644 --- a/version.json +++ b/version.json @@ -1,3 +1,3 @@ { - "version": "4.10.0" + "version": "4.10.3" } \ No newline at end of file