Specific Subtitle tags (such as nlsub) can now be whitelisted and will be downloaded.

Fixes #540 and fixes a lot of other requests.
This commit is contained in:
Leonardo Galli 2017-04-10 11:41:08 +02:00
parent 7066b078ab
commit c17deb7d92
6 changed files with 49 additions and 3 deletions

View File

@ -10,6 +10,7 @@ namespace NzbDrone.Api.Config
public int RssSyncInterval { get; set; }
public int AvailabilityDelay { get; set; }
public bool AllowHardcodedSubs { get; set; }
public string WhitelistedHardcodedSubs { get; set; }
}
public static class IndexerConfigResourceMapper
@ -23,6 +24,8 @@ namespace NzbDrone.Api.Config
RssSyncInterval = model.RssSyncInterval,
AvailabilityDelay = model.AvailabilityDelay,
AllowHardcodedSubs = model.AllowHardcodedSubs,
WhitelistedHardcodedSubs = model.WhitelistedHardcodedSubs,
};
}
}

View File

@ -197,6 +197,13 @@ namespace NzbDrone.Core.Configuration
set { SetValue("AllowHardcodedSubs", value); }
}
public string WhitelistedHardcodedSubs
{
get { return GetValue("WhitelistedHardcodedSubs", ""); }
set { SetValue("WhitelistedHardcodedSubs", value); }
}
public bool RemoveCompletedDownloads
{
get { return GetValueBoolean("RemoveCompletedDownloads", false); }

View File

@ -49,6 +49,7 @@ namespace NzbDrone.Core.Configuration
int AvailabilityDelay { get; set; }
bool AllowHardcodedSubs { get; set; }
string WhitelistedHardcodedSubs { get; set; }
int NetImportSyncInterval { get; set; }
string ListSyncLevel { get; set; }

View File

@ -91,7 +91,16 @@ namespace NzbDrone.Core.DecisionEngine
}
else
{
decision = new DownloadDecision(remoteMovie, new Rejection("Hardcoded subs found: " + parsedMovieInfo.Quality.HardcodedSubs));
var whitelisted = _configService.WhitelistedHardcodedSubs.Split(',');
_logger.Debug("Testing: {0}", whitelisted);
if (whitelisted != null && whitelisted.Any(t => (parsedMovieInfo.Quality.HardcodedSubs.ToLower().Contains(t.ToLower()) && t.IsNotNullOrWhiteSpace())))
{
decision = GetDecisionForReport(remoteMovie, searchCriteria);
}
else
{
decision = new DownloadDecision(remoteMovie, new Rejection("Hardcoded subs found: " + parsedMovieInfo.Quality.HardcodedSubs));
}
}
}
else

View File

@ -1,12 +1,27 @@
var Marionette = require('marionette');
var AsModelBoundView = require('../../../Mixins/AsModelBoundView');
var AsValidatedView = require('../../../Mixins/AsValidatedView');
require('../../../Mixins/TagInput');
require('bootstrap');
require('bootstrap.tagsinput');
var view = Marionette.ItemView.extend({
template : 'Settings/Indexers/Options/IndexerOptionsViewTemplate'
template : 'Settings/Indexers/Options/IndexerOptionsViewTemplate',
ui : {
hcwhitelist : '.x-hcwhitelist',
},
onRender : function() {
this.ui.hcwhitelist.tagsinput({
trimValue : true,
allowDuplicates: true,
tagClass : 'label label-success'
});
},
});
AsModelBoundView.call(view);
AsValidatedView.call(view);
module.exports = view;
module.exports = view;

View File

@ -38,6 +38,17 @@
</div>
</div>
<div class="form-group advanced-setting">
<label class="col-sm-3 control-label">Whitelisted Hardcoded Subs Tags</label>
<div class="col-sm-1 col-sm-push-2 help-inline">
<i class="icon-sonarr-form-info" title="All subtitle tags set here will not be considered hardcoded (e.g. dksub). This field is caseinsensitive and please put the tag in singular (dksub instead of dksubs)."/>
</div>
<div class="col-sm-2 col-sm-pull-1">
<input type="text" name="whitelistedHardcodedSubs" class="form-control x-hcwhitelist"/>
</div>
</div>
<div class="form-group advanced-setting">
<label class="col-sm-3 control-label">Allow Hardcoded Subs</label>
<div class="col-sm-1 col-sm-push-2 help-inline">