New: Auto map known legacy BaseUrls for non-Cardigann

pull/981/head
Qstick 3 years ago
parent 2820ef9375
commit 4002cb764b

@ -50,6 +50,7 @@ namespace NzbDrone.Core.Datastore
.Ignore(i => i.Language) .Ignore(i => i.Language)
.Ignore(i => i.Encoding) .Ignore(i => i.Encoding)
.Ignore(i => i.IndexerUrls) .Ignore(i => i.IndexerUrls)
.Ignore(i => i.LegacyUrls)
.Ignore(i => i.Protocol) .Ignore(i => i.Protocol)
.Ignore(i => i.Privacy) .Ignore(i => i.Privacy)
.Ignore(i => i.SupportsRss) .Ignore(i => i.SupportsRss)

@ -20,6 +20,8 @@ namespace NzbDrone.Core.Indexers.BroadcastheNet
public override TimeSpan RateLimit => TimeSpan.FromSeconds(5); public override TimeSpan RateLimit => TimeSpan.FromSeconds(5);
public override string[] IndexerUrls => new string[] { "https://api.broadcasthe.net/" }; public override string[] IndexerUrls => new string[] { "https://api.broadcasthe.net/" };
public override string[] LegacyUrls => new string[] { "http://api.broadcasthe.net/" };
public override string Description => "BroadcasTheNet (BTN) is an invite-only torrent tracker focused on TV shows"; public override string Description => "BroadcasTheNet (BTN) is an invite-only torrent tracker focused on TV shows";
public BroadcastheNet(IIndexerHttpClient httpClient, IEventAggregator eventAggregator, IIndexerStatusService indexerStatusService, IConfigService configService, Logger logger) public BroadcastheNet(IIndexerHttpClient httpClient, IEventAggregator eventAggregator, IIndexerStatusService indexerStatusService, IConfigService configService, Logger logger)

@ -126,6 +126,7 @@ namespace NzbDrone.Core.Indexers.Cardigann
Description = definition.Description, Description = definition.Description,
Implementation = GetType().Name, Implementation = GetType().Name,
IndexerUrls = definition.Links.ToArray(), IndexerUrls = definition.Links.ToArray(),
LegacyUrls = definition.Legacylinks.ToArray(),
Settings = new CardigannSettings { DefinitionFile = definition.File }, Settings = new CardigannSettings { DefinitionFile = definition.File },
Protocol = DownloadProtocol.Torrent, Protocol = DownloadProtocol.Torrent,
Privacy = definition.Type switch Privacy = definition.Type switch

@ -33,6 +33,7 @@ namespace NzbDrone.Core.Indexers
public override Encoding Encoding => Encoding.UTF8; public override Encoding Encoding => Encoding.UTF8;
public override string Language => "en-US"; public override string Language => "en-US";
public override string[] LegacyUrls => new string[] { };
public override bool FollowRedirect => false; public override bool FollowRedirect => false;
public override IndexerCapabilities Capabilities { get; protected set; } public override IndexerCapabilities Capabilities { get; protected set; }

@ -14,6 +14,7 @@ namespace NzbDrone.Core.Indexers
IndexerCapabilities Capabilities { get; } IndexerCapabilities Capabilities { get; }
string[] IndexerUrls { get; } string[] IndexerUrls { get; }
string[] LegacyUrls { get; }
string Description { get; } string Description { get; }
Encoding Encoding { get; } Encoding Encoding { get; }
string Language { get; } string Language { get; }

@ -22,6 +22,7 @@ namespace NzbDrone.Core.Indexers
public abstract string Name { get; } public abstract string Name { get; }
public abstract string[] IndexerUrls { get; } public abstract string[] IndexerUrls { get; }
public abstract string[] LegacyUrls { get; }
public abstract string Description { get; } public abstract string Description { get; }
public abstract Encoding Encoding { get; } public abstract Encoding Encoding { get; }
public abstract string Language { get; } public abstract string Language { get; }
@ -147,9 +148,17 @@ namespace NzbDrone.Core.Indexers
protected TSettings GetDefaultBaseUrl(TSettings settings) protected TSettings GetDefaultBaseUrl(TSettings settings)
{ {
if (settings.BaseUrl.IsNullOrWhiteSpace() && IndexerUrls.First().IsNotNullOrWhiteSpace()) var defaultLink = IndexerUrls.FirstOrDefault();
if (settings.BaseUrl.IsNullOrWhiteSpace() && defaultLink.IsNotNullOrWhiteSpace())
{
settings.BaseUrl = defaultLink;
}
if (settings.BaseUrl.IsNotNullOrWhiteSpace() && LegacyUrls.Contains(settings.BaseUrl))
{ {
settings.BaseUrl = IndexerUrls.First(); _logger.Debug(string.Format("Changing legacy site link from {0} to {1}", settings.BaseUrl, defaultLink));
settings.BaseUrl = defaultLink;
} }
return settings; return settings;

@ -11,6 +11,7 @@ namespace NzbDrone.Core.Indexers
public class IndexerDefinition : ProviderDefinition public class IndexerDefinition : ProviderDefinition
{ {
public string[] IndexerUrls { get; set; } public string[] IndexerUrls { get; set; }
public string[] LegacyUrls { get; set; }
public string Description { get; set; } public string Description { get; set; }
public Encoding Encoding { get; set; } public Encoding Encoding { get; set; }
public string Language { get; set; } public string Language { get; set; }

@ -110,6 +110,7 @@ namespace NzbDrone.Core.Indexers
} }
definition.IndexerUrls = defFile.Links.ToArray(); definition.IndexerUrls = defFile.Links.ToArray();
definition.LegacyUrls = defFile.Legacylinks.ToArray();
definition.Description = defFile.Description; definition.Description = defFile.Description;
definition.Language = defFile.Language; definition.Language = defFile.Language;
definition.Encoding = Encoding.GetEncoding(defFile.Encoding); definition.Encoding = Encoding.GetEncoding(defFile.Encoding);
@ -205,6 +206,7 @@ namespace NzbDrone.Core.Indexers
if (definition.Implementation != typeof(Cardigann.Cardigann).Name) if (definition.Implementation != typeof(Cardigann.Cardigann).Name)
{ {
definition.IndexerUrls = provider.IndexerUrls; definition.IndexerUrls = provider.IndexerUrls;
definition.LegacyUrls = provider.LegacyUrls;
definition.Privacy = provider.Privacy; definition.Privacy = provider.Privacy;
definition.Description = provider.Description; definition.Description = provider.Description;
definition.Encoding = provider.Encoding; definition.Encoding = provider.Encoding;

@ -15,6 +15,7 @@ namespace Prowlarr.Api.V1.Indexers
public class IndexerResource : ProviderResource<IndexerResource> public class IndexerResource : ProviderResource<IndexerResource>
{ {
public string[] IndexerUrls { get; set; } public string[] IndexerUrls { get; set; }
public string[] LegacyUrls { get; set; }
public string DefinitionName { get; set; } public string DefinitionName { get; set; }
public string Description { get; set; } public string Description { get; set; }
public string Language { get; set; } public string Language { get; set; }
@ -81,6 +82,7 @@ namespace Prowlarr.Api.V1.Indexers
resource.InfoLink = string.Format("https://wiki.servarr.com/prowlarr/supported-indexers#{0}", infoLinkName.ToLower().Replace(' ', '-')); resource.InfoLink = string.Format("https://wiki.servarr.com/prowlarr/supported-indexers#{0}", infoLinkName.ToLower().Replace(' ', '-'));
resource.AppProfileId = definition.AppProfileId; resource.AppProfileId = definition.AppProfileId;
resource.IndexerUrls = definition.IndexerUrls; resource.IndexerUrls = definition.IndexerUrls;
resource.LegacyUrls = definition.LegacyUrls;
resource.Description = definition.Description; resource.Description = definition.Description;
resource.Language = definition.Language; resource.Language = definition.Language;
resource.Encoding = definition.Encoding?.EncodingName ?? null; resource.Encoding = definition.Encoding?.EncodingName ?? null;

Loading…
Cancel
Save