diff --git a/server/api/servarr/sonarr.ts b/server/api/servarr/sonarr.ts index 9dec8ebf95..cb2b26dc62 100644 --- a/server/api/servarr/sonarr.ts +++ b/server/api/servarr/sonarr.ts @@ -49,6 +49,7 @@ export interface SonarrSeries { languageProfileId: number; seasonFolder: boolean; monitored: boolean; + monitorNewItems: 'all' | 'none'; useSceneNumbering: boolean; runtime: number; tvdbId: number; @@ -98,6 +99,7 @@ export interface AddSeriesOptions { tags?: number[]; seriesType: SonarrSeries['seriesType']; monitored?: boolean; + monitorNewItems?: SonarrSeries['monitorNewItems']; searchNow?: boolean; } @@ -241,6 +243,7 @@ class SonarrAPI extends ServarrBase<{ tags: options.tags, seasonFolder: options.seasonFolder, monitored: options.monitored, + monitorNewItems: options.monitorNewItems, rootFolderPath: options.rootFolderPath, seriesType: options.seriesType, addOptions: { diff --git a/server/lib/settings/index.ts b/server/lib/settings/index.ts index 2491577d79..be36b51e3b 100644 --- a/server/lib/settings/index.ts +++ b/server/lib/settings/index.ts @@ -93,6 +93,7 @@ export interface SonarrSettings extends DVRSettings { activeLanguageProfileId?: number; animeTags?: number[]; enableSeasonFolders: boolean; + monitorNewItems: 'all' | 'none'; } interface Quota { diff --git a/server/subscriber/MediaRequestSubscriber.ts b/server/subscriber/MediaRequestSubscriber.ts index 5c1b9bb022..a63a1e79ce 100644 --- a/server/subscriber/MediaRequestSubscriber.ts +++ b/server/subscriber/MediaRequestSubscriber.ts @@ -664,6 +664,7 @@ export class MediaRequestSubscriber seriesType, tags, monitored: true, + monitorNewItems: sonarrSettings.monitorNewItems, searchNow: !sonarrSettings.preventSearch, }; diff --git a/src/components/Settings/SonarrModal/index.tsx b/src/components/Settings/SonarrModal/index.tsx index c497bb6a34..ec31d274b5 100644 --- a/src/components/Settings/SonarrModal/index.tsx +++ b/src/components/Settings/SonarrModal/index.tsx @@ -78,6 +78,7 @@ const messages = defineMessages('components.Settings.SonarrModal', { animeTags: 'Anime Tags', notagoptions: 'No tags.', selecttags: 'Select tags', + monitorNewItems: 'Monitor New Seasons', }); interface SonarrModalProps { @@ -247,6 +248,7 @@ const SonarrModal = ({ onClose, sonarr, onSave }: SonarrModalProps) => { syncEnabled: sonarr?.syncEnabled ?? false, enableSearch: !sonarr?.preventSearch, tagRequests: sonarr?.tagRequests ?? false, + monitorNewItems: sonarr?.monitorNewItems ?? 'all', }} validationSchema={SonarrSettingsSchema} onSubmit={async (values) => { @@ -290,6 +292,7 @@ const SonarrModal = ({ onClose, sonarr, onSave }: SonarrModalProps) => { syncEnabled: values.syncEnabled, preventSearch: !values.enableSearch, tagRequests: values.tagRequests, + monitorNewItems: values.monitorNewItems, }; if (!sonarr) { await axios.post('/api/v1/settings/sonarr', submission); @@ -964,6 +967,27 @@ const SonarrModal = ({ onClose, sonarr, onSave }: SonarrModalProps) => { /> +
+ +
+
+ + + + +
+
+ {errors.monitorNewItems && touched.monitorNewItems && ( +
{errors.monitorNewItems}
+ )} +