You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Lidarr/src/NzbDrone.Core/Music/Utilities/ShouldRefreshAlbum.cs

45 lines
1.3 KiB

using System;
using NLog;
namespace NzbDrone.Core.Music
{
public interface ICheckIfAlbumShouldBeRefreshed
{
bool ShouldRefresh(Album album);
}
public class ShouldRefreshAlbum : ICheckIfAlbumShouldBeRefreshed
{
private readonly Logger _logger;
public ShouldRefreshAlbum(Logger logger)
{
_logger = logger;
}
public bool ShouldRefresh(Album album)
{
if (album.LastInfoSync < DateTime.UtcNow.AddDays(-60))
{
_logger.Trace("Album {0} last updated more than 60 days ago, should refresh.", album.Title);
return true;
}
if (album.LastInfoSync >= DateTime.UtcNow.AddHours(-12))
{
_logger.Trace("Album {0} last updated less than 12 hours ago, should not be refreshed.", album.Title);
return false;
}
if (album.ReleaseDate > DateTime.UtcNow.AddDays(-30))
{
_logger.Trace("album {0} released less than 30 days ago, should refresh.", album.Title);
return true;
}
_logger.Trace("Album {0} released long ago and recently refreshed, should not be refreshed.", album.Title);
return false;
}
}
}