Fixed: Search on Artist Add, Monitor None Option on Artist Add

pull/145/head
Qstick 7 years ago
parent f7f6ad159c
commit 9dcf90d241

@ -1,68 +1,31 @@
import _ from 'lodash'; import _ from 'lodash';
function monitorSeasons(seasons, startingSeason) { function getMonitoringOptions(monitor) {
seasons.forEach((season) => {
if (season.seasonNumber >= startingSeason) {
season.monitored = true;
} else {
season.monitored = false;
}
});
}
function getMonitoringOptions(albums, monitor) {
if (!albums.length) {
return {
albums: [],
options: {
ignoreEpisodesWithFiles: false,
ignoreEpisodesWithoutFiles: false
}
};
}
const firstSeason = _.minBy(_.reject(albums, { seasonNumber: 0 }), 'seasonNumber').seasonNumber;
const lastSeason = _.maxBy(albums, 'seasonNumber').seasonNumber;
monitorSeasons(albums, firstSeason);
const monitoringOptions = { const monitoringOptions = {
ignoreEpisodesWithFiles: false, ignoreAlbumsWithFiles: false,
ignoreEpisodesWithoutFiles: false ignoreAlbumsWithoutFiles: false,
monitored: true
}; };
switch (monitor) { switch (monitor) {
case 'future': case 'future':
monitoringOptions.ignoreEpisodesWithFiles = true; monitoringOptions.ignoreAlbumsWithFiles = true;
monitoringOptions.ignoreEpisodesWithoutFiles = true; monitoringOptions.ignoreAlbumsWithoutFiles = true;
break;
case 'latest':
monitorSeasons(albums, lastSeason);
break;
case 'first':
monitorSeasons(albums, lastSeason + 1);
_.find(albums, { seasonNumber: firstSeason }).monitored = true;
break; break;
case 'missing': case 'missing':
monitoringOptions.ignoreEpisodesWithFiles = true; monitoringOptions.ignoreAlbumsWithFiles = true;
break; break;
case 'existing': case 'existing':
monitoringOptions.ignoreEpisodesWithoutFiles = true; monitoringOptions.ignoreAlbumsWithoutFiles = true;
break; break;
case 'none': case 'none':
monitorSeasons(albums, lastSeason + 1); monitoringOptions.monitored = false;
break; break;
default: default:
break; break;
} }
return { return {
seasons: _.map(albums, (season) => {
return _.pick(season, [
'seasonNumber',
'monitored'
]);
}),
options: monitoringOptions options: monitoringOptions
}; };
} }

@ -14,13 +14,13 @@ function getNewSeries(artist, payload) {
searchForMissingAlbums = false searchForMissingAlbums = false
} = payload; } = payload;
// const { const {
// seasons, // seasons,
// options: addOptions options: addOptions
// } = getMonitoringOptions(artist.seasons, monitor); } = getMonitoringOptions(monitor);
// addOptions.searchForMissingAlbums = searchForMissingAlbums; addOptions.searchForMissingAlbums = searchForMissingAlbums;
// artist.addOptions = addOptions; artist.addOptions = addOptions;
// artist.seasons = seasons; // artist.seasons = seasons;
artist.monitored = true; artist.monitored = true;
artist.qualityProfileId = qualityProfileId; artist.qualityProfileId = qualityProfileId;

@ -7,6 +7,6 @@ namespace NzbDrone.Core.Music
{ {
public class AddArtistOptions : MonitoringOptions public class AddArtistOptions : MonitoringOptions
{ {
public bool SearchForMissingTracks { get; set; } public bool SearchForMissingAlbums { get; set; }
} }
} }

@ -40,7 +40,7 @@ namespace NzbDrone.Core.Music
_logger.Info("[{0}] was recently added, performing post-add actions", artist.Name); _logger.Info("[{0}] was recently added, performing post-add actions", artist.Name);
_albumMonitoredService.SetAlbumMonitoredStatus(artist, artist.AddOptions); _albumMonitoredService.SetAlbumMonitoredStatus(artist, artist.AddOptions);
if (artist.AddOptions.SearchForMissingTracks) if (artist.AddOptions.SearchForMissingAlbums)
{ {
_commandQueueManager.Push(new MissingAlbumSearchCommand(artist.Id)); _commandQueueManager.Push(new MissingAlbumSearchCommand(artist.Id));
} }

@ -1,11 +1,11 @@
using NzbDrone.Core.Datastore; using NzbDrone.Core.Datastore;
namespace NzbDrone.Core.Music namespace NzbDrone.Core.Music
{ {
public class MonitoringOptions : IEmbeddedDocument public class MonitoringOptions : IEmbeddedDocument
{ {
public bool IgnoreTracksWithFiles { get; set; } public bool IgnoreAlbumsWithFiles { get; set; }
public bool IgnoreTracksWithoutFiles { get; set; } public bool IgnoreAlbumsWithoutFiles { get; set; }
public bool Monitored { get; set; } public bool Monitored { get; set; }
} }
} }

@ -32,7 +32,7 @@ namespace NzbDrone.Core.Music
var tracks = _trackService.GetTracksByArtist(album.Id); var tracks = _trackService.GetTracksByArtist(album.Id);
if (monitoringOptions.IgnoreTracksWithFiles) if (monitoringOptions.IgnoreAlbumsWithFiles)
{ {
_logger.Debug("Ignoring Tracks with Files"); _logger.Debug("Ignoring Tracks with Files");
ToggleTracksMonitoredState(tracks.Where(e => e.HasFile), false); ToggleTracksMonitoredState(tracks.Where(e => e.HasFile), false);
@ -44,7 +44,7 @@ namespace NzbDrone.Core.Music
ToggleTracksMonitoredState(tracks.Where(e => e.HasFile), true); ToggleTracksMonitoredState(tracks.Where(e => e.HasFile), true);
} }
if (monitoringOptions.IgnoreTracksWithoutFiles) if (monitoringOptions.IgnoreAlbumsWithoutFiles)
{ {
_logger.Debug("Ignoring Tracks without Files"); _logger.Debug("Ignoring Tracks without Files");
ToggleTracksMonitoredState(tracks.Where(e => !e.HasFile), false); ToggleTracksMonitoredState(tracks.Where(e => !e.HasFile), false);

Loading…
Cancel
Save