From 1a1a15df34be9d4eb1e760c74e66549d30df17d9 Mon Sep 17 00:00:00 2001 From: Jamie Date: Thu, 23 May 2019 16:44:11 +0100 Subject: [PATCH 01/54] Create FUNDING.yml --- .github/FUNDING.yml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 000000000..419d87940 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,8 @@ +# These are supported funding model platforms + +github: [tidusjar] +patreon: tidusjar +#open_collective: # Replace with a single Open Collective username +#ko_fi: # Replace with a single Ko-fi username +#tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +custom: https://paypal.me/PlexRequestsNet From 88cdfea9a9d1ef7860773581bcbc74c3cc9bea51 Mon Sep 17 00:00:00 2001 From: tidusjar Date: Fri, 24 May 2019 21:55:37 +0100 Subject: [PATCH 02/54] Logging and slight change to the string matching now not dependant on Thread Culture #2866 --- src/Ombi.Schedule/Jobs/Plex/PlexContentSync.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Ombi.Schedule/Jobs/Plex/PlexContentSync.cs b/src/Ombi.Schedule/Jobs/Plex/PlexContentSync.cs index 964832b44..f3b0b4f26 100644 --- a/src/Ombi.Schedule/Jobs/Plex/PlexContentSync.cs +++ b/src/Ombi.Schedule/Jobs/Plex/PlexContentSync.cs @@ -160,7 +160,8 @@ namespace Ombi.Schedule.Jobs.Plex foreach (var content in allContent) { - if (content.viewGroup.Equals(PlexMediaType.Episode.ToString(), StringComparison.CurrentCultureIgnoreCase)) + Logger.LogDebug($"Got type '{content.viewGroup}' to process"); + if (content.viewGroup.Equals(PlexMediaType.Episode.ToString(), StringComparison.InvariantCultureIgnoreCase)) { Logger.LogDebug("Found some episodes, this must be a recently added sync"); var count = 0; @@ -204,7 +205,7 @@ namespace Ombi.Schedule.Jobs.Plex episodesProcessed.AddRange(episodesAdded.Select(x => x.Id)); } } - if (content.viewGroup.Equals(PlexMediaType.Show.ToString(), StringComparison.CurrentCultureIgnoreCase)) + if (content.viewGroup.Equals(PlexMediaType.Show.ToString(), StringComparison.InvariantCultureIgnoreCase)) { // Process Shows Logger.LogDebug("Processing TV Shows"); @@ -234,7 +235,7 @@ namespace Ombi.Schedule.Jobs.Plex await Repo.SaveChangesAsync(); } - if (content.viewGroup.Equals(PlexMediaType.Movie.ToString(), StringComparison.CurrentCultureIgnoreCase)) + if (content.viewGroup.Equals(PlexMediaType.Movie.ToString(), StringComparison.InvariantCultureIgnoreCase)) { Logger.LogDebug("Processing Movies"); foreach (var movie in content?.Metadata ?? new Metadata[] { }) From 1cf1c06e5ea94d32c653fa405d22b840604ba4e8 Mon Sep 17 00:00:00 2001 From: tidusjar Date: Fri, 31 May 2019 22:30:44 +0100 Subject: [PATCH 03/54] Remove the need for the schedules.db #2994 --- src/Ombi/Startup.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Ombi/Startup.cs b/src/Ombi/Startup.cs index bbf56c517..507a9ef83 100644 --- a/src/Ombi/Startup.cs +++ b/src/Ombi/Startup.cs @@ -4,6 +4,7 @@ using AutoMapper; using AutoMapper.EquivalencyExpression; using Hangfire; using Hangfire.Dashboard; +using Hangfire.MemoryStorage; using Hangfire.SQLite; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; @@ -93,16 +94,15 @@ namespace Ombi services.AddSwagger(); services.AddAppSettingsValues(Configuration); - var i = StoragePathSingleton.Instance; + var i = StoragePathSingleton.Instance; if (string.IsNullOrEmpty(i.StoragePath)) { i.StoragePath = string.Empty; } - var sqliteStorage = $"Data Source={Path.Combine(i.StoragePath, "Schedules.db")};"; services.AddHangfire(x => { - x.UseSQLiteStorage(sqliteStorage); + x.UseMemoryStorage(); x.UseActivator(new IoCJobActivator(services.BuildServiceProvider())); }); From f5ebea203886fba70baa40d5697ca042d3bc44b1 Mon Sep 17 00:00:00 2001 From: Jamie Date: Tue, 2 Jul 2019 11:34:31 +0100 Subject: [PATCH 04/54] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 18ce95bc1..f2f86ba68 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## (unreleased) +## v3.0.4654 (2019-07-02) ### **New Features** From 4109b7d201bae79d90155d49b4d96c8ccbdc528d Mon Sep 17 00:00:00 2001 From: Jamie Date: Tue, 2 Jul 2019 16:06:59 +0100 Subject: [PATCH 05/54] Update appsettings.json --- src/Ombi/appsettings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Ombi/appsettings.json b/src/Ombi/appsettings.json index 7d352f0dc..8a9e38008 100644 --- a/src/Ombi/appsettings.json +++ b/src/Ombi/appsettings.json @@ -2,7 +2,7 @@ "Logging": { "IncludeScopes": false, "LogLevel": { - "Default": "Debug", + "Default": "Information", "System": "Information", "Microsoft": "None", "Hangfire": "None" From 609dc831aaff8ed1df87bd3e1e129de89626b1cd Mon Sep 17 00:00:00 2001 From: Jamie Date: Tue, 2 Jul 2019 16:26:49 +0100 Subject: [PATCH 06/54] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f2f86ba68..e1266bfac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## v3.0.4654 (2019-07-02) +## v3.0.4659 (2019-07-02) ### **New Features** From 572065009ceafa02d8ba1d49b9678814a50cb752 Mon Sep 17 00:00:00 2001 From: Jamie Date: Tue, 2 Jul 2019 17:17:25 +0100 Subject: [PATCH 07/54] New translations en.json (Polish) --- src/Ombi/wwwroot/translations/pl.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Ombi/wwwroot/translations/pl.json b/src/Ombi/wwwroot/translations/pl.json index f309e6a86..1e495087d 100644 --- a/src/Ombi/wwwroot/translations/pl.json +++ b/src/Ombi/wwwroot/translations/pl.json @@ -62,7 +62,7 @@ }, "Search": { "Title": "Szukaj", - "Paragraph": "Chcesz obejrzeć coś, co nie jest obecnie dostępne? Żaden problem, po prostu wyszukaj poniżej i dodaj zgłoszenie!", + "Paragraph": "Chcesz obejrzeć coś, co nie jest obecnie dostępne? Żaden problem! Po prostu wyszukaj poniżej i dodaj zgłoszenie!", "MoviesTab": "Filmy", "TvTab": "Seriale", "MusicTab": "Muzyka", From 492f7fe1e1b05d9faaacb133d0453496a0084f27 Mon Sep 17 00:00:00 2001 From: Jamie Rees Date: Sat, 6 Jul 2019 00:06:29 +0100 Subject: [PATCH 08/54] #2994 - enable multithreading in the sql config --- src/Ombi/Program.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Ombi/Program.cs b/src/Ombi/Program.cs index dd0baa8d4..77e81427e 100644 --- a/src/Ombi/Program.cs +++ b/src/Ombi/Program.cs @@ -20,6 +20,8 @@ namespace Ombi { Console.Title = "Ombi"; + SQLitePCL.raw.sqlite3_config(2); + var host = string.Empty; var storagePath = string.Empty; var baseUrl = string.Empty; From f85ee3e144f03ce86135485f55543fc3e6a4577d Mon Sep 17 00:00:00 2001 From: tidusjar Date: Sat, 6 Jul 2019 08:11:08 +0100 Subject: [PATCH 09/54] #2994 Fixed the startup issue --- src/Ombi/Program.cs | 2 -- src/Ombi/Startup.cs | 13 +++++-------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/src/Ombi/Program.cs b/src/Ombi/Program.cs index 77e81427e..dd0baa8d4 100644 --- a/src/Ombi/Program.cs +++ b/src/Ombi/Program.cs @@ -20,8 +20,6 @@ namespace Ombi { Console.Title = "Ombi"; - SQLitePCL.raw.sqlite3_config(2); - var host = string.Empty; var storagePath = string.Empty; var baseUrl = string.Empty; diff --git a/src/Ombi/Startup.cs b/src/Ombi/Startup.cs index 796517225..72b212841 100755 --- a/src/Ombi/Startup.cs +++ b/src/Ombi/Startup.cs @@ -4,6 +4,7 @@ using AutoMapper; using AutoMapper.EquivalencyExpression; using Hangfire; using Hangfire.Dashboard; +using Hangfire.MemoryStorage; using Hangfire.SQLite; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; @@ -90,19 +91,15 @@ namespace Ombi services.AddSwagger(); services.AddAppSettingsValues(Configuration); - var i = StoragePathSingleton.Instance; - if (string.IsNullOrEmpty(i.StoragePath)) - { - i.StoragePath = string.Empty; - } - var sqliteStorage = $"Data Source={Path.Combine(i.StoragePath, "Schedules.db")};"; - services.AddHangfire(x => { - x.UseSQLiteStorage(sqliteStorage); + x.UseMemoryStorage(); x.UseActivator(new IoCJobActivator(services.BuildServiceProvider())); }); + + SQLitePCL.raw.sqlite3_config(2); + services.AddCors(o => o.AddPolicy("MyPolicy", builder => { builder.AllowAnyOrigin() From 7429b1a0df4b07e7fcf446973cf27666f4aa8385 Mon Sep 17 00:00:00 2001 From: Jamie Rees Date: Wed, 17 Jul 2019 08:47:25 +0100 Subject: [PATCH 10/54] Fix Plex's (intentional) mistake #3073 --- src/Ombi.Api.Plex/PlexApi.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Ombi.Api.Plex/PlexApi.cs b/src/Ombi.Api.Plex/PlexApi.cs index fe6ba23e2..60dec7065 100644 --- a/src/Ombi.Api.Plex/PlexApi.cs +++ b/src/Ombi.Api.Plex/PlexApi.cs @@ -223,11 +223,11 @@ namespace Ombi.Api.Plex await AddHeaders(request); request.AddQueryString("code", code); - request.AddQueryString("context[device][product]", ApplicationName); + request.AddQueryString("context[device][product]", "Plex Web"); // Note this is to work around Plex's shit https://forums.plex.tv/t/plex-oauth-not-working-with-tautulli-ombi-etc/433945 request.AddQueryString("context[device][environment]", "bundled"); request.AddQueryString("context[device][layout]", "desktop"); request.AddQueryString("context[device][platform]", "Web"); - request.AddQueryString("context[device][device]", "Ombi (Web)"); + request.AddQueryString("context[device][device]", "Plex"); var s = await GetSettings(); await CheckInstallId(s); @@ -293,9 +293,9 @@ namespace Ombi.Api.Plex var s = await GetSettings(); await CheckInstallId(s); request.AddHeader("X-Plex-Client-Identifier", s.InstallId.ToString("N")); - request.AddHeader("X-Plex-Product", ApplicationName); + request.AddHeader("X-Plex-Product", "Plex Web"); request.AddHeader("X-Plex-Version", "3"); - request.AddHeader("X-Plex-Device", "Ombi (Web)"); + request.AddHeader("X-Plex-Device", "Plex"); request.AddHeader("X-Plex-Platform", "Web"); request.AddContentHeader("Content-Type", request.ContentType == ContentType.Json ? "application/json" : "application/xml"); request.AddHeader("Accept", "application/json"); From 2773b95906e33fe22f3dd0e98632afcfa98c86f8 Mon Sep 17 00:00:00 2001 From: Jamie Date: Wed, 17 Jul 2019 09:58:34 +0100 Subject: [PATCH 11/54] Update CHANGELOG.md --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e1266bfac..d4fea0965 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## v3.0.4680 (2019-07-17) + + +### **Fixes** + +- Fixed the database lock issues - [TidusJar] +- Fixed the issue with [Plex OAuth](https://forums.plex.tv/t/plex-oauth-not-working-with-tautulli-ombi-etc/433945) - [TidusJar] + ## v3.0.4659 (2019-07-02) ### **New Features** From 25186ba14957f67bf8abe91291b77eada66ed696 Mon Sep 17 00:00:00 2001 From: tidusjar Date: Fri, 19 Jul 2019 21:29:13 +0100 Subject: [PATCH 12/54] Put "Ombi" back as the product name for Plex oAuth --- src/Ombi.Api.Plex/PlexApi.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Ombi.Api.Plex/PlexApi.cs b/src/Ombi.Api.Plex/PlexApi.cs index 60dec7065..eaafcd75f 100644 --- a/src/Ombi.Api.Plex/PlexApi.cs +++ b/src/Ombi.Api.Plex/PlexApi.cs @@ -223,11 +223,11 @@ namespace Ombi.Api.Plex await AddHeaders(request); request.AddQueryString("code", code); - request.AddQueryString("context[device][product]", "Plex Web"); // Note this is to work around Plex's shit https://forums.plex.tv/t/plex-oauth-not-working-with-tautulli-ombi-etc/433945 + request.AddQueryString("context[device][product]", ApplicationName); request.AddQueryString("context[device][environment]", "bundled"); request.AddQueryString("context[device][layout]", "desktop"); request.AddQueryString("context[device][platform]", "Web"); - request.AddQueryString("context[device][device]", "Plex"); + request.AddQueryString("context[device][device]", "Ombi"); var s = await GetSettings(); await CheckInstallId(s); @@ -293,9 +293,9 @@ namespace Ombi.Api.Plex var s = await GetSettings(); await CheckInstallId(s); request.AddHeader("X-Plex-Client-Identifier", s.InstallId.ToString("N")); - request.AddHeader("X-Plex-Product", "Plex Web"); + request.AddHeader("X-Plex-Product", ApplicationName); request.AddHeader("X-Plex-Version", "3"); - request.AddHeader("X-Plex-Device", "Plex"); + request.AddHeader("X-Plex-Device", "Ombi"); request.AddHeader("X-Plex-Platform", "Web"); request.AddContentHeader("Content-Type", request.ContentType == ContentType.Json ? "application/json" : "application/xml"); request.AddHeader("Accept", "application/json"); From 769343a128252d14175446e13f3d45e3d6026778 Mon Sep 17 00:00:00 2001 From: tidusjar Date: Thu, 8 Aug 2019 15:42:04 +0100 Subject: [PATCH 13/54] Fixed issue where using the API to request a movie/tv show would throw an exception when only using the API Key #3091 --- src/Ombi.Core/Rule/Rules/Request/AutoApproveRule.cs | 7 ++++--- src/Ombi.Core/Rule/Rules/Request/CanRequestRule.cs | 5 +++-- .../Rule/Rules/Specific/SendNotificationRule.cs | 2 +- src/Ombi.Store/Context/OmbiContext.cs | 1 - src/Ombi/Controllers/IdentityController.cs | 10 ++++++---- src/Ombi/Controllers/IssuesController.cs | 4 ++-- src/Ombi/Controllers/MobileController.cs | 2 +- 7 files changed, 17 insertions(+), 14 deletions(-) diff --git a/src/Ombi.Core/Rule/Rules/Request/AutoApproveRule.cs b/src/Ombi.Core/Rule/Rules/Request/AutoApproveRule.cs index 685f02b54..6b528e806 100644 --- a/src/Ombi.Core/Rule/Rules/Request/AutoApproveRule.cs +++ b/src/Ombi.Core/Rule/Rules/Request/AutoApproveRule.cs @@ -1,4 +1,5 @@ -using System.Security.Principal; +using System; +using System.Security.Principal; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using Ombi.Core.Authentication; @@ -23,8 +24,8 @@ namespace Ombi.Core.Rule.Rules.Request public async Task Execute(BaseRequest obj) { - var user = await _manager.Users.FirstOrDefaultAsync(x => x.UserName == User.Identity.Name); - if (await _manager.IsInRoleAsync(user, OmbiRoles.Admin)) + var user = await _manager.Users.FirstOrDefaultAsync(x => x.UserName.Equals(User.Identity.Name, StringComparison.InvariantCultureIgnoreCase)); + if (await _manager.IsInRoleAsync(user, OmbiRoles.Admin) || user.IsSystemUser) { obj.Approved = true; return Success(); diff --git a/src/Ombi.Core/Rule/Rules/Request/CanRequestRule.cs b/src/Ombi.Core/Rule/Rules/Request/CanRequestRule.cs index 2b316cfc5..b54c8b4fb 100644 --- a/src/Ombi.Core/Rule/Rules/Request/CanRequestRule.cs +++ b/src/Ombi.Core/Rule/Rules/Request/CanRequestRule.cs @@ -1,3 +1,4 @@ +using System; using Ombi.Store.Entities; using System.IO; using System.Security.Claims; @@ -25,8 +26,8 @@ namespace Ombi.Core.Rule.Rules.Request public async Task Execute(BaseRequest obj) { - var user = await _manager.Users.FirstOrDefaultAsync(x => x.UserName == User.Identity.Name); - if (await _manager.IsInRoleAsync(user, OmbiRoles.Admin)) + var user = await _manager.Users.FirstOrDefaultAsync(x => x.UserName.Equals(User.Identity.Name, StringComparison.InvariantCultureIgnoreCase)); + if (await _manager.IsInRoleAsync(user, OmbiRoles.Admin) || user.IsSystemUser) return Success(); if (obj.RequestType == RequestType.Movie) diff --git a/src/Ombi.Core/Rule/Rules/Specific/SendNotificationRule.cs b/src/Ombi.Core/Rule/Rules/Specific/SendNotificationRule.cs index 3f9e2f159..30ec9b14a 100644 --- a/src/Ombi.Core/Rule/Rules/Specific/SendNotificationRule.cs +++ b/src/Ombi.Core/Rule/Rules/Specific/SendNotificationRule.cs @@ -50,7 +50,7 @@ namespace Ombi.Core.Rule.Rules.Specific } } - if (await UserManager.IsInRoleAsync(requestedUser, OmbiRoles.Admin)) + if (await UserManager.IsInRoleAsync(requestedUser, OmbiRoles.Admin) || requestedUser.IsSystemUser) { sendNotification = false; // Don't bother sending a notification if the user is an admin } diff --git a/src/Ombi.Store/Context/OmbiContext.cs b/src/Ombi.Store/Context/OmbiContext.cs index ea61b253f..28b27107e 100644 --- a/src/Ombi.Store/Context/OmbiContext.cs +++ b/src/Ombi.Store/Context/OmbiContext.cs @@ -101,7 +101,6 @@ namespace Ombi.Store.Context UserName = "Api", UserType = UserType.SystemUser, NormalizedUserName = "API", - }); SaveChanges(); tran.Commit(); diff --git a/src/Ombi/Controllers/IdentityController.cs b/src/Ombi/Controllers/IdentityController.cs index 4838eabf1..e531ee6bc 100644 --- a/src/Ombi/Controllers/IdentityController.cs +++ b/src/Ombi/Controllers/IdentityController.cs @@ -233,6 +233,8 @@ namespace Ombi.Controllers await CreateRole(OmbiRoles.AutoApproveMovie); await CreateRole(OmbiRoles.Admin); await CreateRole(OmbiRoles.AutoApproveTv); + await CreateRole(OmbiRoles.AutoApproveMusic); + await CreateRole(OmbiRoles.RequestMusic); await CreateRole(OmbiRoles.PowerUser); await CreateRole(OmbiRoles.RequestMovie); await CreateRole(OmbiRoles.RequestTv); @@ -279,7 +281,7 @@ namespace Ombi.Controllers [Authorize] public async Task GetCurrentUser() { - var user = await UserManager.Users.FirstOrDefaultAsync(x => x.UserName == User.Identity.Name); + var user = await UserManager.Users.FirstOrDefaultAsync(x => x.UserName.Equals(User.Identity.Name, StringComparison.InvariantCultureIgnoreCase)); return await GetUserWithRoles(user); } @@ -873,7 +875,7 @@ namespace Ombi.Controllers [ApiExplorerSettings(IgnoreApi = true)] public async Task GetUserAccessToken() { - var user = await UserManager.Users.FirstOrDefaultAsync(x => x.UserName == User.Identity.Name); + var user = await UserManager.Users.FirstOrDefaultAsync(x => x.UserName.Equals(User.Identity.Name, StringComparison.InvariantCultureIgnoreCase)); if (user == null) { return Guid.Empty.ToString("N"); @@ -895,7 +897,7 @@ namespace Ombi.Controllers [HttpGet("notificationpreferences")] public async Task> GetUserPreferences() { - var user = await UserManager.Users.FirstOrDefaultAsync(x => x.UserName == User.Identity.Name); + var user = await UserManager.Users.FirstOrDefaultAsync(x => x.UserName.Equals(User.Identity.Name, StringComparison.InvariantCultureIgnoreCase)); return await GetPreferences(user); } @@ -948,7 +950,7 @@ namespace Ombi.Controllers return NotFound(); } // Check if we are editing a different user than ourself, if we are then we need to power user role - var me = await UserManager.Users.FirstOrDefaultAsync(x => x.UserName == User.Identity.Name); + var me = await UserManager.Users.FirstOrDefaultAsync(x => x.UserName.Equals(User.Identity.Name, StringComparison.InvariantCultureIgnoreCase)); if (!me.Id.Equals(user.Id, StringComparison.InvariantCultureIgnoreCase)) { var isPowerUser = await UserManager.IsInRoleAsync(me, OmbiRoles.PowerUser); diff --git a/src/Ombi/Controllers/IssuesController.cs b/src/Ombi/Controllers/IssuesController.cs index 194ac971b..9e28ccdc3 100644 --- a/src/Ombi/Controllers/IssuesController.cs +++ b/src/Ombi/Controllers/IssuesController.cs @@ -187,7 +187,7 @@ namespace Ombi.Controllers Comment = c.Comment, Date = c.Date, Username = c.User.UserAlias, - AdminComment = roles.Contains(OmbiRoles.PowerUser) || roles.Contains(OmbiRoles.Admin) + AdminComment = roles.Contains(OmbiRoles.PowerUser) || roles.Contains(OmbiRoles.Admin) || c.User.IsSystemUser }); } return vm; @@ -223,7 +223,7 @@ namespace Ombi.Controllers UserId = user.Id }; - var isAdmin = await _userManager.IsInRoleAsync(user, OmbiRoles.Admin); + var isAdmin = await _userManager.IsInRoleAsync(user, OmbiRoles.Admin) || user.IsSystemUser; AddIssueNotificationSubstitutes(notificationModel, issue, issue.UserReported.UserAlias); notificationModel.Substitutes.Add("NewIssueComment", comment.Comment); notificationModel.Substitutes.Add("AdminComment", isAdmin.ToString()); diff --git a/src/Ombi/Controllers/MobileController.cs b/src/Ombi/Controllers/MobileController.cs index dc7d88a80..17dab21b4 100644 --- a/src/Ombi/Controllers/MobileController.cs +++ b/src/Ombi/Controllers/MobileController.cs @@ -40,7 +40,7 @@ namespace Ombi.Controllers { if (body?.PlayerId.HasValue() ?? false) { - var user = await _userManager.Users.FirstOrDefaultAsync(x => x.UserName == User.Identity.Name); + var user = await _userManager.Users.FirstOrDefaultAsync(x => x.UserName.Equals(User.Identity.Name, StringComparison.InvariantCultureIgnoreCase)); // Check if we already have this notification id var alreadyExists = await _notification.GetAll().AnyAsync(x => x.PlayerId == body.PlayerId && x.UserId == user.Id); From e2cf020c1125ab6b86a80db7f518c55914dba6ec Mon Sep 17 00:00:00 2001 From: Jamie Date: Fri, 9 Aug 2019 20:21:15 +0100 Subject: [PATCH 14/54] New translations en.json (Russian) --- src/Ombi/wwwroot/translations/ru.json | 40 +++++++++++++-------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/Ombi/wwwroot/translations/ru.json b/src/Ombi/wwwroot/translations/ru.json index 7cf9f1702..f10d661f7 100644 --- a/src/Ombi/wwwroot/translations/ru.json +++ b/src/Ombi/wwwroot/translations/ru.json @@ -16,13 +16,13 @@ "Monitored": "Мониторинг", "NotAvailable": "Недоступно", "ProcessingRequest": "Обработка запроса", - "PendingApproval": "Ожидание утверждения", + "PendingApproval": "В ожидании одобрения", "RequestDenied": "Запрос отклонен", "NotRequested": "Не запрошено", "Requested": "Запрос отправлен", - "Request": "Запрос", - "Denied": "Запрещено", - "Approve": "Утвердить", + "Request": "Запросить", + "Denied": "Отказано", + "Approve": "Одобрить", "PartlyAvailable": "Partly Available", "Errors": { "Validation": "Please check your entered values" @@ -160,27 +160,27 @@ "MarkResolved": "Mark Resolved", "SendMessageButton": "Send", "Subject": "Subject", - "Comments": "Comments", - "WriteMessagePlaceholder": "Write your message here...", - "ReportedBy": "Reported By" + "Comments": "Комментарии", + "WriteMessagePlaceholder": "Введите текст сообщения здесь...", + "ReportedBy": "Жалоба поступила от" }, "Filter": { - "ClearFilter": "Clear Filter", - "FilterHeaderAvailability": "Availability", - "FilterHeaderRequestStatus": "Status", - "Approved": "Approved", - "PendingApproval": "Pending Approval" + "ClearFilter": "Сбросить фильтр", + "FilterHeaderAvailability": "Доступность", + "FilterHeaderRequestStatus": "Статус", + "Approved": "Одобрено", + "PendingApproval": "В ожидании одобрения" }, "UserManagment": { - "TvRemaining": "TV: {{remaining}}/{{total}} remaining", - "MovieRemaining": "Movies: {{remaining}}/{{total}} remaining", - "MusicRemaining": "Music: {{remaining}}/{{total}} remaining", - "TvDue": "TV: {{date}}", - "MovieDue": "Movie: {{date}}", - "MusicDue": "Music: {{date}}" + "TvRemaining": "Сериалы: {{remaining}}/{{total}} осталось", + "MovieRemaining": "Фильмы: {{remaining}}/{{total}} осталось", + "MusicRemaining": "Музыка: {{remaining}}/{{total}} осталось", + "TvDue": "Сериалы: {{date}}", + "MovieDue": "Фильм: {{date}}", + "MusicDue": "Музыка: {{date}}" }, "Votes": { - "CompletedVotesTab": "Voted", - "VotesTab": "Votes Needed" + "CompletedVotesTab": "Проголосовано", + "VotesTab": "Необходимы голоса" } } From 3f54441ac64cb9e93928a34171e216a8f52292ad Mon Sep 17 00:00:00 2001 From: Jamie Date: Fri, 9 Aug 2019 20:31:07 +0100 Subject: [PATCH 15/54] New translations en.json (Russian) --- src/Ombi/wwwroot/translations/ru.json | 60 +++++++++++++-------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/src/Ombi/wwwroot/translations/ru.json b/src/Ombi/wwwroot/translations/ru.json index f10d661f7..a46bd6e16 100644 --- a/src/Ombi/wwwroot/translations/ru.json +++ b/src/Ombi/wwwroot/translations/ru.json @@ -23,24 +23,24 @@ "Request": "Запросить", "Denied": "Отказано", "Approve": "Одобрить", - "PartlyAvailable": "Partly Available", + "PartlyAvailable": "Частично доступно", "Errors": { - "Validation": "Please check your entered values" + "Validation": "Пожалуйста, проверьте введенные значения" } }, "PasswordReset": { - "EmailAddressPlaceholder": "Email Address", - "ResetPasswordButton": "Reset Password" + "EmailAddressPlaceholder": "Адрес эл. почты", + "ResetPasswordButton": "Сбросить пароль" }, "LandingPage": { - "OnlineHeading": "Currently Online", - "OnlineParagraph": "The media server is currently online", - "PartiallyOnlineHeading": "Partially Online", - "PartiallyOnlineParagraph": "The media server is partially online.", - "MultipleServersUnavailable": "There are {{serversUnavailable}} servers offline out of {{totalServers}}.", - "SingleServerUnavailable": "There is {{serversUnavailable}} server offline out of {{totalServers}}.", - "OfflineHeading": "Currently Offline", - "OfflineParagraph": "The media server is currently offline.", + "OnlineHeading": "Сейчас в сети", + "OnlineParagraph": "Медиа-сервер в настоящее время в сети", + "PartiallyOnlineHeading": "Частично в сети", + "PartiallyOnlineParagraph": "Медиа-сервер частично в сети.", + "MultipleServersUnavailable": "В сети нет {{serversUnavailable}} серверов из {{totalServers}}.", + "SingleServerUnavailable": "В сети нет {{serversUnavailable}} серверов из {{totalServers}}.", + "OfflineHeading": "В настоящее время в offline", + "OfflineParagraph": "Медиа-сервер в настоящее время не в сети.", "CheckPageForUpdates": "Check this page for continuous site updates." }, "NavigationBar": { @@ -139,27 +139,27 @@ "SortStatusDesc": "Status ▼", "Remaining": { "Quota": "{{remaining}}/{{total}} requests remaining", - "NextDays": "Another request will be added in {{time}} days", - "NextHours": "Another request will be added in {{time}} hours", - "NextMinutes": "Another request will be added in {{time}} minutes", - "NextMinute": "Another request will be added in {{time}} minute" + "NextDays": "Следующий запрос будет добавлен через {{time}} дней", + "NextHours": "Следующий запрос будет добавлен через {{time}} часов", + "NextMinutes": "Следующий запрос будет добавлен через {{time}} минут", + "NextMinute": "Следующий запрос будет добавлен через {{time}} минуту" } }, "Issues": { - "Title": "Issues", - "PendingTitle": "Pending Issues", - "InProgressTitle": "In Progress Issues", - "ResolvedTitle": "Resolved Issues", - "ColumnTitle": "Title", - "Category": "Category", - "Status": "Status", - "Details": "Details", - "Description": "Description", - "NoComments": "No Comments!", - "MarkInProgress": "Mark In Progress", - "MarkResolved": "Mark Resolved", - "SendMessageButton": "Send", - "Subject": "Subject", + "Title": "Проблемы", + "PendingTitle": "Проблемы в ожидании", + "InProgressTitle": "Проблемы в процессе", + "ResolvedTitle": "Решенные проблемы", + "ColumnTitle": "Название", + "Category": "Категория", + "Status": "Статус", + "Details": "Подробная информация", + "Description": "Описание", + "NoComments": "Нет комментариев!", + "MarkInProgress": "Отметить в процессе", + "MarkResolved": "Отметить как решенное", + "SendMessageButton": "Отправить", + "Subject": "Тема", "Comments": "Комментарии", "WriteMessagePlaceholder": "Введите текст сообщения здесь...", "ReportedBy": "Жалоба поступила от" From 85b380c268215dee5efac54a97cbad48b3add3b4 Mon Sep 17 00:00:00 2001 From: Jamie Date: Fri, 9 Aug 2019 20:47:18 +0100 Subject: [PATCH 16/54] New translations en.json (Russian) --- src/Ombi/wwwroot/translations/ru.json | 94 +++++++++++++-------------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/src/Ombi/wwwroot/translations/ru.json b/src/Ombi/wwwroot/translations/ru.json index a46bd6e16..aeb594ef0 100644 --- a/src/Ombi/wwwroot/translations/ru.json +++ b/src/Ombi/wwwroot/translations/ru.json @@ -41,60 +41,60 @@ "SingleServerUnavailable": "В сети нет {{serversUnavailable}} серверов из {{totalServers}}.", "OfflineHeading": "В настоящее время в offline", "OfflineParagraph": "Медиа-сервер в настоящее время не в сети.", - "CheckPageForUpdates": "Check this page for continuous site updates." + "CheckPageForUpdates": "Проверьте эту страницу для получения последних новостей сайта." }, "NavigationBar": { - "Search": "Search", - "Requests": "Requests", - "UserManagement": "User Management", - "Issues": "Issues", - "Vote": "Vote", - "Donate": "Donate!", - "DonateLibraryMaintainer": "Donate to Library Maintainer", - "DonateTooltip": "This is how I convince my wife to let me spend my spare time developing Ombi ;)", - "UpdateAvailableTooltip": "Update Available!", - "Settings": "Settings", - "Welcome": "Welcome {{username}}", - "UpdateDetails": "Update Details", - "Logout": "Logout", - "OpenMobileApp": "Open Mobile App", - "RecentlyAdded": "Recently Added" + "Search": "Поиск", + "Requests": "Запросы", + "UserManagement": "Управление пользователями", + "Issues": "Проблемы", + "Vote": "Голосование", + "Donate": "Поддержать!", + "DonateLibraryMaintainer": "Поддержать библиотекаря", + "DonateTooltip": "Так я убедил свою жену позволить мне тратить своё свободное время на разработку Ombi ;)", + "UpdateAvailableTooltip": "Доступно обновление!", + "Settings": "Настройки", + "Welcome": "Добро пожаловать, {{username}}", + "UpdateDetails": "Обновить детали", + "Logout": "Выйти", + "OpenMobileApp": "Открыть моб. приложение", + "RecentlyAdded": "Недавно добавленные" }, "Search": { - "Title": "Search", - "Paragraph": "Want to watch something that is not currently available? No problem, just search for it below and request it!", - "MoviesTab": "Movies", - "TvTab": "TV Shows", - "MusicTab": "Music", - "Suggestions": "Suggestions", - "NoResults": "Sorry, we didn't find any results!", - "DigitalDate": "Digital Release: {{date}}", - "TheatricalRelease": "Theatrical Release: {{date}}", - "ViewOnPlex": "View On Plex", - "ViewOnEmby": "View On Emby", - "RequestAdded": "Request for {{title}} has been added successfully", - "Similar": "Similar", - "Refine": "Refine", - "SearchBarPlaceholder": "Type Here to Search", + "Title": "Поиск", + "Paragraph": "Хотите посмотреть что-то, чего нет в доступе? Нет проблем, просто найдите это в поиске и запросите!", + "MoviesTab": "Фильмы", + "TvTab": "Сериалы", + "MusicTab": "Музыка", + "Suggestions": "Рекомендации", + "NoResults": "Извините, мы ничего не нашли!", + "DigitalDate": "Дигитальный релиз: {{date}}", + "TheatricalRelease": "Релиз в кинотеатрах: {{date}}", + "ViewOnPlex": "Смотреть в Plex", + "ViewOnEmby": "Смотреть в Emby", + "RequestAdded": "Запрос на {{title}} успешно добавлен", + "Similar": "Похожие", + "Refine": "Уточнить", + "SearchBarPlaceholder": "Поиск...", "Movies": { - "PopularMovies": "Popular Movies", - "UpcomingMovies": "Upcoming Movies", - "TopRatedMovies": "Top Rated Movies", - "NowPlayingMovies": "Now Playing Movies", - "HomePage": "Home Page", - "Trailer": "Trailer" + "PopularMovies": "Популярные фильмы", + "UpcomingMovies": "В скором времени", + "TopRatedMovies": "Фильмы с высоким рейтингом", + "NowPlayingMovies": "Сейчас в кинотеатрах", + "HomePage": "Главная страница", + "Trailer": "Трейлер" }, "TvShows": { - "Popular": "Popular", - "Trending": "Trending", - "MostWatched": "Most Watched", - "MostAnticipated": "Most Anticipated", - "Results": "Results", - "AirDate": "Air Date:", - "AllSeasons": "All Seasons", - "FirstSeason": "First Season", - "LatestSeason": "Latest Season", - "Select": "Select ...", + "Popular": "Популярное", + "Trending": "В трэнде", + "MostWatched": "Самые просматриваемые", + "MostAnticipated": "Самые ожидаемые", + "Results": "Результаты", + "AirDate": "Дата выхода:", + "AllSeasons": "Все сезоны", + "FirstSeason": "Первый сезон", + "LatestSeason": "Последний сезон", + "Select": "Выбрать...", "SubmitRequest": "Submit Request", "Season": "Season: {{seasonNumber}}", "SelectAllInSeason": "Select All in Season {{seasonNumber}}" From c684c6124b9cafa1cfbd40f8a68a73c8beb0bb42 Mon Sep 17 00:00:00 2001 From: Jamie Date: Fri, 9 Aug 2019 20:51:14 +0100 Subject: [PATCH 17/54] New translations en.json (Russian) --- src/Ombi/wwwroot/translations/ru.json | 52 +++++++++++++-------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/src/Ombi/wwwroot/translations/ru.json b/src/Ombi/wwwroot/translations/ru.json index aeb594ef0..0bb2d8c5f 100644 --- a/src/Ombi/wwwroot/translations/ru.json +++ b/src/Ombi/wwwroot/translations/ru.json @@ -95,35 +95,35 @@ "FirstSeason": "Первый сезон", "LatestSeason": "Последний сезон", "Select": "Выбрать...", - "SubmitRequest": "Submit Request", - "Season": "Season: {{seasonNumber}}", - "SelectAllInSeason": "Select All in Season {{seasonNumber}}" + "SubmitRequest": "Подать запрос", + "Season": "Сезон: {{seasonNumber}}", + "SelectAllInSeason": "Выбрать все в сезоне {{seasonNumber}}" } }, "Requests": { - "Title": "Requests", - "Paragraph": "Below you can see yours and all other requests, as well as their download and approval status.", - "MoviesTab": "Movies", - "TvTab": "TV Shows", - "MusicTab": "Music", - "RequestedBy": "Requested By:", - "Status": "Status:", - "RequestStatus": "Request status:", - "Denied": " Denied:", - "TheatricalRelease": "Theatrical Release: {{date}}", - "ReleaseDate": "Released: {{date}}", - "TheatricalReleaseSort": "Theatrical Release", - "DigitalRelease": "Digital Release: {{date}}", - "RequestDate": "Request Date:", - "QualityOverride": "Quality Override:", - "RootFolderOverride": "Root Folder Override:", - "ChangeRootFolder": "Root Folder", - "ChangeQualityProfile": "Quality Profile", - "MarkUnavailable": "Mark Unavailable", - "MarkAvailable": "Mark Available", - "Remove": "Remove", - "Deny": "Deny", - "Season": "Season:", + "Title": "Запросы", + "Paragraph": "Ниже вы можете увидеть ваши и все другие запросы, а также их статус загрузки и одобрения.", + "MoviesTab": "Фильмы", + "TvTab": "Сериалы", + "MusicTab": "Музыка", + "RequestedBy": "Автор запроса:", + "Status": "Статус:", + "RequestStatus": "Статус запроса:", + "Denied": " Отказано:", + "TheatricalRelease": "Релиз в кинотеатрах: {{date}}", + "ReleaseDate": "Дата выхода: {{date}}", + "TheatricalReleaseSort": "Релиз в кинотеатрах", + "DigitalRelease": "Дигитальный релиз: {{date}}", + "RequestDate": "Дата запроса:", + "QualityOverride": "Переопределение качества:", + "RootFolderOverride": "Переопределение корневой папки:", + "ChangeRootFolder": "Корневая папка", + "ChangeQualityProfile": "Профиль качества", + "MarkUnavailable": "Отметить недоступным", + "MarkAvailable": "Отметить доступно", + "Remove": "Удалить", + "Deny": "Отклонить", + "Season": "Сезон:", "GridTitle": "Title", "AirDate": "AirDate", "GridStatus": "Status", From c090d4437a8a92ee7dd41f318663cc3fb8aef082 Mon Sep 17 00:00:00 2001 From: Jamie Date: Fri, 9 Aug 2019 21:07:49 +0100 Subject: [PATCH 18/54] New translations en.json (Russian) --- src/Ombi/wwwroot/translations/ru.json | 28 +++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/Ombi/wwwroot/translations/ru.json b/src/Ombi/wwwroot/translations/ru.json index 0bb2d8c5f..260c1c435 100644 --- a/src/Ombi/wwwroot/translations/ru.json +++ b/src/Ombi/wwwroot/translations/ru.json @@ -124,21 +124,21 @@ "Remove": "Удалить", "Deny": "Отклонить", "Season": "Сезон:", - "GridTitle": "Title", - "AirDate": "AirDate", - "GridStatus": "Status", - "ReportIssue": "Report Issue", - "Filter": "Filter", - "Sort": "Sort", - "SeasonNumberHeading": "Season: {seasonNumber}", - "SortTitleAsc": "Title ▲", - "SortTitleDesc": "Title ▼", - "SortRequestDateAsc": "Request Date ▲", - "SortRequestDateDesc": "Request Date ▼", - "SortStatusAsc": "Status ▲", - "SortStatusDesc": "Status ▼", + "GridTitle": "Название", + "AirDate": "Дата", + "GridStatus": "Статус", + "ReportIssue": "Сообщите о проблеме", + "Filter": "Фильтр", + "Sort": "Сортировать", + "SeasonNumberHeading": "Сезон: {seasonNumber}", + "SortTitleAsc": "Название ▲", + "SortTitleDesc": "Название ▼", + "SortRequestDateAsc": "Дата запроса ▲", + "SortRequestDateDesc": "Дата запроса ▼", + "SortStatusAsc": "Статус ▲", + "SortStatusDesc": "Статус ▼", "Remaining": { - "Quota": "{{remaining}}/{{total}} requests remaining", + "Quota": "Осталось запросов: {{remaining}}/{{total}}", "NextDays": "Следующий запрос будет добавлен через {{time}} дней", "NextHours": "Следующий запрос будет добавлен через {{time}} часов", "NextMinutes": "Следующий запрос будет добавлен через {{time}} минут", From e2c92fb23016f18996ea26092e7f6c81eaafce71 Mon Sep 17 00:00:00 2001 From: tidusjar Date: Fri, 9 Aug 2019 23:01:42 +0100 Subject: [PATCH 19/54] Fixed an error when finishing the content sync --- src/Ombi.Schedule/Jobs/Plex/PlexContentSync.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Ombi.Schedule/Jobs/Plex/PlexContentSync.cs b/src/Ombi.Schedule/Jobs/Plex/PlexContentSync.cs index 7f5d095ef..44d9f02c7 100644 --- a/src/Ombi.Schedule/Jobs/Plex/PlexContentSync.cs +++ b/src/Ombi.Schedule/Jobs/Plex/PlexContentSync.cs @@ -119,7 +119,7 @@ namespace Ombi.Schedule.Jobs.Plex await OmbiQuartz.TriggerJob(nameof(IPlexAvailabilityChecker), "Plex"); } - Logger.LogInformation("Finished Plex Content Cacher, with processed content: {0}, episodes: {0}", processedContent.Content.Count(), processedContent.Episodes.Count()); + Logger.LogInformation("Finished Plex Content Cacher, with processed content: {0}, episodes: {0}", processedContent?.Content?.Count() ?? 0, processedContent?.Episodes?.Count() ?? 0); } private async Task StartTheCache(PlexSettings plexSettings, bool recentlyAddedSearch) From ad6e1fb4a121d6e1d2671e96c93d70baa11ed1cc Mon Sep 17 00:00:00 2001 From: tidusjar Date: Fri, 9 Aug 2019 23:16:00 +0100 Subject: [PATCH 20/54] Fixed an issue where shows that have no aired, episodes are not marked as monitored in Sonarr --- src/Ombi.Core/Senders/TvSender.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Ombi.Core/Senders/TvSender.cs b/src/Ombi.Core/Senders/TvSender.cs index 9a25ca9c0..3a3e34745 100644 --- a/src/Ombi.Core/Senders/TvSender.cs +++ b/src/Ombi.Core/Senders/TvSender.cs @@ -346,6 +346,11 @@ namespace Ombi.Core.Senders existingSeason.monitored = true; seriesChanges = true; } + // Now update the episodes that need updating + foreach (var epToUpdate in episodesToUpdate.Where(x => x.seasonNumber == season.SeasonNumber)) + { + await SonarrApi.UpdateEpisode(epToUpdate, s.ApiKey, s.FullUri); + } } else { From 7a24ecb04b44301a8300e7034c655bfb081ddd04 Mon Sep 17 00:00:00 2001 From: sorano Date: Thu, 15 Aug 2019 20:21:50 +0200 Subject: [PATCH 21/54] Update EmbyHelper.cs --- src/Ombi.Helpers/EmbyHelper.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Ombi.Helpers/EmbyHelper.cs b/src/Ombi.Helpers/EmbyHelper.cs index a9967f21f..7ab792ef7 100644 --- a/src/Ombi.Helpers/EmbyHelper.cs +++ b/src/Ombi.Helpers/EmbyHelper.cs @@ -11,11 +11,11 @@ namespace Ombi.Helpers { if (customerServerUrl.HasValue()) { - return $"{customerServerUrl}#!/itemdetails.html?id={mediaId}"; + return $"{customerServerUrl}#!/item/item.html?id={mediaId}"; } else { - return $"https://app.emby.media/#!/itemdetails.html?id={mediaId}"; + return $"https://app.emby.media/#!/item/item.html?id={mediaId}"; } } } From ad85f160565ed8fc761ace55fdee9a2aa0c8a6d1 Mon Sep 17 00:00:00 2001 From: sorano Date: Thu, 15 Aug 2019 20:23:48 +0200 Subject: [PATCH 22/54] Update emby.component.html --- src/Ombi/ClientApp/app/settings/emby/emby.component.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Ombi/ClientApp/app/settings/emby/emby.component.html b/src/Ombi/ClientApp/app/settings/emby/emby.component.html index 66cac8c8b..32759fc16 100644 --- a/src/Ombi/ClientApp/app/settings/emby/emby.component.html +++ b/src/Ombi/ClientApp/app/settings/emby/emby.component.html @@ -71,8 +71,8 @@
- Current URL: "{{server.serverHostname}}/#!/itemdetails.html?id=1" - Current URL: "https://app.emby.media/#!/itemdetails.html?id=1 + Current URL: "{{server.serverHostname}}/#!/item/item.html?id=1" + Current URL: "https://app.emby.media/#!/item/item.html?id=1
@@ -100,4 +100,4 @@
- \ No newline at end of file + From 56c7cf973d5b0df57b9ebd5bfd2be9dfbe1a43ac Mon Sep 17 00:00:00 2001 From: tidusjar Date: Tue, 20 Aug 2019 09:10:45 +0100 Subject: [PATCH 23/54] Try and clear up the issue #2998 --- src/Ombi.Schedule/Jobs/Ombi/RefreshMetadata.cs | 14 -------------- src/Ombi.Schedule/Jobs/Plex/PlexContentSync.cs | 6 ------ 2 files changed, 20 deletions(-) diff --git a/src/Ombi.Schedule/Jobs/Ombi/RefreshMetadata.cs b/src/Ombi.Schedule/Jobs/Ombi/RefreshMetadata.cs index e4f175855..424ef7713 100644 --- a/src/Ombi.Schedule/Jobs/Ombi/RefreshMetadata.cs +++ b/src/Ombi.Schedule/Jobs/Ombi/RefreshMetadata.cs @@ -72,7 +72,6 @@ namespace Ombi.Schedule.Jobs.Ombi { _log.LogInformation("Starting the Metadata refresh from RecentlyAddedSync"); var plexSettings = await _plexSettings.GetSettingsAsync(); - var embySettings = await _embySettings.GetSettingsAsync(); try { if (plexSettings.Enable) @@ -85,19 +84,6 @@ namespace Ombi.Schedule.Jobs.Ombi _log.LogError(e, "Exception when refreshing the Plex Metadata"); throw; } - finally - { - if (plexSettings.Enable) - { - await OmbiQuartz.TriggerJob(nameof(IPlexAvailabilityChecker), "Plex"); - } - - if (embySettings.Enable) - { - await OmbiQuartz.TriggerJob(nameof(IEmbyAvaliabilityChecker), "Emby"); - - } - } } private async Task StartPlexWithKnownContent(IEnumerable contentids) diff --git a/src/Ombi.Schedule/Jobs/Plex/PlexContentSync.cs b/src/Ombi.Schedule/Jobs/Plex/PlexContentSync.cs index 44d9f02c7..a6bea2ce2 100644 --- a/src/Ombi.Schedule/Jobs/Plex/PlexContentSync.cs +++ b/src/Ombi.Schedule/Jobs/Plex/PlexContentSync.cs @@ -113,12 +113,6 @@ namespace Ombi.Schedule.Jobs.Plex await OmbiQuartz.TriggerJob(nameof(IRefreshMetadata), "System"); } - if ((processedContent?.HasProcessedContent ?? false) && recentlyAddedSearch) - { - - await OmbiQuartz.TriggerJob(nameof(IPlexAvailabilityChecker), "Plex"); - } - Logger.LogInformation("Finished Plex Content Cacher, with processed content: {0}, episodes: {0}", processedContent?.Content?.Count() ?? 0, processedContent?.Episodes?.Count() ?? 0); } From c0de170f6813f9274b181ceef8f076b1b6e657fa Mon Sep 17 00:00:00 2001 From: Jamie Date: Tue, 20 Aug 2019 09:12:12 +0100 Subject: [PATCH 24/54] Update aspnetcore.yml --- .github/workflows/aspnetcore.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 .github/workflows/aspnetcore.yml diff --git a/.github/workflows/aspnetcore.yml b/.github/workflows/aspnetcore.yml new file mode 100644 index 000000000..54eefedd6 --- /dev/null +++ b/.github/workflows/aspnetcore.yml @@ -0,0 +1,17 @@ +name: ASP.NET Core CI + +on: [push] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v1 + - name: Setup .NET Core + uses: actions/setup-dotnet@v1 + with: + dotnet-version: 2.2.108 + - name: Build with dotnet + run: dotnet build --configuration Release From 01a44c9d258f33c537fa0ef3572f060ff415cab6 Mon Sep 17 00:00:00 2001 From: Jamie Date: Tue, 20 Aug 2019 09:16:12 +0100 Subject: [PATCH 25/54] Update aspnetcore.yml --- .github/workflows/aspnetcore.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/aspnetcore.yml b/.github/workflows/aspnetcore.yml index 54eefedd6..c4dc13a62 100644 --- a/.github/workflows/aspnetcore.yml +++ b/.github/workflows/aspnetcore.yml @@ -1,6 +1,6 @@ name: ASP.NET Core CI -on: [push] +on: [push, pull_request] jobs: build: @@ -14,4 +14,4 @@ jobs: with: dotnet-version: 2.2.108 - name: Build with dotnet - run: dotnet build --configuration Release + run: dotnet build src/Ombi.sln --configuration Release From 50978733f4bb2cd4a9ec47889fdaaf415a8bc192 Mon Sep 17 00:00:00 2001 From: Jamie Date: Tue, 20 Aug 2019 09:27:39 +0100 Subject: [PATCH 26/54] Update aspnetcore.yml --- .github/workflows/aspnetcore.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/aspnetcore.yml b/.github/workflows/aspnetcore.yml index c4dc13a62..58aed1187 100644 --- a/.github/workflows/aspnetcore.yml +++ b/.github/workflows/aspnetcore.yml @@ -15,3 +15,5 @@ jobs: dotnet-version: 2.2.108 - name: Build with dotnet run: dotnet build src/Ombi.sln --configuration Release + - name: Run Tests + run: dotnet test src/Ombi.sln --no-build From eab38ebada26b591bfec10a2a229e23eba9ce3d5 Mon Sep 17 00:00:00 2001 From: Jamie Date: Tue, 20 Aug 2019 09:37:20 +0100 Subject: [PATCH 27/54] Update and rename .github/workflows to .github/.github/workflows/test.workflow --- .github/.github/workflows/test.workflow | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .github/.github/workflows/test.workflow diff --git a/.github/.github/workflows/test.workflow b/.github/.github/workflows/test.workflow new file mode 100644 index 000000000..7c88813d1 --- /dev/null +++ b/.github/.github/workflows/test.workflow @@ -0,0 +1,9 @@ +workflow "New workflow" { + on = "push" + resolves = [".NET Core CLI"] +} + +action ".NET Core CLI" { + uses = "baruchiro/github-actions@0.0.1" + args = "build src/Ombi.sln" +} From 36c7f763709b19a2773e5c44509465288cc17c37 Mon Sep 17 00:00:00 2001 From: Jamie Date: Tue, 20 Aug 2019 09:38:27 +0100 Subject: [PATCH 28/54] Delete test.workflow --- .github/.github/workflows/test.workflow | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 .github/.github/workflows/test.workflow diff --git a/.github/.github/workflows/test.workflow b/.github/.github/workflows/test.workflow deleted file mode 100644 index 7c88813d1..000000000 --- a/.github/.github/workflows/test.workflow +++ /dev/null @@ -1,9 +0,0 @@ -workflow "New workflow" { - on = "push" - resolves = [".NET Core CLI"] -} - -action ".NET Core CLI" { - uses = "baruchiro/github-actions@0.0.1" - args = "build src/Ombi.sln" -} From 5e71b4c87618406cb8c64e8b2d1dcc32af6e644f Mon Sep 17 00:00:00 2001 From: Jamie Date: Tue, 20 Aug 2019 09:38:40 +0100 Subject: [PATCH 29/54] Create test.workflow --- .github/workflows/test.workflow | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .github/workflows/test.workflow diff --git a/.github/workflows/test.workflow b/.github/workflows/test.workflow new file mode 100644 index 000000000..7c88813d1 --- /dev/null +++ b/.github/workflows/test.workflow @@ -0,0 +1,9 @@ +workflow "New workflow" { + on = "push" + resolves = [".NET Core CLI"] +} + +action ".NET Core CLI" { + uses = "baruchiro/github-actions@0.0.1" + args = "build src/Ombi.sln" +} From faf989c1b47d2f807e83ff2c19208add5e9f4e34 Mon Sep 17 00:00:00 2001 From: Jamie Date: Tue, 20 Aug 2019 09:54:09 +0100 Subject: [PATCH 30/54] Update aspnetcore.yml --- .github/workflows/aspnetcore.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/aspnetcore.yml b/.github/workflows/aspnetcore.yml index 58aed1187..2ee6d6b78 100644 --- a/.github/workflows/aspnetcore.yml +++ b/.github/workflows/aspnetcore.yml @@ -16,4 +16,4 @@ jobs: - name: Build with dotnet run: dotnet build src/Ombi.sln --configuration Release - name: Run Tests - run: dotnet test src/Ombi.sln --no-build + run: dotnet test src/Ombi.sln From bc4e2b78f3397591909e2ab91b2e94b6f621d38b Mon Sep 17 00:00:00 2001 From: Jamie Date: Tue, 20 Aug 2019 10:17:25 +0100 Subject: [PATCH 31/54] Update aspnetcore.yml --- .github/workflows/aspnetcore.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/aspnetcore.yml b/.github/workflows/aspnetcore.yml index 2ee6d6b78..c4dc13a62 100644 --- a/.github/workflows/aspnetcore.yml +++ b/.github/workflows/aspnetcore.yml @@ -15,5 +15,3 @@ jobs: dotnet-version: 2.2.108 - name: Build with dotnet run: dotnet build src/Ombi.sln --configuration Release - - name: Run Tests - run: dotnet test src/Ombi.sln From 8727b1ecd430dec7c892c14c2bd2c114eb4ef0e1 Mon Sep 17 00:00:00 2001 From: Jamie Date: Tue, 27 Aug 2019 11:59:12 +0100 Subject: [PATCH 32/54] Update aspnetcore.yml --- .github/workflows/aspnetcore.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/aspnetcore.yml b/.github/workflows/aspnetcore.yml index c4dc13a62..6924c4a1b 100644 --- a/.github/workflows/aspnetcore.yml +++ b/.github/workflows/aspnetcore.yml @@ -13,5 +13,12 @@ jobs: uses: actions/setup-dotnet@v1 with: dotnet-version: 2.2.108 - - name: Build with dotnet + + - name: Build Backend run: dotnet build src/Ombi.sln --configuration Release + + - name: Install Yarn + uses: nuxt/actions-yarn@master + + - name: Build Frontend + run: yarn --cdw src/Ombi/ build From 819f4c1fe2f6b5e3a732928586de9129c6d13fc7 Mon Sep 17 00:00:00 2001 From: Jamie Date: Tue, 27 Aug 2019 12:00:15 +0100 Subject: [PATCH 33/54] Update aspnetcore.yml --- .github/workflows/aspnetcore.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/aspnetcore.yml b/.github/workflows/aspnetcore.yml index 6924c4a1b..0d762e2cd 100644 --- a/.github/workflows/aspnetcore.yml +++ b/.github/workflows/aspnetcore.yml @@ -17,8 +17,8 @@ jobs: - name: Build Backend run: dotnet build src/Ombi.sln --configuration Release - - name: Install Yarn - uses: nuxt/actions-yarn@master + - name: Install Yarn + uses: nuxt/actions-yarn@master - - name: Build Frontend - run: yarn --cdw src/Ombi/ build + - name: Build Frontend + run: yarn --cdw src/Ombi/ build From f772a60bc34932341ea061a07951c3d09423c58f Mon Sep 17 00:00:00 2001 From: Jamie Date: Tue, 27 Aug 2019 21:49:26 +0100 Subject: [PATCH 34/54] Fixed the issue when we are logging errors in the logs incorrectly --- src/Ombi.Schedule/Jobs/Radarr/RadarrSync.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Ombi.Schedule/Jobs/Radarr/RadarrSync.cs b/src/Ombi.Schedule/Jobs/Radarr/RadarrSync.cs index 6fa4c1bc8..56499aea6 100644 --- a/src/Ombi.Schedule/Jobs/Radarr/RadarrSync.cs +++ b/src/Ombi.Schedule/Jobs/Radarr/RadarrSync.cs @@ -56,7 +56,9 @@ namespace Ombi.Schedule.Jobs.Radarr var movieIds = new List(); foreach (var m in movies) { - if (m.tmdbId > 0 && m.monitored) + if(m.monitored) + { + if (m.tmdbId > 0) { movieIds.Add(new RadarrCache { @@ -69,6 +71,7 @@ namespace Ombi.Schedule.Jobs.Radarr Logger.LogError("TMDBId is not > 0 for movie {0}", m.title); } } + } using (var tran = await _ctx.Database.BeginTransactionAsync()) { From 9940156fea2e4220681df126f3272ed069b86940 Mon Sep 17 00:00:00 2001 From: Jamie Date: Wed, 28 Aug 2019 09:55:28 +0100 Subject: [PATCH 35/54] Update aspnetcore.yml --- .github/workflows/aspnetcore.yml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/.github/workflows/aspnetcore.yml b/.github/workflows/aspnetcore.yml index 0d762e2cd..e562216cc 100644 --- a/.github/workflows/aspnetcore.yml +++ b/.github/workflows/aspnetcore.yml @@ -15,10 +15,4 @@ jobs: dotnet-version: 2.2.108 - name: Build Backend - run: dotnet build src/Ombi.sln --configuration Release - - - name: Install Yarn - uses: nuxt/actions-yarn@master - - - name: Build Frontend - run: yarn --cdw src/Ombi/ build + run: ./build.sh --settings_skipverification=true From dd8ea482be44b89fad420da20b2f151e88919f32 Mon Sep 17 00:00:00 2001 From: Jamie Date: Wed, 28 Aug 2019 13:57:38 +0100 Subject: [PATCH 36/54] New translations en.json (French) --- src/Ombi/wwwroot/translations/fr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Ombi/wwwroot/translations/fr.json b/src/Ombi/wwwroot/translations/fr.json index 2f98728e5..48b4bdc6f 100644 --- a/src/Ombi/wwwroot/translations/fr.json +++ b/src/Ombi/wwwroot/translations/fr.json @@ -45,7 +45,7 @@ }, "NavigationBar": { "Search": "Rechercher", - "Requests": "Demandes", + "Requests": "En attente", "UserManagement": "Gestion des utilisateurs", "Issues": "Problèmes", "Vote": "Vote", From 2bcadadb1910730ca70cbb4f77062b4727315fd9 Mon Sep 17 00:00:00 2001 From: Jamie Date: Wed, 28 Aug 2019 14:39:32 +0100 Subject: [PATCH 37/54] New translations en.json (Russian) --- src/Ombi/wwwroot/translations/ru.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Ombi/wwwroot/translations/ru.json b/src/Ombi/wwwroot/translations/ru.json index 260c1c435..5e1008a4b 100644 --- a/src/Ombi/wwwroot/translations/ru.json +++ b/src/Ombi/wwwroot/translations/ru.json @@ -86,7 +86,7 @@ }, "TvShows": { "Popular": "Популярное", - "Trending": "В трэнде", + "Trending": "Сейчас смотрят", "MostWatched": "Самые просматриваемые", "MostAnticipated": "Самые ожидаемые", "Results": "Результаты", @@ -120,14 +120,14 @@ "ChangeRootFolder": "Корневая папка", "ChangeQualityProfile": "Профиль качества", "MarkUnavailable": "Отметить недоступным", - "MarkAvailable": "Отметить доступно", + "MarkAvailable": "Отметить доступным", "Remove": "Удалить", "Deny": "Отклонить", "Season": "Сезон:", "GridTitle": "Название", "AirDate": "Дата", "GridStatus": "Статус", - "ReportIssue": "Сообщите о проблеме", + "ReportIssue": "Сообщить о проблеме", "Filter": "Фильтр", "Sort": "Сортировать", "SeasonNumberHeading": "Сезон: {seasonNumber}", From cac225f512cb03087489da77bd9266f63d7a6d2d Mon Sep 17 00:00:00 2001 From: Jamie Date: Wed, 28 Aug 2019 14:54:04 +0100 Subject: [PATCH 38/54] New translations en.json (Russian) --- src/Ombi/wwwroot/translations/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Ombi/wwwroot/translations/ru.json b/src/Ombi/wwwroot/translations/ru.json index 5e1008a4b..0115d1f6c 100644 --- a/src/Ombi/wwwroot/translations/ru.json +++ b/src/Ombi/wwwroot/translations/ru.json @@ -19,7 +19,7 @@ "PendingApproval": "В ожидании одобрения", "RequestDenied": "Запрос отклонен", "NotRequested": "Не запрошено", - "Requested": "Запрос отправлен", + "Requested": "Запрошено", "Request": "Запросить", "Denied": "Отказано", "Approve": "Одобрить", From 490f842f387c18810130882db00bb93f32c357b3 Mon Sep 17 00:00:00 2001 From: Jamie Date: Wed, 28 Aug 2019 15:02:46 +0100 Subject: [PATCH 39/54] New translations en.json (Russian) --- src/Ombi/wwwroot/translations/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Ombi/wwwroot/translations/ru.json b/src/Ombi/wwwroot/translations/ru.json index 0115d1f6c..092689584 100644 --- a/src/Ombi/wwwroot/translations/ru.json +++ b/src/Ombi/wwwroot/translations/ru.json @@ -62,7 +62,7 @@ }, "Search": { "Title": "Поиск", - "Paragraph": "Хотите посмотреть что-то, чего нет в доступе? Нет проблем, просто найдите это в поиске и запросите!", + "Paragraph": "Хотите посмотреть что-то, чего нет в доступе? Нет проблем, просто вбейте название и запросите!", "MoviesTab": "Фильмы", "TvTab": "Сериалы", "MusicTab": "Музыка", From a2f9d9f0bb164f4dfaff225be561fd21d0e0dcf5 Mon Sep 17 00:00:00 2001 From: Jamie Date: Mon, 2 Sep 2019 10:52:18 +0100 Subject: [PATCH 40/54] New translations en.json (French) --- src/Ombi/wwwroot/translations/fr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Ombi/wwwroot/translations/fr.json b/src/Ombi/wwwroot/translations/fr.json index 48b4bdc6f..a24ba4e1f 100644 --- a/src/Ombi/wwwroot/translations/fr.json +++ b/src/Ombi/wwwroot/translations/fr.json @@ -64,7 +64,7 @@ "Title": "Rechercher", "Paragraph": "Vous voulez regarder quelque chose qui n'est pas disponible actuellement ? Pas de problème, recherchez-le ci-dessous et demandez-le !", "MoviesTab": "Films", - "TvTab": "TV", + "TvTab": "Séries", "MusicTab": "Musique", "Suggestions": "Suggestions", "NoResults": "Désolé, nous n'avons trouvé aucun résultat !", From 999c7cf8540cc1d03843d0eed73ebfa400696282 Mon Sep 17 00:00:00 2001 From: Jamie Date: Mon, 2 Sep 2019 12:51:00 +0100 Subject: [PATCH 41/54] New translations en.json (French) --- src/Ombi/wwwroot/translations/fr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Ombi/wwwroot/translations/fr.json b/src/Ombi/wwwroot/translations/fr.json index a24ba4e1f..e2530f95a 100644 --- a/src/Ombi/wwwroot/translations/fr.json +++ b/src/Ombi/wwwroot/translations/fr.json @@ -104,7 +104,7 @@ "Title": "Demandes", "Paragraph": "Vous pouvez voir ci-dessous vos demandes et celles des autres, ainsi que leur statut de téléchargement et d'approbation.", "MoviesTab": "Films", - "TvTab": "Émissions", + "TvTab": "Séries", "MusicTab": "Musique", "RequestedBy": "Demandé par :", "Status": "Statut :", From 16ff5083c32cdd35d22565a29e9443e835b9ab7c Mon Sep 17 00:00:00 2001 From: Jamie Rees Date: Tue, 3 Sep 2019 12:17:50 +0100 Subject: [PATCH 42/54] Fixed #3143 --- .../ClientApp/app/login/login.component.ts | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/Ombi/ClientApp/app/login/login.component.ts b/src/Ombi/ClientApp/app/login/login.component.ts index 34edcd687..67105f225 100644 --- a/src/Ombi/ClientApp/app/login/login.component.ts +++ b/src/Ombi/ClientApp/app/login/login.component.ts @@ -22,6 +22,14 @@ import { fadeInOutAnimation } from "../animations/fadeinout"; }) export class LoginComponent implements OnDestroy, OnInit { + public get appName(): string { + if (this.customizationSettings.applicationName) { + return this.customizationSettings.applicationName; + } else { + return "Ombi"; + } + } + public form: FormGroup; public customizationSettings: ICustomizationSettings; public authenticationSettings: IAuthenticationSettings; @@ -32,20 +40,14 @@ export class LoginComponent implements OnDestroy, OnInit { public loginWithOmbi: boolean; public pinTimer: any; - public get appName(): string { - if (this.customizationSettings.applicationName) { - return this.customizationSettings.applicationName; - } else { - return "Ombi"; - } - } - private timer: any; private clientId: string; private errorBody: string; private errorValidation: string; + private oAuthWindow: Window|null; + constructor(private authService: AuthService, private router: Router, private notify: NotificationService, private status: StatusService, private fb: FormBuilder, private settingsService: SettingsService, private images: ImageService, private sanitizer: DomSanitizer, private route: ActivatedRoute, private location: PlatformLocation, private translate: TranslateService, private plexTv: PlexTvService) { @@ -127,7 +129,7 @@ export class LoginComponent implements OnDestroy, OnInit { } public oauth() { - const oAuthWindow = window.open(window.location.toString(), "_blank", `toolbar=0, + this.oAuthWindow = window.open(window.location.toString(), "_blank", `toolbar=0, location=0, status=0, menubar=0, @@ -138,7 +140,7 @@ export class LoginComponent implements OnDestroy, OnInit { this.plexTv.GetPin(this.clientId, this.appName).subscribe((pin: any) => { this.authService.login({ usePlexOAuth: true, password: "", rememberMe: true, username: "", plexTvPin: pin }).subscribe(x => { - oAuthWindow!.location.replace(x.url); + this.oAuthWindow!.location.replace(x.url); this.pinTimer = setInterval(() => { this.notify.info("Authenticating", "Loading... Please Wait"); @@ -155,6 +157,7 @@ export class LoginComponent implements OnDestroy, OnInit { if (this.authService.loggedIn()) { this.ngOnDestroy(); + this.oAuthWindow.close(); this.router.navigate(["search"]); return; } From f04a203faca07899e022dae0c56b6353c26aa9ae Mon Sep 17 00:00:00 2001 From: tidusjar Date: Wed, 25 Sep 2019 13:08:22 +0100 Subject: [PATCH 43/54] Removed the lanuage profile from the Lidarr integration --- src/Ombi.Api.Lidarr/ILidarrApi.cs | 1 - src/Ombi.Api.Lidarr/LidarrApi.cs | 7 ------- src/Ombi.Api.Lidarr/Models/ArtistAdd.cs | 1 - .../Models/LanguageProfiles.cs | 8 -------- src/Ombi.Core/Senders/MusicSender.cs | 1 - .../Models/External/LidarrSettings.cs | 1 - .../services/applications/lidarr.service.ts | 3 --- .../app/settings/lidarr/lidarr.component.html | 16 --------------- .../app/settings/lidarr/lidarr.component.ts | 20 ------------------- .../Controllers/External/LidarrController.cs | 10 ---------- 10 files changed, 68 deletions(-) delete mode 100644 src/Ombi.Api.Lidarr/Models/LanguageProfiles.cs diff --git a/src/Ombi.Api.Lidarr/ILidarrApi.cs b/src/Ombi.Api.Lidarr/ILidarrApi.cs index 826cfdec3..b542ff0a0 100644 --- a/src/Ombi.Api.Lidarr/ILidarrApi.cs +++ b/src/Ombi.Api.Lidarr/ILidarrApi.cs @@ -20,7 +20,6 @@ namespace Ombi.Api.Lidarr Task MontiorAlbum(int albumId, string apiKey, string baseUrl); Task> GetAllAlbumsByArtistId(int artistId, string apiKey, string baseUrl); Task> GetMetadataProfile(string apiKey, string baseUrl); - Task> GetLanguageProfile(string apiKey, string baseUrl); Task Status(string apiKey, string baseUrl); Task AlbumSearch(int[] albumIds, string apiKey, string baseUrl); Task AlbumInformation(string albumId, string apiKey, string baseUrl); diff --git a/src/Ombi.Api.Lidarr/LidarrApi.cs b/src/Ombi.Api.Lidarr/LidarrApi.cs index 0f03aa1b0..dd589c64d 100644 --- a/src/Ombi.Api.Lidarr/LidarrApi.cs +++ b/src/Ombi.Api.Lidarr/LidarrApi.cs @@ -158,13 +158,6 @@ namespace Ombi.Api.Lidarr return Api.Request>(request); } - public Task> GetLanguageProfile(string apiKey, string baseUrl) - { - var request = new Request($"{ApiVersion}/languageprofile", baseUrl, HttpMethod.Get); - AddHeaders(request, apiKey); - return Api.Request>(request); - } - public Task> GetMetadataProfile(string apiKey, string baseUrl) { var request = new Request($"{ApiVersion}/metadataprofile", baseUrl, HttpMethod.Get); diff --git a/src/Ombi.Api.Lidarr/Models/ArtistAdd.cs b/src/Ombi.Api.Lidarr/Models/ArtistAdd.cs index 65aec3ac8..e292e8905 100644 --- a/src/Ombi.Api.Lidarr/Models/ArtistAdd.cs +++ b/src/Ombi.Api.Lidarr/Models/ArtistAdd.cs @@ -17,7 +17,6 @@ namespace Ombi.Api.Lidarr.Models public Image[] images { get; set; } public string remotePoster { get; set; } public int qualityProfileId { get; set; } - public int languageProfileId { get; set; } public int metadataProfileId { get; set; } public bool albumFolder { get; set; } public bool monitored { get; set; } diff --git a/src/Ombi.Api.Lidarr/Models/LanguageProfiles.cs b/src/Ombi.Api.Lidarr/Models/LanguageProfiles.cs deleted file mode 100644 index f503fe33f..000000000 --- a/src/Ombi.Api.Lidarr/Models/LanguageProfiles.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Ombi.Api.Lidarr.Models -{ - public class LanguageProfiles - { - public string name { get; set; } - public int id { get; set; } - } -} \ No newline at end of file diff --git a/src/Ombi.Core/Senders/MusicSender.cs b/src/Ombi.Core/Senders/MusicSender.cs index 0e9db9192..04544c6be 100644 --- a/src/Ombi.Core/Senders/MusicSender.cs +++ b/src/Ombi.Core/Senders/MusicSender.cs @@ -110,7 +110,6 @@ namespace Ombi.Core.Senders artistName = model.ArtistName, cleanName = model.ArtistName.ToLowerInvariant().RemoveSpaces(), images = new Image[] { }, - languageProfileId = settings.LanguageProfileId, links = new Link[] {}, metadataProfileId = settings.MetadataProfileId, qualityProfileId = qualityToUse, diff --git a/src/Ombi.Settings/Settings/Models/External/LidarrSettings.cs b/src/Ombi.Settings/Settings/Models/External/LidarrSettings.cs index 3a37b7d43..5f2c5722d 100644 --- a/src/Ombi.Settings/Settings/Models/External/LidarrSettings.cs +++ b/src/Ombi.Settings/Settings/Models/External/LidarrSettings.cs @@ -9,7 +9,6 @@ namespace Ombi.Settings.Settings.Models.External public string DefaultQualityProfile { get; set; } public string DefaultRootPath { get; set; } public bool AlbumFolder { get; set; } - public int LanguageProfileId { get; set; } public int MetadataProfileId { get; set; } public bool AddOnly { get; set; } } diff --git a/src/Ombi/ClientApp/app/services/applications/lidarr.service.ts b/src/Ombi/ClientApp/app/services/applications/lidarr.service.ts index 9ef36357a..b0cdf5a86 100644 --- a/src/Ombi/ClientApp/app/services/applications/lidarr.service.ts +++ b/src/Ombi/ClientApp/app/services/applications/lidarr.service.ts @@ -29,8 +29,5 @@ export class LidarrService extends ServiceHelpers { public getMetadataProfiles(settings: ILidarrSettings): Observable { return this.http.post(`${this.url}/Metadata/`, JSON.stringify(settings), {headers: this.headers}); - } - public getLanguages(settings: ILidarrSettings): Observable { - return this.http.post(`${this.url}/Langauges/`,JSON.stringify(settings), {headers: this.headers}); } } diff --git a/src/Ombi/ClientApp/app/settings/lidarr/lidarr.component.html b/src/Ombi/ClientApp/app/settings/lidarr/lidarr.component.html index 5e898e719..2a1643dc6 100644 --- a/src/Ombi/ClientApp/app/settings/lidarr/lidarr.component.html +++ b/src/Ombi/ClientApp/app/settings/lidarr/lidarr.component.html @@ -84,22 +84,6 @@ - -
- -
- - - -
-
- -
@@ -88,7 +93,7 @@
- +
diff --git a/src/Ombi/ClientApp/app/settings/emby/emby.component.ts b/src/Ombi/ClientApp/app/settings/emby/emby.component.ts index c2752a973..bc1d2bbb2 100644 --- a/src/Ombi/ClientApp/app/settings/emby/emby.component.ts +++ b/src/Ombi/ClientApp/app/settings/emby/emby.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from "@angular/core"; import { IEmbyServer, IEmbySettings } from "../../interfaces"; -import { JobService, NotificationService, SettingsService, TesterService } from "../../services"; +import { EmbyService, JobService, NotificationService, SettingsService, TesterService } from "../../services"; @Component({ templateUrl: "./emby.component.html", @@ -9,16 +9,25 @@ import { JobService, NotificationService, SettingsService, TesterService } from export class EmbyComponent implements OnInit { public settings: IEmbySettings; + public hasDiscovered: boolean; constructor(private settingsService: SettingsService, private notificationService: NotificationService, private testerService: TesterService, - private jobService: JobService) { } + private jobService: JobService, + private embyService: EmbyService) { } public ngOnInit() { this.settingsService.getEmby().subscribe(x => this.settings = x); } + public async discoverServerInfo(server: IEmbyServer) { + const result = await this.embyService.getPublicInfo(server).toPromise(); + this.settings.isJellyfin = result.isJellyfin; + server.name = result.serverName; + this.hasDiscovered = true; + } + public addTab() { if (this.settings.servers == null) { this.settings.servers = []; diff --git a/src/Ombi/ClientApp/app/settings/settingsmenu.component.html b/src/Ombi/ClientApp/app/settings/settingsmenu.component.html index 81f901ecc..d58c96e2e 100644 --- a/src/Ombi/ClientApp/app/settings/settingsmenu.component.html +++ b/src/Ombi/ClientApp/app/settings/settingsmenu.component.html @@ -22,7 +22,7 @@ diff --git a/src/Ombi/ClientApp/app/wizard/emby/emby.component.html b/src/Ombi/ClientApp/app/wizard/emby/emby.component.html index c43aa7c6f..18e820e2c 100644 --- a/src/Ombi/ClientApp/app/wizard/emby/emby.component.html +++ b/src/Ombi/ClientApp/app/wizard/emby/emby.component.html @@ -3,7 +3,7 @@
-

Emby Authentication

+

Emby/Jellyfin Authentication

@@ -26,6 +26,11 @@
+
+
+ +
+
diff --git a/src/Ombi/ClientApp/app/wizard/emby/emby.component.ts b/src/Ombi/ClientApp/app/wizard/emby/emby.component.ts index f22fa915b..5a8c46b7b 100644 --- a/src/Ombi/ClientApp/app/wizard/emby/emby.component.ts +++ b/src/Ombi/ClientApp/app/wizard/emby/emby.component.ts @@ -28,6 +28,7 @@ export class EmbyComponent implements OnInit { } this.embySettings = { servers: [], + isJellyfin: false, id: 0, enable: true, }; diff --git a/src/Ombi/Controllers/External/EmbyController.cs b/src/Ombi/Controllers/External/EmbyController.cs index df865be61..98c15fc56 100644 --- a/src/Ombi/Controllers/External/EmbyController.cs +++ b/src/Ombi/Controllers/External/EmbyController.cs @@ -4,6 +4,7 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Ombi.Api.Emby; +using Ombi.Api.Emby.Models; using Ombi.Api.Plex; using Ombi.Attributes; using Ombi.Core.Settings; @@ -60,6 +61,13 @@ namespace Ombi.Controllers.External return null; } + [HttpPost("info")] + public async Task GetServerInfo([FromBody] EmbyServers server) + { + var result = await EmbyApi.GetPublicInformation(server.FullUri); + return result; + } + /// /// Gets the emby users. /// From 7a72496c780cb2c666ef7808bf22ff099a8cdceb Mon Sep 17 00:00:00 2001 From: tidusjar Date: Sat, 12 Oct 2019 21:32:58 +0100 Subject: [PATCH 53/54] gitchangelog --- CHANGELOG.md | 147 ++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 134 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d4fea0965..ae8417bae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,35 +1,132 @@ # Changelog -## v3.0.4680 (2019-07-17) +## (unreleased) +### **New Features** + +- Added better support for Jellyfin, we will now auto detect if it's a jellyfin server after pressing the discover button. [tidusjar] + +- Update aspnetcore.yml. [Jamie] + +- Update aspnetcore.yml. [Jamie] + +- Update aspnetcore.yml. [Jamie] + +- Update aspnetcore.yml. [Jamie] + +- Update aspnetcore.yml. [Jamie] + +- Update and rename .github/workflows to .github/.github/workflows/test.workflow. [Jamie] + +- Update aspnetcore.yml. [Jamie] + +- Update aspnetcore.yml. [Jamie] + +- Update aspnetcore.yml. [Jamie] + +- Added a bit more logging into the recently added scan. [tidusjar] + +- Update emby.component.html. [sorano] + +- Update EmbyHelper.cs. [sorano] + +- Update CHANGELOG.md. [Jamie] ### **Fixes** -- Fixed the database lock issues - [TidusJar] -- Fixed the issue with [Plex OAuth](https://forums.plex.tv/t/plex-oauth-not-working-with-tautulli-ombi-etc/433945) - [TidusJar] +- Fixed #3078. [tidusjar] + +- Fixes issue #3195 The new string extension method ToHttpsUrl ensures that URLs starting with "https" are no longer turned into "httpss" The commit also replaces all occurances of the error prone .Replace("http", "https") in the whole solution. [msdeibel] + +- Create test.workflow. [Jamie] + +- Delete test.workflow. [Jamie] + +- New translations en.json (Norwegian) [Jamie] + +- New translations en.json (Norwegian) [Jamie] + +- Fix for #3183. [tidusjar] + +- Fixed an issue where running the recently added sync via the UI was running the full sync. [tidusjar] + +- Fixed #3143. [Jamie Rees] + +- New translations en.json (French) [Jamie] + +- New translations en.json (French) [Jamie] + +- New translations en.json (Russian) [Jamie] + +- New translations en.json (Russian) [Jamie] + +- New translations en.json (Russian) [Jamie] + +- New translations en.json (French) [Jamie] + +- New translations en.json (Russian) [Jamie] + +- New translations en.json (Russian) [Jamie] + +- New translations en.json (Russian) [Jamie] + +- New translations en.json (Russian) [Jamie] + +- New translations en.json (Russian) [Jamie] + +- New translations en.json (Polish) [Jamie] + +- Fixed the issue when we are logging errors in the logs incorrectly. [Jamie] + +- Removed the lanuage profile from the Lidarr integration. [tidusjar] + +- Try and clear up the issue #2998. [tidusjar] + +- Fixed an issue where shows that have no aired, episodes are not marked as monitored in Sonarr. [tidusjar] + +- Fixed an error when finishing the content sync. [tidusjar] + +- Fixed issue where using the API to request a movie/tv show would throw an exception when only using the API Key #3091. [tidusjar] + +- Put "Ombi" back as the product name for Plex oAuth. [tidusjar] + + +## v3.0.4680 (2019-07-17) + +### **New Features** + +- Update CHANGELOG.md. [Jamie] + +### **Fixes** + +- Fix Plex's (intentional) mistake #3073. [Jamie Rees] + +- #2994 Fixed the startup issue. [tidusjar] + +- #2994 - enable multithreading in the sql config. [Jamie Rees] + ## v3.0.4659 (2019-07-02) ### **New Features** +- Update appsettings.json. [Jamie] + +- Update CHANGELOG.md. [Jamie] + + +## v3.0.4654 (2019-07-02) + +### **New Features** + - Added further logging into the API's (debug logging) [tidusjar] - Added transactions around all of the CUD operations. [Jamie Rees] -- Update stale.yml. [Jamie] - -- Update README.md. [Dyson Parkes] - -- Added stalebot. [tidusjar] - - Added some validation around the new crons. [Jamie Rees] - Added some defensive coding around when we create an artist for #2915. [tidusjar] -- Update README.md. [Jamie] - -- Update README.md. [Jamie] - - Update JobSetup.cs. [Jamie] - Update JobSetup.cs. [Jamie] @@ -40,10 +137,28 @@ - Update dependancies. [TidusJar] +- Update stale.yml. [Jamie] + +- Update README.md. [Dyson Parkes] + +- Update README.md. [Jamie] + +- Update README.md. [Jamie] + - Update CHANGELOG.md. [Jamie] +- Added stalebot. [tidusjar] + ### **Fixes** +- Add back in the login time. [tidusjar] + +- New translations en.json (Spanish) [Jamie] + +- New translations en.json (Spanish) [Jamie] + +- New translations en.json (Spanish) [Jamie] + - New translations en.json (Spanish) [Jamie] - New translations en.json (Swedish) [Jamie] @@ -322,6 +437,12 @@ - Converted the Plex Jobs to use Quartz. [Jamie] +- Remove the need for the schedules.db #2994. [tidusjar] + +- Create FUNDING.yml. [Jamie] + +- Logging and slight change to the string matching now not dependant on Thread Culture #2866. [tidusjar] + ## v3.0.4256 (2019-02-19) From 7aaa6d738afb95cafef50aa89ddfd79cb98fe3e2 Mon Sep 17 00:00:00 2001 From: Tim Date: Sat, 12 Oct 2019 16:39:14 -0600 Subject: [PATCH 54/54] Updated SlackNotification.cs Corrected Notification Type on Request Declined --- src/Ombi.Notifications/Agents/SlackNotification.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Ombi.Notifications/Agents/SlackNotification.cs b/src/Ombi.Notifications/Agents/SlackNotification.cs index 58b2da651..5b82c1434 100644 --- a/src/Ombi.Notifications/Agents/SlackNotification.cs +++ b/src/Ombi.Notifications/Agents/SlackNotification.cs @@ -79,7 +79,7 @@ namespace Ombi.Notifications.Agents protected override async Task RequestDeclined(NotificationOptions model, SlackNotificationSettings settings) { - await Run(model, settings, NotificationType.RequestAvailable); + await Run(model, settings, NotificationType.RequestDeclined); } protected override async Task RequestApproved(NotificationOptions model, SlackNotificationSettings settings)