Renamed AiredAfter to CustomStartDate

This commit is contained in:
Mark McDowall
2012-09-20 08:37:40 -07:00
parent 15e4a286d1
commit a7a0a25029
21 changed files with 93 additions and 71 deletions
@@ -0,0 +1,21 @@
using System;
using System.Data;
using Migrator.Framework;
using NzbDrone.Common;
namespace NzbDrone.Core.Datastore.Migrations
{
[Migration(20120919)]
public class Migration20120919 : NzbDroneMigration
{
protected override void MainDbUpgrade()
{
Database.AddColumn("Series", new Column("CustomStartDate", DbType.DateTime, ColumnProperty.Null));
Database.ExecuteNonQuery("UPDATE Series SET CustomStartDate = DownloadEpisodesAiredAfter");
Database.RemoveColumn("Series", "DownloadEpisodesAiredAfter");
}
}
}
+1 -1
View File
@@ -18,6 +18,6 @@ namespace NzbDrone.Core.Model
Skipped = 11,
Failure = 12,
ReleaseGroupNotWanted = 13,
EpisodeAiredBeforeCutoff = 14
AiredAfterCustomStartDate = 14
}
}
+2 -1
View File
@@ -227,6 +227,7 @@
<Compile Include="Datastore\MigrationLogger.cs" />
<Compile Include="Datastore\MigrationsHelper.cs" />
<Compile Include="Datastore\CustomeMapper.cs" />
<Compile Include="Datastore\Migrations\Migration20120919.cs" />
<Compile Include="Datastore\Migrations\Migration20120918.cs" />
<Compile Include="Datastore\Migrations\Migration20120802.cs" />
<Compile Include="Datastore\Migrations\Migration20120727.cs" />
@@ -292,7 +293,7 @@
<Compile Include="Model\Xbmc\IconType.cs" />
<Compile Include="Providers\BannerProvider.cs" />
<Compile Include="Providers\DecisionEngine\AllowedReleaseGroupSpecification.cs" />
<Compile Include="Providers\DecisionEngine\EpisodeAiredAfterCutoffSpecification.cs" />
<Compile Include="Providers\DecisionEngine\CustomStartDateSpecification.cs" />
<Compile Include="Providers\DownloadClients\PneumaticProvider.cs" />
<Compile Include="Providers\Indexer\NzbClub.cs" />
<Compile Include="Providers\Indexer\NzbIndex.cs" />
@@ -14,14 +14,14 @@ namespace NzbDrone.Core.Providers.DecisionEngine
private readonly AlreadyInQueueSpecification _alreadyInQueueSpecification;
private readonly RetentionSpecification _retentionSpecification;
private readonly AllowedReleaseGroupSpecification _allowedReleaseGroupSpecification;
private readonly EpisodeAiredAfterCutoffSpecification _episodeAiredAfterCutoffSpecification;
private readonly CustomStartDateSpecification _customStartDateSpecification;
private static readonly Logger logger = LogManager.GetCurrentClassLogger();
[Inject]
public AllowedDownloadSpecification(QualityAllowedByProfileSpecification qualityAllowedByProfileSpecification,
UpgradeDiskSpecification upgradeDiskSpecification, AcceptableSizeSpecification acceptableSizeSpecification,
AlreadyInQueueSpecification alreadyInQueueSpecification, RetentionSpecification retentionSpecification,
AllowedReleaseGroupSpecification allowedReleaseGroupSpecification, EpisodeAiredAfterCutoffSpecification episodeAiredAfterCutoffSpecification)
AllowedReleaseGroupSpecification allowedReleaseGroupSpecification, CustomStartDateSpecification customStartDateSpecification)
{
_qualityAllowedByProfileSpecification = qualityAllowedByProfileSpecification;
_upgradeDiskSpecification = upgradeDiskSpecification;
@@ -29,7 +29,7 @@ namespace NzbDrone.Core.Providers.DecisionEngine
_alreadyInQueueSpecification = alreadyInQueueSpecification;
_retentionSpecification = retentionSpecification;
_allowedReleaseGroupSpecification = allowedReleaseGroupSpecification;
_episodeAiredAfterCutoffSpecification = episodeAiredAfterCutoffSpecification;
_customStartDateSpecification = customStartDateSpecification;
}
public AllowedDownloadSpecification()
@@ -39,7 +39,7 @@ namespace NzbDrone.Core.Providers.DecisionEngine
public virtual ReportRejectionType IsSatisfiedBy(EpisodeParseResult subject)
{
if (!_qualityAllowedByProfileSpecification.IsSatisfiedBy(subject)) return ReportRejectionType.QualityNotWanted;
if (!_episodeAiredAfterCutoffSpecification.IsSatisfiedBy(subject)) return ReportRejectionType.EpisodeAiredBeforeCutoff;
if (!_customStartDateSpecification.IsSatisfiedBy(subject)) return ReportRejectionType.AiredAfterCustomStartDate;
if (!_upgradeDiskSpecification.IsSatisfiedBy(subject)) return ReportRejectionType.ExistingQualityIsEqualOrBetter;
if (!_retentionSpecification.IsSatisfiedBy(subject)) return ReportRejectionType.Retention;
if (!_acceptableSizeSpecification.IsSatisfiedBy(subject)) return ReportRejectionType.Size;
@@ -5,25 +5,25 @@ using NzbDrone.Core.Model;
namespace NzbDrone.Core.Providers.DecisionEngine
{
public class EpisodeAiredAfterCutoffSpecification
public class CustomStartDateSpecification
{
private readonly EpisodeProvider _episodeProvider;
private static readonly Logger logger = LogManager.GetCurrentClassLogger();
[Inject]
public EpisodeAiredAfterCutoffSpecification(EpisodeProvider episodeProvider)
public CustomStartDateSpecification(EpisodeProvider episodeProvider)
{
_episodeProvider = episodeProvider;
}
public EpisodeAiredAfterCutoffSpecification()
public CustomStartDateSpecification()
{
}
public virtual bool IsSatisfiedBy(EpisodeParseResult subject)
{
if (!subject.Series.DownloadEpisodesAiredAfter.HasValue)
if (!subject.Series.CustomStartDate.HasValue)
{
logger.Debug("{0} does not restrict downloads before date.", subject.Series.Title);
return true;
@@ -31,13 +31,13 @@ namespace NzbDrone.Core.Providers.DecisionEngine
var episodes = _episodeProvider.GetEpisodesByParseResult(subject);
if (episodes.Any(episode => episode.AirDate > subject.Series.DownloadEpisodesAiredAfter.Value))
if (episodes.Any(episode => episode.AirDate > subject.Series.CustomStartDate.Value))
{
logger.Debug("One or more episodes aired after cutoff, downloading.");
return true;
}
logger.Debug("Episodes aired before cutoff date: {0}", subject.Series.DownloadEpisodesAiredAfter);
logger.Debug("Episodes aired before cutoff date: {0}", subject.Series.CustomStartDate);
return false;
}
}
+2 -2
View File
@@ -132,7 +132,7 @@ namespace NzbDrone.Core.Providers
repoSeries.BacklogSetting = BacklogSettingType.Inherit;
if (airedAfter.HasValue)
repoSeries.DownloadEpisodesAiredAfter = airedAfter;
repoSeries.CustomStartDate = airedAfter;
_database.Insert(repoSeries);
}
@@ -232,7 +232,7 @@ namespace NzbDrone.Core.Providers
series.SeasonFolder = edited.SeasonFolder;
series.BacklogSetting = edited.BacklogSetting;
series.Path = edited.Path;
series.DownloadEpisodesAiredAfter = edited.DownloadEpisodesAiredAfter;
series.CustomStartDate = edited.CustomStartDate;
}
_database.UpdateMany(allSeries);
+1 -1
View File
@@ -48,7 +48,7 @@ namespace NzbDrone.Core.Repository
public string Network { get; set; }
public DateTime? DownloadEpisodesAiredAfter { get; set; }
public DateTime? CustomStartDate { get; set; }
/// <summary>
/// Gets or sets a value indicating whether this <see cref="Series"/> is hidden.