mirror of https://github.com/lidarr/Lidarr
Fixed: Updated wiki links for WikiJS
This commit is contained in:
parent
07aad3250a
commit
3d1437bf18
|
@ -128,7 +128,7 @@ class FileBrowserModalContent extends Component {
|
||||||
className={styles.mappedDrivesWarning}
|
className={styles.mappedDrivesWarning}
|
||||||
kind={kinds.WARNING}
|
kind={kinds.WARNING}
|
||||||
>
|
>
|
||||||
Mapped network drives are not available when running as a Windows Service, see the <Link className={styles.faqLink} to="https://wiki.servarr.com/Lidarr_FAQ">FAQ</Link> for more information.
|
Mapped network drives are not available when running as a Windows Service, see the <Link className={styles.faqLink} to="https://wiki.servarr.com/lidarr/faq">FAQ</Link> for more information.
|
||||||
</Alert>
|
</Alert>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -63,7 +63,7 @@ function UpdateSettings(props) {
|
||||||
type={inputTypes.TEXT}
|
type={inputTypes.TEXT}
|
||||||
name="branch"
|
name="branch"
|
||||||
helpText={usingExternalUpdateMechanism ? 'Branch used by external update mechanism' : 'Branch to use to update Lidarr'}
|
helpText={usingExternalUpdateMechanism ? 'Branch used by external update mechanism' : 'Branch to use to update Lidarr'}
|
||||||
helpLink="https://wiki.servarr.com/Lidarr_FAQ#How_do_I_update_my_Lidarr"
|
helpLink="https://wiki.servarr.com/lidarr/faq#how-do-i-update-lidarr"
|
||||||
{...branch}
|
{...branch}
|
||||||
onChange={onInputChange}
|
onChange={onInputChange}
|
||||||
readOnly={usingExternalUpdateMechanism}
|
readOnly={usingExternalUpdateMechanism}
|
||||||
|
@ -100,7 +100,7 @@ function UpdateSettings(props) {
|
||||||
name="updateMechanism"
|
name="updateMechanism"
|
||||||
values={updateOptions}
|
values={updateOptions}
|
||||||
helpText="Use Lidarr's built-in updater or a script"
|
helpText="Use Lidarr's built-in updater or a script"
|
||||||
helpLink="https://wiki.servarr.com/Lidarr_FAQ#How_do_I_update_my_Lidarr"
|
helpLink="https://wiki.servarr.com/lidarr/faq#how-do-i-update-lidarr"
|
||||||
onChange={onInputChange}
|
onChange={onInputChange}
|
||||||
{...updateMechanism}
|
{...updateMechanism}
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -88,7 +88,7 @@ function IndexerOptions(props) {
|
||||||
unit="minutes"
|
unit="minutes"
|
||||||
helpText="Interval in minutes. Set to zero to disable (this will stop all automatic release grabbing)"
|
helpText="Interval in minutes. Set to zero to disable (this will stop all automatic release grabbing)"
|
||||||
helpTextWarning="This will apply to all indexers, please follow the rules set forth by them"
|
helpTextWarning="This will apply to all indexers, please follow the rules set forth by them"
|
||||||
helpLink="https://wiki.servarr.com/Lidarr_FAQ#How_does_Lidarr_work"
|
helpLink="https://wiki.servarr.com/lidarr/faq#how-does-lidarr-work"
|
||||||
onChange={onInputChange}
|
onChange={onInputChange}
|
||||||
{...settings.rssSyncInterval}
|
{...settings.rssSyncInterval}
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -54,7 +54,7 @@ function MetadataProvider(props) {
|
||||||
type={inputTypes.TEXT}
|
type={inputTypes.TEXT}
|
||||||
name="metadataSource"
|
name="metadataSource"
|
||||||
helpText="Alternative Metadata Source (Leave blank for default)"
|
helpText="Alternative Metadata Source (Leave blank for default)"
|
||||||
helpLink="https://wiki.servarr.com/Lidarr_Settings#Metadata"
|
helpLink="https://wiki.servarr.com/lidarr/settings#metadata"
|
||||||
onChange={onInputChange}
|
onChange={onInputChange}
|
||||||
{...settings.metadataSource}
|
{...settings.metadataSource}
|
||||||
/>
|
/>
|
||||||
|
@ -70,7 +70,7 @@ function MetadataProvider(props) {
|
||||||
type={inputTypes.SELECT}
|
type={inputTypes.SELECT}
|
||||||
name="writeAudioTags"
|
name="writeAudioTags"
|
||||||
helpTextWarning="Selecting 'All files' will alter existing files when they are imported."
|
helpTextWarning="Selecting 'All files' will alter existing files when they are imported."
|
||||||
helpLink="https://wiki.servarr.com/Lidarr_Settings#Write_Metadata_to_Audio_Files"
|
helpLink="https://wiki.servarr.com/lidarr/settings#write-metadata-to-audio-files"
|
||||||
values={writeAudioTagOptions}
|
values={writeAudioTagOptions}
|
||||||
onChange={onInputChange}
|
onChange={onInputChange}
|
||||||
{...settings.writeAudioTags}
|
{...settings.writeAudioTags}
|
||||||
|
|
|
@ -39,7 +39,7 @@ function NotificationEventItems(props) {
|
||||||
<div>
|
<div>
|
||||||
<FormInputHelpText
|
<FormInputHelpText
|
||||||
text="Select which events should trigger this notification"
|
text="Select which events should trigger this notification"
|
||||||
link="https://wiki.servarr.com/Lidarr_Settings#Connections"
|
link="https://wiki.servarr.com/lidarr/settings#connections"
|
||||||
/>
|
/>
|
||||||
<div className={styles.events}>
|
<div className={styles.events}>
|
||||||
<div>
|
<div>
|
||||||
|
|
|
@ -14,7 +14,7 @@ function Tags(props) {
|
||||||
|
|
||||||
if (!items.length) {
|
if (!items.length) {
|
||||||
return (
|
return (
|
||||||
<div>No tags have been added yet. Add tags to link artists with delay profiles, restrictions, or notifications. Click <Link to='https://wiki.servarr.com/Lidarr_Settings#Tags'>here</Link> to find out more about tags in Lidarr.</div>
|
<div>No tags have been added yet. Add tags to link artists with delay profiles, restrictions, or notifications. Click <Link to='https://wiki.servarr.com/lidarr/settings#tags'>here</Link> to find out more about tags in Lidarr.</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ function createHealthCheckSelector() {
|
||||||
source: 'UI',
|
source: 'UI',
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
message: 'Could not connect to SignalR, UI won\'t update',
|
message: 'Could not connect to SignalR, UI won\'t update',
|
||||||
wikiUrl: 'https://wiki.servarr.com/Lidarr_System#Could_not_connect_to_signalR'
|
wikiUrl: 'https://wiki.servarr.com/lidarr/system#could-not-connect-to-signalr'
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,12 +21,12 @@ class MoreInfo extends Component {
|
||||||
|
|
||||||
<DescriptionListItemTitle>Wiki</DescriptionListItemTitle>
|
<DescriptionListItemTitle>Wiki</DescriptionListItemTitle>
|
||||||
<DescriptionListItemDescription>
|
<DescriptionListItemDescription>
|
||||||
<Link to="https://wiki.servarr.com/Lidarr">wiki.lidarr.audio</Link>
|
<Link to="https://wiki.servarr.com/lidarr">wiki.servarr.com/lidarr</Link>
|
||||||
</DescriptionListItemDescription>
|
</DescriptionListItemDescription>
|
||||||
|
|
||||||
<DescriptionListItemTitle>Reddit</DescriptionListItemTitle>
|
<DescriptionListItemTitle>Reddit</DescriptionListItemTitle>
|
||||||
<DescriptionListItemDescription>
|
<DescriptionListItemDescription>
|
||||||
<Link to="https://www.reddit.com/r/Lidarr/">Lidarr</Link>
|
<Link to="https://www.reddit.com/r/Lidarr/">/r/Lidarr</Link>
|
||||||
</DescriptionListItemDescription>
|
</DescriptionListItemDescription>
|
||||||
|
|
||||||
<DescriptionListItemTitle>Discord</DescriptionListItemTitle>
|
<DescriptionListItemTitle>Discord</DescriptionListItemTitle>
|
||||||
|
|
|
@ -252,7 +252,7 @@
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<a
|
<a
|
||||||
href="https://wiki.servarr.com/Lidarr_FAQ#Help_I_have_locked_my_self_out"
|
href="https://wiki.servarr.com/lidarr/faq#help-i-have-locked-myself-out"
|
||||||
class="forgot-password"
|
class="forgot-password"
|
||||||
>Forgot your password?</a
|
>Forgot your password?</a
|
||||||
>
|
>
|
||||||
|
|
|
@ -38,7 +38,8 @@ namespace Lidarr.Api.V1
|
||||||
Tags = definition.Tags,
|
Tags = definition.Tags,
|
||||||
Fields = SchemaBuilder.ToSchema(definition.Settings),
|
Fields = SchemaBuilder.ToSchema(definition.Settings),
|
||||||
|
|
||||||
InfoLink = string.Format("https://wiki.servarr.com/Lidarr_Supported_{0}",
|
//lidarr/supported is an disambagation page. the # should be a header on the page with appropiate details/link
|
||||||
|
InfoLink = string.Format("https://wiki.servarr.com/lidarr/supported#{0}",
|
||||||
definition.Implementation.ToLower())
|
definition.Implementation.ToLower())
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -124,7 +124,7 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks
|
||||||
[Test]
|
[Test]
|
||||||
public void should_return_permissions_error_if_local_client_download_root_missing()
|
public void should_return_permissions_error_if_local_client_download_root_missing()
|
||||||
{
|
{
|
||||||
Subject.Check().ShouldBeError(wikiFragment: "permissions_error");
|
Subject.Check().ShouldBeError(wikiFragment: "permissions-error");
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
@ -133,7 +133,7 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks
|
||||||
_clientStatus.IsLocalhost = false;
|
_clientStatus.IsLocalhost = false;
|
||||||
_clientStatus.OutputRootFolders = new List<OsPath> { new OsPath("An invalid path") };
|
_clientStatus.OutputRootFolders = new List<OsPath> { new OsPath("An invalid path") };
|
||||||
|
|
||||||
Subject.Check().ShouldBeError(wikiFragment: "bad_remote_path_mapping");
|
Subject.Check().ShouldBeError(wikiFragment: "bad-remote-path-mapping");
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
@ -142,7 +142,7 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks
|
||||||
_clientStatus.IsLocalhost = true;
|
_clientStatus.IsLocalhost = true;
|
||||||
_clientStatus.OutputRootFolders = new List<OsPath> { new OsPath("An invalid path") };
|
_clientStatus.OutputRootFolders = new List<OsPath> { new OsPath("An invalid path") };
|
||||||
|
|
||||||
Subject.Check().ShouldBeError(wikiFragment: "bad_download_client_settings");
|
Subject.Check().ShouldBeError(wikiFragment: "bad-download-client-settings");
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
@ -150,7 +150,7 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks
|
||||||
{
|
{
|
||||||
_clientStatus.IsLocalhost = false;
|
_clientStatus.IsLocalhost = false;
|
||||||
|
|
||||||
Subject.Check().ShouldBeError(wikiFragment: "bad_remote_path_mapping");
|
Subject.Check().ShouldBeError(wikiFragment: "bad-remote-path-mapping");
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
@ -170,7 +170,7 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks
|
||||||
{
|
{
|
||||||
GivenDocker();
|
GivenDocker();
|
||||||
|
|
||||||
Subject.Check().ShouldBeError(wikiFragment: "docker_bad_remote_path_mapping");
|
Subject.Check().ShouldBeError(wikiFragment: "docker-bad-remote-path-mapping");
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
@ -193,7 +193,7 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks
|
||||||
|
|
||||||
var importEvent = new TrackImportFailedEvent(new Exception(), localTrack, true, new DownloadClientItem { DownloadClientInfo = new DownloadClientItemClientInfo() });
|
var importEvent = new TrackImportFailedEvent(new Exception(), localTrack, true, new DownloadClientItem { DownloadClientInfo = new DownloadClientItemClientInfo() });
|
||||||
|
|
||||||
Subject.Check(importEvent).ShouldBeError(wikiFragment: "permissions_error");
|
Subject.Check(importEvent).ShouldBeError(wikiFragment: "permissions-error");
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
@ -203,7 +203,7 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks
|
||||||
|
|
||||||
var importEvent = new TrackImportFailedEvent(null, null, true, _downloadItem);
|
var importEvent = new TrackImportFailedEvent(null, null, true, _downloadItem);
|
||||||
|
|
||||||
Subject.Check(importEvent).ShouldBeError(wikiFragment: "permissions_error");
|
Subject.Check(importEvent).ShouldBeError(wikiFragment: "permissions-error");
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
@ -211,7 +211,7 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks
|
||||||
{
|
{
|
||||||
var importEvent = new TrackImportFailedEvent(null, null, true, _downloadItem);
|
var importEvent = new TrackImportFailedEvent(null, null, true, _downloadItem);
|
||||||
|
|
||||||
Subject.Check(importEvent).ShouldBeError(wikiFragment: "permissions_error");
|
Subject.Check(importEvent).ShouldBeError(wikiFragment: "permissions-error");
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
@ -220,7 +220,7 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks
|
||||||
_clientStatus.IsLocalhost = false;
|
_clientStatus.IsLocalhost = false;
|
||||||
var importEvent = new TrackImportFailedEvent(null, null, true, _downloadItem);
|
var importEvent = new TrackImportFailedEvent(null, null, true, _downloadItem);
|
||||||
|
|
||||||
Subject.Check(importEvent).ShouldBeError(wikiFragment: "bad_remote_path_mapping");
|
Subject.Check(importEvent).ShouldBeError(wikiFragment: "bad-remote-path-mapping");
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
@ -230,7 +230,7 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks
|
||||||
_downloadItem.OutputPath = new OsPath("an invalid path");
|
_downloadItem.OutputPath = new OsPath("an invalid path");
|
||||||
var importEvent = new TrackImportFailedEvent(null, null, true, _downloadItem);
|
var importEvent = new TrackImportFailedEvent(null, null, true, _downloadItem);
|
||||||
|
|
||||||
Subject.Check(importEvent).ShouldBeError(wikiFragment: "bad_remote_path_mapping");
|
Subject.Check(importEvent).ShouldBeError(wikiFragment: "bad-remote-path-mapping");
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
@ -240,7 +240,7 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks
|
||||||
_downloadItem.OutputPath = new OsPath("an invalid path");
|
_downloadItem.OutputPath = new OsPath("an invalid path");
|
||||||
var importEvent = new TrackImportFailedEvent(null, null, true, _downloadItem);
|
var importEvent = new TrackImportFailedEvent(null, null, true, _downloadItem);
|
||||||
|
|
||||||
Subject.Check(importEvent).ShouldBeError(wikiFragment: "bad_download_client_settings");
|
Subject.Check(importEvent).ShouldBeError(wikiFragment: "bad-download-client-settings");
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
@ -251,7 +251,7 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks
|
||||||
_clientStatus.IsLocalhost = false;
|
_clientStatus.IsLocalhost = false;
|
||||||
var importEvent = new TrackImportFailedEvent(null, null, true, _downloadItem);
|
var importEvent = new TrackImportFailedEvent(null, null, true, _downloadItem);
|
||||||
|
|
||||||
Subject.Check(importEvent).ShouldBeError(wikiFragment: "docker_bad_remote_path_mapping");
|
Subject.Check(importEvent).ShouldBeError(wikiFragment: "docker-bad-remote-path-mapping");
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
|
|
@ -10,9 +10,9 @@ namespace NzbDrone.Core.Test.HealthCheck
|
||||||
{
|
{
|
||||||
private const string WikiRoot = "https://wiki.servarr.com/";
|
private const string WikiRoot = "https://wiki.servarr.com/";
|
||||||
|
|
||||||
[TestCase("I blew up because of some weird user mistake", null, WikiRoot + "Lidarr_System#i_blew_up_because_of_some_weird_user_mistake")]
|
[TestCase("I blew up because of some weird user mistake", null, WikiRoot + "lidarr/system#i-blew-up-because-of-some-weird-user-mistake")]
|
||||||
[TestCase("I blew up because of some weird user mistake", "#my_health_check", WikiRoot + "Lidarr_System#my_health_check")]
|
[TestCase("I blew up because of some weird user mistake", "#my-health-check", WikiRoot + "lidarr/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")]
|
[TestCase("I blew up because of some weird user mistake", "custom-page#my-health-check", WikiRoot + "lidarr/custom-page#my-health-check")]
|
||||||
public void should_format_wiki_url(string message, string wikiFragment, string expectedUrl)
|
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);
|
var subject = new NzbDrone.Core.HealthCheck.HealthCheck(typeof(HealthCheckBase), HealthCheckResult.Warning, message, wikiFragment);
|
||||||
|
|
|
@ -119,10 +119,10 @@ namespace NzbDrone.Core.Datastore
|
||||||
|
|
||||||
if (OsInfo.IsOsx)
|
if (OsInfo.IsOsx)
|
||||||
{
|
{
|
||||||
throw new CorruptDatabaseException("Database file: {0} is corrupt, restore from backup if available. See: https://wiki.servarr.com/Lidarr_FAQ#I_use_Lidarr_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/lidarr/faq#i-use-lidarr-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/Lidarr_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/lidarr/faq#i-am-getting-an-error-database-disk-image-is-malformed", e, fileName);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
|
|
@ -41,7 +41,7 @@ namespace NzbDrone.Core.HealthCheck.Checks
|
||||||
_logger.Debug(ex, "Unable to communicate with {0}", downloadClient.Definition.Name);
|
_logger.Debug(ex, "Unable to communicate with {0}", downloadClient.Definition.Name);
|
||||||
|
|
||||||
var message = $"Unable to communicate with {downloadClient.Definition.Name}.";
|
var message = $"Unable to communicate with {downloadClient.Definition.Name}.";
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Error, $"{message} {ex.Message}", "#unable_to_communicate_with_download_client");
|
return new HealthCheck(GetType(), HealthCheckResult.Error, $"{message} {ex.Message}", "#unable-to-communicate-with-download-client");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,10 +35,10 @@ namespace NzbDrone.Core.HealthCheck.Checks
|
||||||
|
|
||||||
if (backOffProviders.Count == enabledProviders.Count)
|
if (backOffProviders.Count == enabledProviders.Count)
|
||||||
{
|
{
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Error, "All download clients are unavailable due to failures", "#download_clients_are_unavailable_due_to_failures");
|
return new HealthCheck(GetType(), HealthCheckResult.Error, "All download clients are unavailable due to failures", "#download-clients-are-unavailable-due-to-failures");
|
||||||
}
|
}
|
||||||
|
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Warning, string.Format("Download clients unavailable due to failures: {0}", string.Join(", ", backOffProviders.Select(v => v.Provider.Definition.Name))), "#download_clients_are_unavailable_due_to_failures");
|
return new HealthCheck(GetType(), HealthCheckResult.Warning, string.Format("Download clients unavailable due to failures: {0}", string.Join(", ", backOffProviders.Select(v => v.Provider.Definition.Name))), "#download-clients-are-unavailable-due-to-failures");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,13 +28,13 @@ namespace NzbDrone.Core.HealthCheck.Checks
|
||||||
|
|
||||||
if (!_fingerprintingService.IsSetup())
|
if (!_fingerprintingService.IsSetup())
|
||||||
{
|
{
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Warning, $"fpcalc could not be found. Audio fingerprinting disabled.", "#fpcalc_missing");
|
return new HealthCheck(GetType(), HealthCheckResult.Warning, $"fpcalc could not be found. Audio fingerprinting disabled.", "#fpcalc-missing");
|
||||||
}
|
}
|
||||||
|
|
||||||
var fpcalcVersion = _fingerprintingService.FpcalcVersion();
|
var fpcalcVersion = _fingerprintingService.FpcalcVersion();
|
||||||
if (fpcalcVersion == null || fpcalcVersion < new Version("1.4.3"))
|
if (fpcalcVersion == null || fpcalcVersion < new Version("1.4.3"))
|
||||||
{
|
{
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Warning, $"You have an old version of fpcalc. Please upgrade to 1.4.3.", "#fpcalc_upgrade");
|
return new HealthCheck(GetType(), HealthCheckResult.Warning, $"You have an old version of fpcalc. Please upgrade to 1.4.3.", "#fpcalc-upgrade");
|
||||||
}
|
}
|
||||||
|
|
||||||
return new HealthCheck(GetType());
|
return new HealthCheck(GetType());
|
||||||
|
|
|
@ -35,10 +35,10 @@ namespace NzbDrone.Core.HealthCheck.Checks
|
||||||
|
|
||||||
if (backOffProviders.Count == enabledProviders.Count)
|
if (backOffProviders.Count == enabledProviders.Count)
|
||||||
{
|
{
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Error, "All import lists are unavailable due to failures", "#import_lists_are_unavailable_due_to_failures");
|
return new HealthCheck(GetType(), HealthCheckResult.Error, "All import lists are unavailable due to failures", "#import-lists-are-unavailable-due-to-failures");
|
||||||
}
|
}
|
||||||
|
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Warning, string.Format("Import lists unavailable due to failures: {0}", string.Join(", ", backOffProviders.Select(v => v.ImportList.Definition.Name))), "#import_lists_are_unavailable_due_to_failures");
|
return new HealthCheck(GetType(), HealthCheckResult.Warning, string.Format("Import lists unavailable due to failures: {0}", string.Join(", ", backOffProviders.Select(v => v.ImportList.Definition.Name))), "#import-lsits-are-unavailable-due-to-failures");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,14 +42,14 @@ namespace NzbDrone.Core.HealthCheck.Checks
|
||||||
return new HealthCheck(GetType(),
|
return new HealthCheck(GetType(),
|
||||||
HealthCheckResult.Error,
|
HealthCheckResult.Error,
|
||||||
"All indexers are unavailable due to failures for more than 6 hours",
|
"All indexers are unavailable due to failures for more than 6 hours",
|
||||||
"#indexers_are_unavailable_due_to_failures");
|
"#indexers-are-unavailable-due-to-failures");
|
||||||
}
|
}
|
||||||
|
|
||||||
return new HealthCheck(GetType(),
|
return new HealthCheck(GetType(),
|
||||||
HealthCheckResult.Warning,
|
HealthCheckResult.Warning,
|
||||||
string.Format("Indexers unavailable due to failures for more than 6 hours: {0}",
|
string.Format("Indexers unavailable due to failures for more than 6 hours: {0}",
|
||||||
string.Join(", ", backOffProviders.Select(v => v.Provider.Definition.Name))),
|
string.Join(", ", backOffProviders.Select(v => v.Provider.Definition.Name))),
|
||||||
"#indexers_are_unavailable_due_to_failures");
|
"#indexers-are-unavailable-due-to-failures");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,10 +39,10 @@ namespace NzbDrone.Core.HealthCheck.Checks
|
||||||
|
|
||||||
if (backOffProviders.Count == enabledProviders.Count)
|
if (backOffProviders.Count == enabledProviders.Count)
|
||||||
{
|
{
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Error, "All indexers are unavailable due to failures", "#indexers_are_unavailable_due_to_failures");
|
return new HealthCheck(GetType(), HealthCheckResult.Error, "All indexers are unavailable due to failures", "#indexers-are-unavailable-due-to-failures");
|
||||||
}
|
}
|
||||||
|
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Warning, string.Format("Indexers unavailable due to failures: {0}", string.Join(", ", backOffProviders.Select(v => v.Provider.Definition.Name))), "#indexers_are_unavailable_due_to_failures");
|
return new HealthCheck(GetType(), HealthCheckResult.Warning, string.Format("Indexers unavailable due to failures: {0}", string.Join(", ", backOffProviders.Select(v => v.Provider.Definition.Name))), "#indexers-are-unavailable-due-to-failures");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,7 @@ namespace NzbDrone.Core.HealthCheck.Checks
|
||||||
|
|
||||||
if (mounts.Any())
|
if (mounts.Any())
|
||||||
{
|
{
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Error, "Mount containing a artist path is mounted read-only: " + string.Join(",", mounts.Select(m => m.Name)), "#artist_mount_ro");
|
return new HealthCheck(GetType(), HealthCheckResult.Error, "Mount containing a artist path is mounted read-only: " + string.Join(",", mounts.Select(m => m.Name)), "#artist-mount-ro");
|
||||||
}
|
}
|
||||||
|
|
||||||
return new HealthCheck(GetType());
|
return new HealthCheck(GetType());
|
||||||
|
|
|
@ -64,15 +64,15 @@ namespace NzbDrone.Core.HealthCheck.Checks
|
||||||
{
|
{
|
||||||
if (!status.IsLocalhost)
|
if (!status.IsLocalhost)
|
||||||
{
|
{
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Error, $"Remote download client {client.Definition.Name} places downloads in {folder.FullPath} but this is not a valid {_osInfo.Name} path. Review your remote path mappings and download client settings.", "#bad_remote_path_mapping");
|
return new HealthCheck(GetType(), HealthCheckResult.Error, $"Remote download client {client.Definition.Name} places downloads in {folder.FullPath} but this is not a valid {_osInfo.Name} path. Review your remote path mappings and download client settings.", "#bad-remote-path-mapping");
|
||||||
}
|
}
|
||||||
else if (_osInfo.IsDocker)
|
else if (_osInfo.IsDocker)
|
||||||
{
|
{
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Error, $"You are using docker; download client {client.Definition.Name} places downloads in {folder.FullPath} but this is not a valid {_osInfo.Name} path. Review your remote path mappings and download client settings.", "#docker_bad_remote_path_mapping");
|
return new HealthCheck(GetType(), HealthCheckResult.Error, $"You are using docker; download client {client.Definition.Name} places downloads in {folder.FullPath} but this is not a valid {_osInfo.Name} path. Review your remote path mappings and download client settings.", "#docker-bad-remote-path-mapping");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Error, $"Local download client {client.Definition.Name} places downloads in {folder.FullPath} but this is not a valid {_osInfo.Name} path. Review your download client settings.", "#bad_download_client_settings");
|
return new HealthCheck(GetType(), HealthCheckResult.Error, $"Local download client {client.Definition.Name} places downloads in {folder.FullPath} but this is not a valid {_osInfo.Name} path. Review your download client settings.", "#bad-download-client-settings");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -80,15 +80,15 @@ namespace NzbDrone.Core.HealthCheck.Checks
|
||||||
{
|
{
|
||||||
if (_osInfo.IsDocker)
|
if (_osInfo.IsDocker)
|
||||||
{
|
{
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Error, $"You are using docker; download client {client.Definition.Name} places downloads in {folder.FullPath} but this directory does not appear to exist inside the container. Review your remote path mappings and container volume settings.", "#docker_bad_remote_path_mapping");
|
return new HealthCheck(GetType(), HealthCheckResult.Error, $"You are using docker; download client {client.Definition.Name} places downloads in {folder.FullPath} but this directory does not appear to exist inside the container. Review your remote path mappings and container volume settings.", "#docker-bad-remote-path-mapping");
|
||||||
}
|
}
|
||||||
else if (!status.IsLocalhost)
|
else if (!status.IsLocalhost)
|
||||||
{
|
{
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Error, $"Remote download client {client.Definition.Name} places downloads in {folder.FullPath} but this directory does not appear to exist. Likely missing or incorrect remote path mapping.", "#bad_remote_path_mapping");
|
return new HealthCheck(GetType(), HealthCheckResult.Error, $"Remote download client {client.Definition.Name} places downloads in {folder.FullPath} but this directory does not appear to exist. Likely missing or incorrect remote path mapping.", "#bad-remote-path-mapping");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Error, $"Download client {client.Definition.Name} places downloads in {folder.FullPath} but Lidarr cannot see this directory. You may need to adjust the folder's permissions.", "#permissions_error");
|
return new HealthCheck(GetType(), HealthCheckResult.Error, $"Download client {client.Definition.Name} places downloads in {folder.FullPath} but Lidarr cannot see this directory. You may need to adjust the folder's permissions.", "#permissions-error");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -124,7 +124,7 @@ namespace NzbDrone.Core.HealthCheck.Checks
|
||||||
var trackPath = failureMessage.TrackInfo.Path;
|
var trackPath = failureMessage.TrackInfo.Path;
|
||||||
if (_diskProvider.FileExists(trackPath))
|
if (_diskProvider.FileExists(trackPath))
|
||||||
{
|
{
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Error, $"Lidarr can see but not access downloaded track {trackPath}. Likely permissions error.", "#permissions_error");
|
return new HealthCheck(GetType(), HealthCheckResult.Error, $"Lidarr can see but not access downloaded track {trackPath}. Likely permissions error.", "#permissions-error");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -153,36 +153,36 @@ namespace NzbDrone.Core.HealthCheck.Checks
|
||||||
{
|
{
|
||||||
if (!status.IsLocalhost)
|
if (!status.IsLocalhost)
|
||||||
{
|
{
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Error, $"Remote download client {client.Definition.Name} reported files in {dlpath} but this is not a valid {_osInfo.Name} path. Review your remote path mappings and download client settings.", "#bad_remote_path_mapping");
|
return new HealthCheck(GetType(), HealthCheckResult.Error, $"Remote download client {client.Definition.Name} reported files in {dlpath} but this is not a valid {_osInfo.Name} path. Review your remote path mappings and download client settings.", "#bad-remote-path-mapping");
|
||||||
}
|
}
|
||||||
else if (_osInfo.IsDocker)
|
else if (_osInfo.IsDocker)
|
||||||
{
|
{
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Error, $"You are using docker; download client {client.Definition.Name} reported files in {dlpath} but this is not a valid {_osInfo.Name} path. Review your remote path mappings and download client settings.", "#docker_bad_remote_path_mapping");
|
return new HealthCheck(GetType(), HealthCheckResult.Error, $"You are using docker; download client {client.Definition.Name} reported files in {dlpath} but this is not a valid {_osInfo.Name} path. Review your remote path mappings and download client settings.", "#docker-bad-remote-path-mapping");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Error, $"Local download client {client.Definition.Name} reported files in {dlpath} but this is not a valid {_osInfo.Name} path. Review your download client settings.", "#bad_download_client_settings");
|
return new HealthCheck(GetType(), HealthCheckResult.Error, $"Local download client {client.Definition.Name} reported files in {dlpath} but this is not a valid {_osInfo.Name} path. Review your download client settings.", "#bad-download-client-settings");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_diskProvider.FolderExists(dlpath))
|
if (_diskProvider.FolderExists(dlpath))
|
||||||
{
|
{
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Error, $"Lidarr can see but not access download directory {dlpath}. Likely permissions error.", "#permissions_error");
|
return new HealthCheck(GetType(), HealthCheckResult.Error, $"Lidarr can see but not access download directory {dlpath}. Likely permissions error.", "#permissions-error");
|
||||||
}
|
}
|
||||||
|
|
||||||
// if it's a remote client/docker, likely missing path mappings
|
// if it's a remote client/docker, likely missing path mappings
|
||||||
if (_osInfo.IsDocker)
|
if (_osInfo.IsDocker)
|
||||||
{
|
{
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Error, $"You are using docker; download client {client.Definition.Name} reported files in {dlpath} but this directory does not appear to exist inside the container. Review your remote path mappings and container volume settings.", "#docker_bad_remote_path_mapping");
|
return new HealthCheck(GetType(), HealthCheckResult.Error, $"You are using docker; download client {client.Definition.Name} reported files in {dlpath} but this directory does not appear to exist inside the container. Review your remote path mappings and container volume settings.", "#docker-bad-remote-path-mapping");
|
||||||
}
|
}
|
||||||
else if (!status.IsLocalhost)
|
else if (!status.IsLocalhost)
|
||||||
{
|
{
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Error, $"Remote download client {client.Definition.Name} reported files in {dlpath} but this directory does not appear to exist. Likely missing remote path mapping.", "#bad_remote_path_mapping");
|
return new HealthCheck(GetType(), HealthCheckResult.Error, $"Remote download client {client.Definition.Name} reported files in {dlpath} but this directory does not appear to exist. Likely missing remote path mapping.", "#bad-remote-path-mapping");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// path mappings shouldn't be needed locally so probably a permissions issue
|
// path mappings shouldn't be needed locally so probably a permissions issue
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Error, $"Download client {client.Definition.Name} reported files in {dlpath} but Lidarr cannot see this directory. You may need to adjust the folder's permissions.", "#permissions_error");
|
return new HealthCheck(GetType(), HealthCheckResult.Error, $"Download client {client.Definition.Name} reported files in {dlpath} but Lidarr cannot see this directory. You may need to adjust the folder's permissions.", "#permissions-error");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (DownloadClientException ex)
|
catch (DownloadClientException ex)
|
||||||
|
|
|
@ -48,11 +48,11 @@ namespace NzbDrone.Core.HealthCheck.Checks
|
||||||
{
|
{
|
||||||
if (missingRootFolders.Count == 1)
|
if (missingRootFolders.Count == 1)
|
||||||
{
|
{
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Error, "Missing root folder: " + missingRootFolders.First(), "#missing_root_folder");
|
return new HealthCheck(GetType(), HealthCheckResult.Error, "Missing root folder: " + missingRootFolders.First(), "#missing-root-folder");
|
||||||
}
|
}
|
||||||
|
|
||||||
var message = string.Format("Multiple root folders are missing: {0}", string.Join(" | ", missingRootFolders));
|
var message = string.Format("Multiple root folders are missing: {0}", string.Join(" | ", missingRootFolders));
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Error, message, "#missing_root_folder");
|
return new HealthCheck(GetType(), HealthCheckResult.Error, message, "#missing-root-folder");
|
||||||
}
|
}
|
||||||
|
|
||||||
return new HealthCheck(GetType());
|
return new HealthCheck(GetType());
|
||||||
|
|
|
@ -34,12 +34,12 @@ namespace NzbDrone.Core.HealthCheck
|
||||||
|
|
||||||
private static string MakeWikiFragment(string message)
|
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)
|
private static HttpUri MakeWikiUrl(string fragment)
|
||||||
{
|
{
|
||||||
return new HttpUri("https://wiki.servarr.com/Lidarr_System") + new HttpUri(fragment);
|
return new HttpUri("https://wiki.servarr.com/lidarr/system") + new HttpUri(fragment);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ namespace NzbDrone.Core.Notifications.CustomScript
|
||||||
|
|
||||||
public override string Name => "Custom Script";
|
public override string Name => "Custom Script";
|
||||||
|
|
||||||
public override string Link => "https://wiki.servarr.com/Lidarr_Settings#Connections";
|
public override string Link => "https://wiki.servarr.com/lidarr/custom-scripts";
|
||||||
|
|
||||||
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);
|
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);
|
||||||
|
|
||||||
|
|
|
@ -38,10 +38,10 @@ namespace NzbDrone.Core.Notifications.Twitter
|
||||||
AuthorizeNotification = "startOAuth";
|
AuthorizeNotification = "startOAuth";
|
||||||
}
|
}
|
||||||
|
|
||||||
[FieldDefinition(0, Label = "Consumer Key", Privacy = PrivacyLevel.ApiKey, HelpText = "Consumer key from a Twitter application", HelpLink = "https://wiki.servarr.com/Useful_Tools#Twitter_Connect")]
|
[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; }
|
public string ConsumerKey { get; set; }
|
||||||
|
|
||||||
[FieldDefinition(1, Label = "Consumer Secret", Privacy = PrivacyLevel.ApiKey, HelpText = "Consumer secret from a Twitter application", HelpLink = "https://wiki.servarr.com/Useful_Tools#Twitter_Connect")]
|
[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; }
|
public string ConsumerSecret { get; set; }
|
||||||
|
|
||||||
[FieldDefinition(2, Label = "Access Token", Privacy = PrivacyLevel.ApiKey, Advanced = true)]
|
[FieldDefinition(2, Label = "Access Token", Privacy = PrivacyLevel.ApiKey, Advanced = true)]
|
||||||
|
|
|
@ -16,7 +16,7 @@ namespace NzbDrone.Core.Notifications.Webhook
|
||||||
_proxy = proxy;
|
_proxy = proxy;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Link => "https://wiki.servarr.com/Lidarr_Settings#Connect";
|
public override string Link => "https://wiki.servarr.com/lidarr/settings#connections";
|
||||||
|
|
||||||
public override void OnGrab(GrabMessage message)
|
public override void OnGrab(GrabMessage message)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue