pull/1875/merge
K. Shannon-Innes 1 month ago committed by GitHub
commit 87d79c9257
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -15,6 +15,7 @@ using NzbDrone.Common.Http;
using NzbDrone.Common.Serializer;
using NzbDrone.Core.Annotations;
using NzbDrone.Core.Configuration;
using NzbDrone.Core.Exceptions;
using NzbDrone.Core.Indexers.Exceptions;
using NzbDrone.Core.Indexers.Settings;
using NzbDrone.Core.IndexerSearch.Definitions;
@ -55,7 +56,7 @@ namespace NzbDrone.Core.Indexers.Definitions
public override async Task<byte[]> Download(Uri link)
{
if (Settings.Freeleech)
if (Settings.Freeleech != (int)MyAnonamouseFreeleech.Never)
{
_logger.Debug($"Attempting to use freeleech token for {link.AbsoluteUri}");
@ -76,13 +77,25 @@ namespace NzbDrone.Core.Indexers.Definitions
var response = await FetchIndexerResponse(indexerReq).ConfigureAwait(false);
var resource = Json.Deserialize<MyAnonamouseBuyPersonalFreeleechResponse>(response.Content);
if (resource.Success)
if (!resource.Success)
{
_logger.Debug($"Successfully to used freeleech token for torrentid ${id}");
_logger.Debug($"Failed to use freeleech token: {resource.Error}");
if (Settings.Freeleech == (int)MyAnonamouseFreeleech.Preferred)
{
_logger.Debug($"'Use Freeleech Token' option set to preferred, continuing download");
}
else
{
// TODO Find a way to deal with failures due to already being freeleech (either personal or VIP)
// TODO Find a better way to abort downloads
throw new ReleaseUnavailableException(
"Failed to buy freeleech token and 'Use Freeleech Token' is set to required, aborting download");
}
}
else
{
_logger.Debug($"Failed to use freeleech token: ${resource.Error}");
_logger.Debug($"Successfully used freeleech token for torrentid ${id}");
}
}
else
@ -525,8 +538,8 @@ namespace NzbDrone.Core.Indexers.Definitions
[FieldDefinition(3, Type = FieldType.Select, Label = "Search Type", SelectOptions = typeof(MyAnonamouseSearchType), HelpText = "Specify the desired search type")]
public int SearchType { get; set; }
[FieldDefinition(4, Type = FieldType.Checkbox, Label = "Buy Freeleech Token", HelpText = "Buy personal freeleech token for download")]
public bool Freeleech { get; set; }
[FieldDefinition(4, Type = FieldType.Select, Label = "Buy Freeleech Token", SelectOptions = typeof(MyAnonamouseFreeleech), HelpText = "Buy personal freeleech token for download")]
public int Freeleech { get; set; }
[FieldDefinition(5, Type = FieldType.Checkbox, Label = "Search in description", HelpText = "Search text in the description")]
public bool SearchInDescription { get; set; }
@ -559,6 +572,16 @@ namespace NzbDrone.Core.Indexers.Definitions
NotVip = 5,
}
public enum MyAnonamouseFreeleech
{
[FieldOption(Label="Never", Hint = "Do not buy tokens")]
Never = 0,
[FieldOption(Label="Preferred", Hint = "Buy and use token if possible")]
Preferred = 1,
[FieldOption(Label="Required", Hint = "Abort download if unable to buy token")]
Required = 2,
}
public class MyAnonamouseTorrent
{
public int Id { get; set; }

Loading…
Cancel
Save