コード例 #1
0
        public virtual Decision IsSatisfiedBy(RemoteEpisode subject, SearchCriteriaBase searchCriteria)
        {
            if (searchCriteria != null)
            {
                return(Decision.Accept());
            }

            foreach (var file in subject.Episodes.Where(c => c.EpisodeFileId != 0).Select(c => c.EpisodeFile.Value))
            {
                if (_qualityUpgradableSpecification.IsRevisionUpgrade(file.Quality, subject.ParsedEpisodeInfo.Quality))
                {
                    if (file.DateAdded < DateTime.Today.AddDays(-7))
                    {
                        _logger.Debug("Proper for old file, rejecting: {0}", subject);
                        return(Decision.Reject("Proper for old file"));
                    }

                    if (!_configService.AutoDownloadPropers)
                    {
                        _logger.Debug("Auto downloading of propers is disabled");
                        return(Decision.Reject("Proper downloading is disabled"));
                    }
                }
            }

            return(Decision.Accept());
        }
コード例 #2
0
        public virtual Decision IsSatisfiedBy(RemoteEpisode subject, SearchCriteriaBase searchCriteria)
        {
            var releaseGroup = subject.ParsedEpisodeInfo.ReleaseGroup;

            if (subject.Series.SeriesType != SeriesTypes.Anime)
            {
                return(Decision.Accept());
            }

            foreach (var file in subject.Episodes.Where(c => c.EpisodeFileId != 0).Select(c => c.EpisodeFile.Value))
            {
                if (_qualityUpgradableSpecification.IsRevisionUpgrade(file.Quality, subject.ParsedEpisodeInfo.Quality))
                {
                    if (file.ReleaseGroup.IsNullOrWhiteSpace())
                    {
                        _logger.Debug("Unable to compare release group, existing file's release group is unknown");
                        return(Decision.Reject("Existing release group is unknown"));
                    }

                    if (releaseGroup.IsNullOrWhiteSpace())
                    {
                        _logger.Debug("Unable to compare release group, release's release group is unknown");
                        return(Decision.Reject("Release group is unknown"));
                    }

                    if (file.ReleaseGroup != releaseGroup)
                    {
                        _logger.Debug("Existing Release group is: {0} - release's release group is: {1}", file.ReleaseGroup, releaseGroup);
                        return(Decision.Reject("{0} does not match existing release group {1}", releaseGroup, file.ReleaseGroup));
                    }
                }
            }

            return(Decision.Accept());
        }
コード例 #3
0
        public virtual Decision IsSatisfiedBy(RemoteMovie subject, SearchCriteriaBase searchCriteria)
        {
            if (searchCriteria != null)
            {
                return(Decision.Accept());
            }

            if (subject.Movie.MovieFile == null)
            {
                return(Decision.Accept());
            }

            var file = subject.Movie.MovieFile;

            if (_qualityUpgradableSpecification.IsRevisionUpgrade(file.Quality, subject.ParsedMovieInfo.Quality))
            {
                if (file.DateAdded < DateTime.Today.AddDays(-7))
                {
                    _logger.Debug("Proper for old file, rejecting: {0}", subject);
                    return(Decision.Reject("Proper for old file"));
                }

                if (!_configService.AutoDownloadPropers)
                {
                    _logger.Debug("Auto downloading of propers is disabled");
                    return(Decision.Reject("Proper downloading is disabled"));
                }
            }


            return(Decision.Accept());
        }