Your ROOT_URL in app.ini is https://git.cloudchain.link/ but you are visiting https://dash.bss.nz/open-source-mirrors/Readarr/commit/462eb53897c35587daa862c4a35f270e9d154912
You should set ROOT_URL correctly, otherwise the web may not work correctly.
8 changed files with
75 additions and
4 deletions
@ -40,6 +40,8 @@ namespace NzbDrone.Core.Model
public long Size { get ; set ; }
public int Age { get ; set ; }
public override string ToString ( )
{
if ( AirDate ! = null & & EpisodeNumbers = = null )
@ -261,6 +261,7 @@
<Compile Include= "Model\Xbmc\IconType.cs" />
<Compile Include= "Providers\BackupProvider.cs" />
<Compile Include= "Providers\DecisionEngine\AlreadyInQueueSpecification.cs" />
<Compile Include= "Providers\DecisionEngine\RetentionSpecification.cs" />
<Compile Include= "Providers\DownloadClients\BlackholeProvider.cs" />
<Compile Include= "Providers\Converting\AtomicParsleyProvider.cs" />
<Compile Include= "Providers\Converting\HandbrakeProvider.cs" />
@ -413,6 +413,12 @@ namespace NzbDrone.Core.Providers.Core
set { SetValue ( "AutoIgnorePreviouslyDownloadedEpisodes" , value ) ; }
}
public virtual int Retention
{
get { return GetValueInt ( "Retention" , 0 ) ; }
set { SetValue ( "Retention" , value ) ; }
}
public Guid UGuid
{
get { return Guid . Parse ( GetValue ( "UGuid" , Guid . NewGuid ( ) . ToString ( ) , persist : true ) ) ; }
@ -11,17 +11,19 @@ namespace NzbDrone.Core.Providers.DecisionEngine
private readonly UpgradeDiskSpecification _upgradeDiskSpecification ;
private readonly AcceptableSizeSpecification _acceptableSizeSpecification ;
private readonly AlreadyInQueueSpecification _alreadyInQueueSpecification ;
private readonly RetentionSpecification _retentionSpecification ;
private static readonly Logger logger = LogManager . GetCurrentClassLogger ( ) ;
[Inject]
public AllowedDownloadSpecification ( QualityAllowedByProfileSpecification qualityAllowedByProfileSpecification ,
UpgradeDiskSpecification upgradeDiskSpecification , AcceptableSizeSpecification acceptableSizeSpecification ,
AlreadyInQueueSpecification alreadyInQueueSpecification )
AlreadyInQueueSpecification alreadyInQueueSpecification , RetentionSpecification retentionSpecification )
{
_qualityAllowedByProfileSpecification = qualityAllowedByProfileSpecification ;
_upgradeDiskSpecification = upgradeDiskSpecification ;
_acceptableSizeSpecification = acceptableSizeSpecification ;
_alreadyInQueueSpecification = alreadyInQueueSpecification ;
_retentionSpecification = retentionSpecification ;
}
public AllowedDownloadSpecification ( )
@ -32,6 +34,7 @@ namespace NzbDrone.Core.Providers.DecisionEngine
{
if ( ! _qualityAllowedByProfileSpecification . IsSatisfiedBy ( subject ) ) return false ;
if ( ! _upgradeDiskSpecification . IsSatisfiedBy ( subject ) ) return false ;
if ( ! _retentionSpecification . IsSatisfiedBy ( subject ) ) return false ;
if ( ! _acceptableSizeSpecification . IsSatisfiedBy ( subject ) ) return false ;
if ( _alreadyInQueueSpecification . IsSatisfiedBy ( subject ) ) return false ;
@ -0,0 +1,35 @@
using System.Linq ;
using NLog ;
using NzbDrone.Core.Model ;
using NzbDrone.Core.Providers.Core ;
namespace NzbDrone.Core.Providers.DecisionEngine
{
public class RetentionSpecification
{
private readonly ConfigProvider _configProvider ;
private static readonly Logger logger = LogManager . GetCurrentClassLogger ( ) ;
public RetentionSpecification ( ConfigProvider configProvider )
{
_configProvider = configProvider ;
}
public RetentionSpecification ( )
{
}
public virtual bool IsSatisfiedBy ( EpisodeParseResult subject )
{
logger . Trace ( "Checking if report meets retention requirements. {0}" , subject . Age ) ;
if ( _configProvider . Retention > 0 & & subject . Age > _configProvider . Retention )
{
logger . Trace ( "Quality {0} rejected by user's retention limit" , subject . Age ) ;
return false ;
}
return true ;
}
}
}
@ -67,6 +67,8 @@ namespace NzbDrone.Web.Controllers
{
return View ( new IndexerSettingsModel
{
Retention = _configProvider . Retention ,
NzbMatrixUsername = _configProvider . NzbMatrixUsername ,
NzbMatrixApiKey = _configProvider . NzbMatrixApiKey ,
@ -338,6 +340,8 @@ namespace NzbDrone.Web.Controllers
{
if ( ModelState . IsValid )
{
_configProvider . Retention = data . Retention ;
var nzbsOrgSettings = _indexerProvider . GetSettings ( typeof ( NzbsOrg ) ) ;
nzbsOrgSettings . Enable = data . NzbsOrgEnabled ;
_indexerProvider . SaveSettings ( nzbsOrgSettings ) ;
@ -76,6 +76,12 @@ namespace NzbDrone.Web.Models
[Description("Enable downloading episodes from Newznab Providers")]
public bool NewznabEnabled { get ; set ; }
[Required(ErrorMessage = "Please enter a valid number of days")]
[DataType(DataType.Text)]
[DisplayName("Retention")]
[Description("Usenet provider retention in days (0 = unlimited)")]
public int Retention { get ; set ; }
public List < NewznabDefinition > NewznabDefinitions { get ; set ; }
}
}
@ -9,14 +9,19 @@
{
overflow: auto;
}
.retentionContainer
{
padding-top: 20px;
overflow: hidden;
}
</style>
}
<div class="infoBox">
RSS feeds are checked every 25 minutes for new episodes.</div>
<div id="stylized">
@using (Html.BeginForm("SaveIndexers", "Settings", FormMethod.Post, new { id = "IndexersForm", name = "IndexersForm", @class = "settingsForm" }))
{
@Html.ValidationSummary(true, "Unable to save your settings. Please correct the errors and try again.")
{
<div class="jquery-accordion">
<h3>
<a href="#">NZBs.org</a></h3>
@ -106,7 +111,16 @@
</div>
</div>
</div>
<br />
<div class="retentionContainer">
@Html.ValidationSummary(true, "Unable to save your settings. Please correct the errors and try again.")
<label class="labelClass">@Html.LabelFor(m => m.Retention)
<span class="small">@Html.DescriptionFor(m => m.Retention)</span>
</label>
@Html.TextBoxFor(m => m.Retention, new { @class = "inputClass" })
</div>
<button type="submit" class="save_button" disabled="disabled">
Save</button>
}