2018-03-14 20:41:36 +00:00
|
|
|
using System;
|
2017-01-02 17:05:55 +00:00
|
|
|
using NLog;
|
|
|
|
|
2018-03-14 20:41:36 +00:00
|
|
|
namespace NzbDrone.Core.Movies
|
2017-01-02 17:05:55 +00:00
|
|
|
{
|
|
|
|
public interface ICheckIfMovieShouldBeRefreshed
|
|
|
|
{
|
2022-03-20 15:55:47 +00:00
|
|
|
bool ShouldRefresh(MovieMetadata movie);
|
2017-01-02 17:05:55 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
public class ShouldRefreshMovie : ICheckIfMovieShouldBeRefreshed
|
|
|
|
{
|
|
|
|
private readonly Logger _logger;
|
|
|
|
|
2018-03-14 20:41:36 +00:00
|
|
|
public ShouldRefreshMovie(Logger logger)
|
2017-01-02 17:05:55 +00:00
|
|
|
{
|
|
|
|
_logger = logger;
|
|
|
|
}
|
|
|
|
|
2022-03-20 15:55:47 +00:00
|
|
|
public bool ShouldRefresh(MovieMetadata movie)
|
2017-01-02 17:05:55 +00:00
|
|
|
{
|
2017-08-09 20:14:01 +00:00
|
|
|
//return false;
|
2019-06-30 01:44:43 +00:00
|
|
|
if (movie.LastInfoSync < DateTime.UtcNow.AddDays(-180))
|
2017-01-02 17:05:55 +00:00
|
|
|
{
|
2019-06-30 01:44:43 +00:00
|
|
|
_logger.Trace("Movie {0} last updated more than 180 days ago, should refresh.", movie.Title);
|
2017-01-02 17:05:55 +00:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2019-06-30 01:44:43 +00:00
|
|
|
if (movie.LastInfoSync >= DateTime.UtcNow.AddHours(-12))
|
2017-01-02 17:05:55 +00:00
|
|
|
{
|
2019-06-30 01:44:43 +00:00
|
|
|
_logger.Trace("Movie {0} last updated less than 12 hours ago, should not be refreshed.", movie.Title);
|
2017-01-02 17:05:55 +00:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2017-07-28 14:59:06 +00:00
|
|
|
if (movie.Status == MovieStatusType.Announced || movie.Status == MovieStatusType.InCinemas)
|
2017-01-02 17:05:55 +00:00
|
|
|
{
|
2019-06-30 01:44:43 +00:00
|
|
|
_logger.Trace("Movie {0} is announced or in cinemas, should refresh.", movie.Title);
|
2017-01-02 17:05:55 +00:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2017-07-28 14:59:06 +00:00
|
|
|
if (movie.Status == MovieStatusType.Released && movie.PhysicalReleaseDate() >= DateTime.UtcNow.AddDays(-30))
|
|
|
|
{
|
|
|
|
_logger.Trace("Movie {0} is released since less than 30 days, should refresh", movie.Title);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
_logger.Trace("Movie {0} came out long ago, should not be refreshed.", movie.Title);
|
2017-01-02 17:05:55 +00:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|