diff --git a/frontend/src/Store/Selectors/createHealthCheckSelector.js b/frontend/src/Store/Selectors/createHealthCheckSelector.js
index b9d03f9a4..ed41ef2ec 100644
--- a/frontend/src/Store/Selectors/createHealthCheckSelector.js
+++ b/frontend/src/Store/Selectors/createHealthCheckSelector.js
@@ -1,4 +1,5 @@
import { createSelector } from 'reselect';
+import translate from 'Utilities/String/translate';
function createHealthCheckSelector() {
return createSelector(
@@ -11,8 +12,8 @@ function createHealthCheckSelector() {
items.push({
source: 'UI',
type: 'warning',
- message: 'Could not connect to SignalR, UI won\'t update',
- wikiUrl: 'https://github.com/Prowlarr/Prowlarr/wiki/Health-Checks#could-not-connect-to-signalr'
+ message: translate('CouldNotConnectSignalR'),
+ wikiUrl: 'https://wiki.servarr.com/Prowlarr_System#Could_not_connect_to_signalR'
});
}
diff --git a/frontend/src/System/Status/MoreInfo/MoreInfo.js b/frontend/src/System/Status/MoreInfo/MoreInfo.js
index 1546a89bd..99f70da5b 100644
--- a/frontend/src/System/Status/MoreInfo/MoreInfo.js
+++ b/frontend/src/System/Status/MoreInfo/MoreInfo.js
@@ -22,12 +22,12 @@ class MoreInfo extends Component {
Discord
- discord.gg/r5wJPt9
+ prowlarr.com/discord
Wiki
- github.com/Prowlarr/Prowlarr/wiki
+ wiki.servarr.com/Prowlarr
Donations
diff --git a/frontend/src/login.html b/frontend/src/login.html
index 1c1ed00d6..6fff481f9 100644
--- a/frontend/src/login.html
+++ b/frontend/src/login.html
@@ -251,7 +251,7 @@
Forgot your password?
diff --git a/src/NzbDrone.Core.Test/HealthCheck/Checks/MonoDebugFixture.cs b/src/NzbDrone.Core.Test/HealthCheck/Checks/MonoDebugFixture.cs
deleted file mode 100644
index 765dc95b8..000000000
--- a/src/NzbDrone.Core.Test/HealthCheck/Checks/MonoDebugFixture.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-using NUnit.Framework;
-using NzbDrone.Common.EnvironmentInfo;
-using NzbDrone.Core.HealthCheck.Checks;
-using NzbDrone.Core.Test.Framework;
-using NzbDrone.Test.Common;
-using static NzbDrone.Core.HealthCheck.Checks.MonoDebugCheck;
-
-namespace NzbDrone.Core.Test.HealthCheck.Checks
-{
- [TestFixture]
- public class MonoDebugFixture : CoreTest
- {
- private void GivenHasStackFrame(bool hasStackFrame)
- {
- Mocker.GetMock()
- .Setup(f => f.HasStackFrameInfo())
- .Returns(hasStackFrame);
- }
-
- [Test]
- public void should_return_ok_if_not_mono()
- {
- if (PlatformInfo.IsMono)
- {
- throw new IgnoreException("non mono specific test");
- }
-
- Subject.Check().ShouldBeOk();
- }
-
- [Test]
- public void should_return_ok_if_not_debug()
- {
- MonoOnly();
-
- GivenHasStackFrame(false);
-
- Subject.Check().ShouldBeOk();
- }
-
- [Test]
- public void should_log_warning_if_not_debug()
- {
- MonoOnly();
-
- GivenHasStackFrame(false);
-
- Subject.Check();
-
- ExceptionVerification.ExpectedWarns(1);
- }
-
- [Test]
- public void should_return_ok_if_debug()
- {
- MonoOnly();
-
- GivenHasStackFrame(true);
-
- Subject.Check().ShouldBeOk();
- }
- }
-}
diff --git a/src/NzbDrone.Core.Test/HealthCheck/Checks/MonoNotNetCoreCheckFixture.cs b/src/NzbDrone.Core.Test/HealthCheck/Checks/MonoNotNetCoreCheckFixture.cs
deleted file mode 100644
index 991040b35..000000000
--- a/src/NzbDrone.Core.Test/HealthCheck/Checks/MonoNotNetCoreCheckFixture.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-using System.Collections.Generic;
-using NUnit.Framework;
-using NzbDrone.Common.Processes;
-using NzbDrone.Core.HealthCheck.Checks;
-using NzbDrone.Core.Test.Framework;
-
-namespace NzbDrone.Core.Test.HealthCheck.Checks
-{
- [TestFixture]
- public class MonoNotNetCoreCheckFixture : CoreTest
- {
- [Test]
- [Platform(Exclude = "Mono")]
- public void should_return_ok_if_net_core()
- {
- Subject.Check().ShouldBeOk();
- }
-
- [Test]
- [Platform("Mono")]
- public void should_log_warning_if_mono()
- {
- Subject.Check().ShouldBeWarning();
- }
-
- [Test]
- [Platform("Mono")]
- public void should_return_ok_if_bsd()
- {
- Mocker.GetMock()
- .Setup(x => x.StartAndCapture("uname", null, null))
- .Returns(new ProcessOutput
- {
- Lines = new List
- {
- new ProcessOutputLine(ProcessOutputLevel.Standard, "FreeBSD")
- }
- });
- Subject.Check().ShouldBeOk();
- }
- }
-}
diff --git a/src/NzbDrone.Core.Test/HealthCheck/Checks/MonoVersionCheckFixture.cs b/src/NzbDrone.Core.Test/HealthCheck/Checks/MonoVersionCheckFixture.cs
deleted file mode 100644
index 74d0bace8..000000000
--- a/src/NzbDrone.Core.Test/HealthCheck/Checks/MonoVersionCheckFixture.cs
+++ /dev/null
@@ -1,81 +0,0 @@
-using System;
-using Moq;
-using NUnit.Framework;
-using NzbDrone.Common.EnvironmentInfo;
-using NzbDrone.Core.HealthCheck.Checks;
-using NzbDrone.Core.Localization;
-using NzbDrone.Core.Test.Framework;
-
-namespace NzbDrone.Core.Test.HealthCheck.Checks
-{
- [TestFixture]
- public class MonoVersionCheckFixture : CoreTest
- {
- [SetUp]
- public void Setup()
- {
- Mocker.GetMock()
- .Setup(s => s.GetLocalizedString(It.IsAny()))
- .Returns("Some Warning Message");
- }
-
- private void GivenOutput(string version)
- {
- MonoOnly();
-
- Mocker.GetMock()
- .SetupGet(s => s.Version)
- .Returns(new Version(version));
- }
-
- [TestCase("5.18")]
- [TestCase("5.20")]
- [TestCase("6.4")]
- public void should_return_ok(string version)
- {
- GivenOutput(version);
-
- Subject.Check().ShouldBeOk();
- }
-
- public void should_return_notice(string version)
- {
- GivenOutput(version);
-
- Subject.Check().ShouldBeNotice();
- }
-
- public void should_return_warning(string version)
- {
- GivenOutput(version);
-
- Subject.Check().ShouldBeWarning();
- }
-
- [TestCase("2.10.2")]
- [TestCase("2.10.8.1")]
- [TestCase("3.0.0.1")]
- [TestCase("3.2.0.1")]
- [TestCase("3.2.1")]
- [TestCase("3.2.7")]
- [TestCase("3.6.1")]
- [TestCase("3.8")]
- [TestCase("3.10")]
- [TestCase("4.0.0.0")]
- [TestCase("4.2")]
- [TestCase("4.4.0")]
- [TestCase("4.4.1")]
- [TestCase("5.4")]
- [TestCase("5.8")]
- [TestCase("5.10")]
- [TestCase("5.12")]
- [TestCase("5.14")]
- [TestCase("5.16")]
- public void should_return_error(string version)
- {
- GivenOutput(version);
-
- Subject.Check().ShouldBeError();
- }
- }
-}
diff --git a/src/NzbDrone.Core.Test/HealthCheck/HealthCheckFixture.cs b/src/NzbDrone.Core.Test/HealthCheck/HealthCheckFixture.cs
index e3a326164..5ebe4687c 100644
--- a/src/NzbDrone.Core.Test/HealthCheck/HealthCheckFixture.cs
+++ b/src/NzbDrone.Core.Test/HealthCheck/HealthCheckFixture.cs
@@ -8,11 +8,11 @@ namespace NzbDrone.Core.Test.HealthCheck
[TestFixture]
public class HealthCheckFixture : CoreTest
{
- private const string WikiRoot = "https://github.com/Prowlarr/Prowlarr/wiki/";
+ private const string WikiRoot = "https://wiki.servarr.com/";
- [TestCase("I blew up because of some weird user mistake", null, WikiRoot + "Health-checks#i-blew-up-because-of-some-weird-user-mistake")]
- [TestCase("I blew up because of some weird user mistake", "#my-health-check", WikiRoot + "Health-checks#my-health-check")]
- [TestCase("I blew up because of some weird user mistake", "Custom-Page#my-health-check", WikiRoot + "Custom-Page#my-health-check")]
+ [TestCase("I blew up because of some weird user mistake", null, WikiRoot + "Prowlarr_System#i_blew_up_because_of_some_weird_user_mistake")]
+ [TestCase("I blew up because of some weird user mistake", "#my_health_check", WikiRoot + "Prowlarr_System#my_health_check")]
+ [TestCase("I blew up because of some weird user mistake", "Custom-Page#my_health_check", WikiRoot + "Custom-Page#my_health_check")]
public void should_format_wiki_url(string message, string wikiFragment, string expectedUrl)
{
var subject = new NzbDrone.Core.HealthCheck.HealthCheck(typeof(HealthCheckBase), HealthCheckResult.Warning, message, wikiFragment);
diff --git a/src/NzbDrone.Core/Datastore/DbFactory.cs b/src/NzbDrone.Core/Datastore/DbFactory.cs
index 86ebe855a..c17e28443 100644
--- a/src/NzbDrone.Core/Datastore/DbFactory.cs
+++ b/src/NzbDrone.Core/Datastore/DbFactory.cs
@@ -108,10 +108,10 @@ namespace NzbDrone.Core.Datastore
if (OsInfo.IsOsx)
{
- throw new CorruptDatabaseException("Database file: {0} is corrupt, restore from backup if available. See: https://github.com/Prowlarr/Prowlarr/wiki/FAQ#i-use-prowlarr-on-a-mac-and-it-suddenly-stopped-working-what-happened", e, fileName);
+ throw new CorruptDatabaseException("Database file: {0} is corrupt, restore from backup if available. See: https://wiki.servarr.com/Prowlarr_FAQ#I_use_Prowlarr_on_a_Mac_and_it_suddenly_stopped_working_What_happened", e, fileName);
}
- throw new CorruptDatabaseException("Database file: {0} is corrupt, restore from backup if available. See: https://github.com/Prowlarr/Prowlarr/wiki/FAQ#i-am-getting-an-error-database-disk-image-is-malformed", e, fileName);
+ throw new CorruptDatabaseException("Database file: {0} is corrupt, restore from backup if available. See: https://wiki.servarr.com/Prowlarr_FAQ#I_am_getting_an_error_Database_disk_image_is_malformed", e, fileName);
}
catch (Exception e)
{
diff --git a/src/NzbDrone.Core/HealthCheck/Checks/ApplicationStatusCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/ApplicationStatusCheck.cs
index 2f7c76dfe..86db7004c 100644
--- a/src/NzbDrone.Core/HealthCheck/Checks/ApplicationStatusCheck.cs
+++ b/src/NzbDrone.Core/HealthCheck/Checks/ApplicationStatusCheck.cs
@@ -44,14 +44,14 @@ namespace NzbDrone.Core.HealthCheck.Checks
return new HealthCheck(GetType(),
HealthCheckResult.Error,
_localizationService.GetLocalizedString("ApplicationStatusCheckAllClientMessage"),
- "#applications-are-unavailable-due-to-failures");
+ "#applications_are_unavailable_due_to_failures");
}
return new HealthCheck(GetType(),
HealthCheckResult.Warning,
string.Format(_localizationService.GetLocalizedString("ApplicationStatusCheckSingleClientMessage"),
string.Join(", ", backOffProviders.Select(v => v.Provider.Definition.Name))),
- "#applications-are-unavailable-due-to-failures");
+ "#applications_are_unavailable_due_to_failures");
}
}
}
diff --git a/src/NzbDrone.Core/HealthCheck/Checks/IndexerLongTermStatusCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/IndexerLongTermStatusCheck.cs
index 9ba7ffd1c..8b3bfaf46 100644
--- a/src/NzbDrone.Core/HealthCheck/Checks/IndexerLongTermStatusCheck.cs
+++ b/src/NzbDrone.Core/HealthCheck/Checks/IndexerLongTermStatusCheck.cs
@@ -46,14 +46,14 @@ namespace NzbDrone.Core.HealthCheck.Checks
return new HealthCheck(GetType(),
HealthCheckResult.Error,
_localizationService.GetLocalizedString("IndexerLongTermStatusCheckAllClientMessage"),
- "#indexers-are-unavailable-due-to-failures");
+ "#indexers_are_unavailable_due_to_failures");
}
return new HealthCheck(GetType(),
HealthCheckResult.Warning,
string.Format(_localizationService.GetLocalizedString("IndexerLongTermStatusCheckSingleClientMessage"),
string.Join(", ", backOffProviders.Select(v => v.Provider.Definition.Name))),
- "#indexers-are-unavailable-due-to-failures");
+ "#indexers_are_unavailable_due_to_failures");
}
}
}
diff --git a/src/NzbDrone.Core/HealthCheck/Checks/IndexerStatusCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/IndexerStatusCheck.cs
index f7d6ee541..19bc546be 100644
--- a/src/NzbDrone.Core/HealthCheck/Checks/IndexerStatusCheck.cs
+++ b/src/NzbDrone.Core/HealthCheck/Checks/IndexerStatusCheck.cs
@@ -44,14 +44,14 @@ namespace NzbDrone.Core.HealthCheck.Checks
return new HealthCheck(GetType(),
HealthCheckResult.Error,
_localizationService.GetLocalizedString("IndexerStatusCheckAllClientMessage"),
- "#indexers-are-unavailable-due-to-failures");
+ "#indexers_are_unavailable_due_to_failures");
}
return new HealthCheck(GetType(),
HealthCheckResult.Warning,
string.Format(_localizationService.GetLocalizedString("IndexerStatusCheckSingleClientMessage"),
string.Join(", ", backOffProviders.Select(v => v.Provider.Definition.Name))),
- "#indexers-are-unavailable-due-to-failures");
+ "#indexers_are_unavailable_due_to_failures");
}
}
}
diff --git a/src/NzbDrone.Core/HealthCheck/Checks/MonoDebugCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/MonoDebugCheck.cs
deleted file mode 100644
index bb0a96c70..000000000
--- a/src/NzbDrone.Core/HealthCheck/Checks/MonoDebugCheck.cs
+++ /dev/null
@@ -1,49 +0,0 @@
-using System.Diagnostics;
-using NLog;
-using NzbDrone.Common.EnvironmentInfo;
-using NzbDrone.Common.Extensions;
-using NzbDrone.Core.Localization;
-
-namespace NzbDrone.Core.HealthCheck.Checks
-{
- public class MonoDebugCheck : HealthCheckBase
- {
- private readonly Logger _logger;
- private readonly StackFrameHelper _stackFrameHelper;
-
- public override bool CheckOnSchedule => false;
-
- public MonoDebugCheck(Logger logger, StackFrameHelper stackFrameHelper, ILocalizationService localizationService)
- : base(localizationService)
- {
- _logger = logger;
- _stackFrameHelper = stackFrameHelper;
- }
-
- public class StackFrameHelper
- {
- public virtual bool HasStackFrameInfo()
- {
- var stackTrace = new StackTrace(true);
-
- return stackTrace.FrameCount > 0 && stackTrace.GetFrame(0).GetFileName().IsNotNullOrWhiteSpace();
- }
- }
-
- public override HealthCheck Check()
- {
- if (!PlatformInfo.IsMono)
- {
- return new HealthCheck(GetType());
- }
-
- if (!_stackFrameHelper.HasStackFrameInfo())
- {
- _logger.Warn("Mono is not running with --debug switch");
- return new HealthCheck(GetType());
- }
-
- return new HealthCheck(GetType());
- }
- }
-}
diff --git a/src/NzbDrone.Core/HealthCheck/Checks/MonoNotNetCoreCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/MonoNotNetCoreCheck.cs
deleted file mode 100644
index 3855dee3b..000000000
--- a/src/NzbDrone.Core/HealthCheck/Checks/MonoNotNetCoreCheck.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-using System.Linq;
-using System.Runtime.InteropServices;
-using NLog;
-using NzbDrone.Common.EnvironmentInfo;
-using NzbDrone.Common.Processes;
-using NzbDrone.Core.Localization;
-
-namespace NzbDrone.Core.HealthCheck.Checks
-{
- public class MonoNotNetCoreCheck : HealthCheckBase
- {
- private static string[] MonoUnames = new string[] { "FreeBSD", "OpenBSD", "MidnightBSD", "NetBSD" };
- private readonly IOsInfo _osInfo;
- private readonly IProcessProvider _processProvider;
-
- public MonoNotNetCoreCheck(IOsInfo osInfo,
- IProcessProvider processProvider,
- ILocalizationService localizationService,
- Logger logger)
- : base(localizationService)
- {
- _osInfo = osInfo;
- _processProvider = processProvider;
- }
-
- public override HealthCheck Check()
- {
- if (!PlatformInfo.IsMono)
- {
- return new HealthCheck(GetType());
- }
-
- // Don't warn on arm based synology - could be arm5 or something else rubbish
- if (_osInfo.Name == "DSM" && RuntimeInformation.ProcessArchitecture == Architecture.Arm)
- {
- return new HealthCheck(GetType());
- }
-
- // Check for BSD
- var output = _processProvider.StartAndCapture("uname");
- if (output?.ExitCode == 0 && MonoUnames.Contains(output?.Lines.First().Content))
- {
- return new HealthCheck(GetType());
- }
-
- return new HealthCheck(GetType(),
- HealthCheckResult.Warning,
- _localizationService.GetLocalizedString("MonoNotNetCoreCheckMessage"),
- "#update-to-net-core-version");
- }
-
- public override bool CheckOnSchedule => false;
- }
-}
diff --git a/src/NzbDrone.Core/HealthCheck/Checks/MonoTlsCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/MonoTlsCheck.cs
deleted file mode 100644
index 2284ab3a5..000000000
--- a/src/NzbDrone.Core/HealthCheck/Checks/MonoTlsCheck.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-using System;
-using NLog;
-using NLog.Fluent;
-using NzbDrone.Common.EnvironmentInfo;
-using NzbDrone.Common.Instrumentation.Extensions;
-using NzbDrone.Core.Localization;
-
-namespace NzbDrone.Core.HealthCheck.Checks
-{
- public class MonoTlsCheck : HealthCheckBase
- {
- private readonly IPlatformInfo _platformInfo;
- private readonly Logger _logger;
-
- public MonoTlsCheck(IPlatformInfo platformInfo, ILocalizationService localizationService, Logger logger)
- : base(localizationService)
- {
- _platformInfo = platformInfo;
- _logger = logger;
- }
-
- public override HealthCheck Check()
- {
- if (!PlatformInfo.IsMono)
- {
- return new HealthCheck(GetType());
- }
-
- var monoVersion = _platformInfo.Version;
-
- if (monoVersion >= new Version("5.8.0") && Environment.GetEnvironmentVariable("MONO_TLS_PROVIDER") == "legacy")
- {
- _logger.Debug()
- .Message("Mono version {0} and legacy TLS provider is selected, recommending user to switch to btls.", monoVersion)
- .WriteSentryDebug("LegacyTlsProvider", monoVersion.ToString())
- .Write();
-
- return new HealthCheck(GetType(), HealthCheckResult.Warning, _localizationService.GetLocalizedString("MonoTlsCheckMessage"));
- }
-
- return new HealthCheck(GetType());
- }
-
- public override bool CheckOnSchedule => false;
- }
-}
diff --git a/src/NzbDrone.Core/HealthCheck/Checks/MonoVersionCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/MonoVersionCheck.cs
deleted file mode 100644
index c0f2d93ac..000000000
--- a/src/NzbDrone.Core/HealthCheck/Checks/MonoVersionCheck.cs
+++ /dev/null
@@ -1,76 +0,0 @@
-using System;
-using NLog;
-using NzbDrone.Common.EnvironmentInfo;
-using NzbDrone.Core.Localization;
-
-namespace NzbDrone.Core.HealthCheck.Checks
-{
- public class MonoVersionCheck : HealthCheckBase
- {
- private readonly IPlatformInfo _platformInfo;
- private readonly Logger _logger;
-
- public MonoVersionCheck(IPlatformInfo platformInfo, ILocalizationService localizationService, Logger logger)
- : base(localizationService)
- {
- _platformInfo = platformInfo;
- _logger = logger;
- }
-
- public override HealthCheck Check()
- {
- if (!PlatformInfo.IsMono)
- {
- return new HealthCheck(GetType());
- }
-
- var monoVersion = _platformInfo.Version;
-
- // Known buggy Mono versions
- if (monoVersion == new Version("4.4.0") || monoVersion == new Version("4.4.1"))
- {
- _logger.Debug("Mono version {0}", monoVersion);
- return new HealthCheck(GetType(),
- HealthCheckResult.Error,
- $"Currently installed Mono version {monoVersion} has a bug that causes issues connecting to indexers/download clients. You should upgrade to a higher version",
- "#currently-installed-mono-version-is-old-and-unsupported");
- }
-
- // Currently best stable Mono version (5.18 gets us .net 4.7.2 support)
- var bestVersion = new Version("5.20");
- var targetVersion = new Version("5.18");
- if (monoVersion >= targetVersion)
- {
- _logger.Debug("Mono version is {0} or better: {1}", targetVersion, monoVersion);
- return new HealthCheck(GetType());
- }
-
- // Stable Mono versions
- var stableVersion = new Version("5.18");
- if (monoVersion >= stableVersion)
- {
- _logger.Debug("Mono version is {0} or better: {1}", stableVersion, monoVersion);
- return new HealthCheck(GetType(),
- HealthCheckResult.Notice,
- string.Format(_localizationService.GetLocalizedString("MonoVersionCheckUpgradeRecommendedMessage"), monoVersion, bestVersion),
- "#currently-installed-mono-version-is-supported-but-upgrading-is-recommended");
- }
-
- var oldVersion = new Version("5.4");
- if (monoVersion >= oldVersion)
- {
- return new HealthCheck(GetType(),
- HealthCheckResult.Error,
- string.Format(_localizationService.GetLocalizedString("MonoVersionCheckUpgradeRecommendedMessage"), monoVersion, bestVersion),
- "#currently-installed-mono-version-is-old-and-unsupported");
- }
-
- return new HealthCheck(GetType(),
- HealthCheckResult.Error,
- string.Format(_localizationService.GetLocalizedString("MonoVersionCheckUpgradeRecommendedMessage"), monoVersion, bestVersion),
- "#currently-installed-mono-version-is-old-and-unsupported");
- }
-
- public override bool CheckOnSchedule => false;
- }
-}
diff --git a/src/NzbDrone.Core/HealthCheck/Checks/NewznabVIPCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/NewznabVIPCheck.cs
index b832ce295..063c0edd4 100644
--- a/src/NzbDrone.Core/HealthCheck/Checks/NewznabVIPCheck.cs
+++ b/src/NzbDrone.Core/HealthCheck/Checks/NewznabVIPCheck.cs
@@ -55,7 +55,7 @@ namespace NzbDrone.Core.HealthCheck.Checks
HealthCheckResult.Warning,
string.Format(_localizationService.GetLocalizedString("NewznabVipCheckExpiringClientMessage"),
string.Join(", ", expiringProviders.Select(v => v.Definition.Name))),
- "#newznab-vip-expiring");
+ "#newznab_vip_expiring");
}
if (!expiredProviders.Empty())
@@ -64,7 +64,7 @@ namespace NzbDrone.Core.HealthCheck.Checks
HealthCheckResult.Warning,
string.Format(_localizationService.GetLocalizedString("NewznabVipCheckExpiredClientMessage"),
string.Join(", ", expiredProviders.Select(v => v.Definition.Name))),
- "#newznab-vip-expired");
+ "#newznab_vip_expired");
}
return new HealthCheck(GetType());
diff --git a/src/NzbDrone.Core/HealthCheck/Checks/OutdatedDefinitionCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/OutdatedDefinitionCheck.cs
index dd71e080a..5fb0fc58c 100644
--- a/src/NzbDrone.Core/HealthCheck/Checks/OutdatedDefinitionCheck.cs
+++ b/src/NzbDrone.Core/HealthCheck/Checks/OutdatedDefinitionCheck.cs
@@ -38,7 +38,7 @@ namespace NzbDrone.Core.HealthCheck.Checks
HealthCheckResult.Warning,
string.Format(_localizationService.GetLocalizedString("IndexerObsoleteCheckMessage"),
string.Join(", ", oldIndexers.Select(v => v.Name))),
- "#indexers-are-obsolete");
+ "#indexers_are_obsolete");
}
public override bool CheckOnSchedule => false;
diff --git a/src/NzbDrone.Core/HealthCheck/Checks/ReleaseBranchCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/ReleaseBranchCheck.cs
index eca2d1fe1..fd20cff91 100644
--- a/src/NzbDrone.Core/HealthCheck/Checks/ReleaseBranchCheck.cs
+++ b/src/NzbDrone.Core/HealthCheck/Checks/ReleaseBranchCheck.cs
@@ -25,10 +25,10 @@ namespace NzbDrone.Core.HealthCheck.Checks
{
if (currentBranch == "develop")
{
- return new HealthCheck(GetType(), HealthCheckResult.Error, string.Format(_localizationService.GetLocalizedString("ReleaseBranchCheckPreviousVersionMessage"), _configFileService.Branch), "#branch-is-for-a-previous-version");
+ return new HealthCheck(GetType(), HealthCheckResult.Error, string.Format(_localizationService.GetLocalizedString("ReleaseBranchCheckPreviousVersionMessage"), _configFileService.Branch), "#branch_is_for_a_previous_version");
}
- return new HealthCheck(GetType(), HealthCheckResult.Warning, string.Format(_localizationService.GetLocalizedString("ReleaseBranchCheckOfficialBranchMessage"), _configFileService.Branch), "#branch-is-not-a-valid-release-branch");
+ return new HealthCheck(GetType(), HealthCheckResult.Warning, string.Format(_localizationService.GetLocalizedString("ReleaseBranchCheckOfficialBranchMessage"), _configFileService.Branch), "#branch_is_not_a_valid_release_branch");
}
return new HealthCheck(GetType());
diff --git a/src/NzbDrone.Core/HealthCheck/Checks/UpdateCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/UpdateCheck.cs
index b012d5c17..a9545d718 100644
--- a/src/NzbDrone.Core/HealthCheck/Checks/UpdateCheck.cs
+++ b/src/NzbDrone.Core/HealthCheck/Checks/UpdateCheck.cs
@@ -48,7 +48,7 @@ namespace NzbDrone.Core.HealthCheck.Checks
return new HealthCheck(GetType(),
HealthCheckResult.Error,
string.Format(_localizationService.GetLocalizedString("UpdateCheckStartupTranslocationMessage"), startupFolder),
- "#cannot-install-update-because-startup-folder-is-in-an-app-translocation-folder.");
+ "#cannot_install_update_because_startup_folder_is_in_an_app_translocation_folder.");
}
if (!_diskProvider.FolderWritable(startupFolder))
@@ -56,7 +56,7 @@ namespace NzbDrone.Core.HealthCheck.Checks
return new HealthCheck(GetType(),
HealthCheckResult.Error,
string.Format(_localizationService.GetLocalizedString("UpdateCheckStartupNotWritableMessage"), startupFolder, Environment.UserName),
- "#cannot-install-update-because-startup-folder-is-not-writable-by-the-user");
+ "#cannot_install_update_because_startup_folder_is_not_writable_by_the_user");
}
if (!_diskProvider.FolderWritable(uiFolder))
@@ -64,7 +64,7 @@ namespace NzbDrone.Core.HealthCheck.Checks
return new HealthCheck(GetType(),
HealthCheckResult.Error,
string.Format(_localizationService.GetLocalizedString("UpdateCheckUINotWritableMessage"), uiFolder, Environment.UserName),
- "#cannot-install-update-because-ui-folder-is-not-writable-by-the-user");
+ "#cannot_install_update_because_ui_folder_is_not_writable_by_the_user");
}
}
diff --git a/src/NzbDrone.Core/HealthCheck/HealthCheck.cs b/src/NzbDrone.Core/HealthCheck/HealthCheck.cs
index 7c24203e0..ac30d8a68 100644
--- a/src/NzbDrone.Core/HealthCheck/HealthCheck.cs
+++ b/src/NzbDrone.Core/HealthCheck/HealthCheck.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Text.RegularExpressions;
using NzbDrone.Common.Http;
using NzbDrone.Core.Datastore;
@@ -34,12 +34,12 @@ namespace NzbDrone.Core.HealthCheck
private static string MakeWikiFragment(string message)
{
- return "#" + CleanFragmentRegex.Replace(message.ToLower(), string.Empty).Replace(' ', '-');
+ return "#" + CleanFragmentRegex.Replace(message.ToLower(), string.Empty).Replace(' ', '_');
}
private static HttpUri MakeWikiUrl(string fragment)
{
- return new HttpUri("https://github.com/Prowlarr/Prowlarr/wiki/Health-checks") + new HttpUri(fragment);
+ return new HttpUri("https://wiki.servarr.com/Prowlarr_System#") + new HttpUri(fragment);
}
}
diff --git a/src/NzbDrone.Core/Notifications/CustomScript/CustomScript.cs b/src/NzbDrone.Core/Notifications/CustomScript/CustomScript.cs
index b954697c2..b2f9c69f2 100755
--- a/src/NzbDrone.Core/Notifications/CustomScript/CustomScript.cs
+++ b/src/NzbDrone.Core/Notifications/CustomScript/CustomScript.cs
@@ -27,7 +27,7 @@ namespace NzbDrone.Core.Notifications.CustomScript
public override string Name => "Custom Script";
- public override string Link => "https://github.com/Prowlarr/Prowlarr/wiki/Custom-Post-Processing-Scripts";
+ public override string Link => "https://wiki.servarr.com/Prowlarr_Settings#Connections";
public override ProviderMessage Message => new ProviderMessage("Testing will execute the script with the EventType set to Test, ensure your script handles this correctly", ProviderMessageType.Warning);
diff --git a/src/NzbDrone.Core/Notifications/Twitter/TwitterSettings.cs b/src/NzbDrone.Core/Notifications/Twitter/TwitterSettings.cs
index caa15776d..962a69afe 100644
--- a/src/NzbDrone.Core/Notifications/Twitter/TwitterSettings.cs
+++ b/src/NzbDrone.Core/Notifications/Twitter/TwitterSettings.cs
@@ -38,10 +38,10 @@ namespace NzbDrone.Core.Notifications.Twitter
AuthorizeNotification = "startOAuth";
}
- [FieldDefinition(0, Label = "Consumer Key", Privacy = PrivacyLevel.ApiKey, HelpText = "Consumer key from a Twitter application", HelpLink = "https://github.com/Prowlarr/Prowlarr/wiki/Twitter-Notifications")]
+ [FieldDefinition(0, Label = "Consumer Key", Privacy = PrivacyLevel.ApiKey, HelpText = "Consumer key from a Twitter application", HelpLink = "https://wiki.servarr.com/Useful_Tools#Twitter_Connect")]
public string ConsumerKey { get; set; }
- [FieldDefinition(1, Label = "Consumer Secret", Privacy = PrivacyLevel.ApiKey, HelpText = "Consumer secret from a Twitter application", HelpLink = "https://github.com/Prowlarr/Prowlarr/wiki/Twitter-Notifications")]
+ [FieldDefinition(1, Label = "Consumer Secret", Privacy = PrivacyLevel.ApiKey, HelpText = "Consumer secret from a Twitter application", HelpLink = "https://wiki.servarr.com/Useful_Tools#Twitter_Connect")]
public string ConsumerSecret { get; set; }
[FieldDefinition(2, Label = "Access Token", Privacy = PrivacyLevel.ApiKey, Advanced = true)]
diff --git a/src/NzbDrone.Core/Notifications/Webhook/Webhook.cs b/src/NzbDrone.Core/Notifications/Webhook/Webhook.cs
index d64ef8664..bc7fc27b2 100755
--- a/src/NzbDrone.Core/Notifications/Webhook/Webhook.cs
+++ b/src/NzbDrone.Core/Notifications/Webhook/Webhook.cs
@@ -14,7 +14,7 @@ namespace NzbDrone.Core.Notifications.Webhook
_proxy = proxy;
}
- public override string Link => "https://github.com/Prowlarr/Prowlarr/wiki/Webhook";
+ public override string Link => "https://wiki.servarr.com/Prowlarr_Settings#Connect";
public override void OnHealthIssue(HealthCheck.HealthCheck healthCheck)
{
diff --git a/src/Prowlarr.Api.V1/ProviderResource.cs b/src/Prowlarr.Api.V1/ProviderResource.cs
index abc09e2c9..a394aa174 100644
--- a/src/Prowlarr.Api.V1/ProviderResource.cs
+++ b/src/Prowlarr.Api.V1/ProviderResource.cs
@@ -38,8 +38,8 @@ namespace Prowlarr.Api.V1
Tags = definition.Tags,
Fields = SchemaBuilder.ToSchema(definition.Settings),
- InfoLink = string.Format("https://github.com/Prowlarr/Prowlarr/wiki/Supported-{0}#{1}",
- typeof(TProviderResource).Name.Replace("Resource", "s"),
+ //Radarr_Supported_{0} are custom build redirect pages; if passing a new var, create a new redirect
+ InfoLink = string.Format("https://wiki.servarr.com/Prowlarr_Supported_{0}",
definition.Implementation.ToLower())
};
}
diff --git a/src/Prowlarr.Api.V1/swagger.json b/src/Prowlarr.Api.V1/swagger.json
index 8d70d9764..02115b374 100644
--- a/src/Prowlarr.Api.V1/swagger.json
+++ b/src/Prowlarr.Api.V1/swagger.json
@@ -766,13 +766,13 @@
"source": "ImportMechanismCheck",
"type": "warning",
"message": "Enable Completed Download Handling",
- "wikiUrl": "https://github.com/Prowlarr/Prowlarr/wiki/Health-checks#enable-completed-download-handling"
+ "wikiUrl": "https://wiki.servarr.com/Prowlarr_System#Completed.2FFailed_Download_Handling"
},
{
"source": "DownloadClientCheck",
"type": "error",
"message": "Unable to communicate with qBittorrent. Failed to connect to qBittorrent, check your settings.",
- "wikiUrl": "https://github.com/Prowlarr/Prowlarr/wiki/Health-checks#unable-to-communicate-with-download-client"
+ "wikiUrl": "https://wiki.servarr.com/Prowlarr_System#Download_Clients"
}
]
}
diff --git a/src/Radarr.Api.V3/Update/UpdateResource.cs b/src/Radarr.Api.V3/Update/UpdateResource.cs
deleted file mode 100644
index 365619a88..000000000
--- a/src/Radarr.Api.V3/Update/UpdateResource.cs
+++ /dev/null
@@ -1,58 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using Newtonsoft.Json;
-using NzbDrone.Core.Update;
-using Radarr.Http.REST;
-
-namespace Radarr.Api.V3.Update
-{
- public class UpdateResource : RestResource
- {
- [JsonConverter(typeof(Newtonsoft.Json.Converters.VersionConverter))]
- public Version Version { get; set; }
-
- public string Branch { get; set; }
- public DateTime ReleaseDate { get; set; }
- public string FileName { get; set; }
- public string Url { get; set; }
- public bool Installed { get; set; }
- public DateTime? InstalledOn { get; set; }
- public bool Installable { get; set; }
- public bool Latest { get; set; }
- public UpdateChanges Changes { get; set; }
- public string Hash { get; set; }
- }
-
- public static class UpdateResourceMapper
- {
- public static UpdateResource ToResource(this UpdatePackage model)
- {
- if (model == null)
- {
- return null;
- }
-
- return new UpdateResource
- {
- Version = model.Version,
-
- Branch = model.Branch,
- ReleaseDate = model.ReleaseDate,
- FileName = model.FileName,
- Url = model.Url,
-
- //Installed
- //Installable
- //Latest
- Changes = model.Changes,
- Hash = model.Hash,
- };
- }
-
- public static List ToResource(this IEnumerable models)
- {
- return models.Select(ToResource).ToList();
- }
- }
-}