From 20b82146acc8fbe31f6f27165f4662dfa5d2c32b Mon Sep 17 00:00:00 2001
From: bakerboy448 <55419169+bakerboy448@users.noreply.github.com>
Date: Thu, 30 Oct 2025 23:34:07 -0500
Subject: [PATCH] New: Deprecate Readarr
---
.../Applications/AddApplicationItem.js | 26 ++++++++++++++++-
.../Applications/Applications/Application.js | 29 ++++++++++++++++++-
.../EditApplicationModalContent.js | 29 +++++++++++++++++++
.../Applications/Lidarr/LidarrV1Proxy.cs | 2 +-
.../Applications/Radarr/RadarrV3Proxy.cs | 2 +-
.../Applications/Readarr/Readarr.cs | 1 +
.../Applications/Readarr/ReadarrV1Proxy.cs | 2 +-
.../Applications/Sonarr/SonarrV3Proxy.cs | 2 +-
.../Applications/Whisparr/WhisparrV3Proxy.cs | 2 +-
src/NzbDrone.Core/Localization/Core/en.json | 6 ++++
10 files changed, 94 insertions(+), 7 deletions(-)
diff --git a/frontend/src/Settings/Applications/Applications/AddApplicationItem.js b/frontend/src/Settings/Applications/Applications/AddApplicationItem.js
index bae97990b..3eaac45f6 100644
--- a/frontend/src/Settings/Applications/Applications/AddApplicationItem.js
+++ b/frontend/src/Settings/Applications/Applications/AddApplicationItem.js
@@ -1,14 +1,18 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
+import Label from 'Components/Label';
import Button from 'Components/Link/Button';
import Link from 'Components/Link/Link';
import Menu from 'Components/Menu/Menu';
import MenuContent from 'Components/Menu/MenuContent';
-import { sizes } from 'Helpers/Props';
+import { kinds, sizes } from 'Helpers/Props';
import translate from 'Utilities/String/translate';
import AddApplicationPresetMenuItem from './AddApplicationPresetMenuItem';
import styles from './AddApplicationItem.css';
+const DEPRECATED_APPLICATIONS = ['Readarr'];
+const OBSOLETE_APPLICATIONS = [];
+
class AddApplicationItem extends Component {
//
@@ -36,6 +40,8 @@ class AddApplicationItem extends Component {
} = this.props;
const hasPresets = !!presets && !!presets.length;
+ const isDeprecated = DEPRECATED_APPLICATIONS.includes(implementation);
+ const isObsolete = OBSOLETE_APPLICATIONS.includes(implementation);
return (
{implementationName}
+ {
+ isDeprecated &&
+
+ }
+ {
+ isObsolete &&
+
+ }
diff --git a/frontend/src/Settings/Applications/Applications/Application.js b/frontend/src/Settings/Applications/Applications/Application.js
index 086d39ee1..f2ce84ee6 100644
--- a/frontend/src/Settings/Applications/Applications/Application.js
+++ b/frontend/src/Settings/Applications/Applications/Application.js
@@ -10,6 +10,9 @@ import translate from 'Utilities/String/translate';
import EditApplicationModalConnector from './EditApplicationModalConnector';
import styles from './Application.css';
+const DEPRECATED_APPLICATIONS = ['Readarr'];
+const OBSOLETE_APPLICATIONS = [];
+
class Application extends Component {
//
@@ -61,10 +64,13 @@ class Application extends Component {
syncLevel,
fields,
tags,
- tagList
+ tagList,
+ implementation
} = this.props;
const applicationUrl = fields.find((field) => field.name === 'baseUrl')?.value;
+ const isDeprecated = DEPRECATED_APPLICATIONS.includes(implementation);
+ const isObsolete = OBSOLETE_APPLICATIONS.includes(implementation);
return (
+ {
+ isDeprecated &&
+
+ }
+
+ {
+ isObsolete &&
+
+ }
+
{
syncLevel === 'addOnly' &&