mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2026-04-26 23:06:43 -04:00
Fixed: HDBits and Filelist
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
using System.Collections.Generic;
|
||||
using NLog;
|
||||
using NzbDrone.Common.Http;
|
||||
using NzbDrone.Core.Configuration;
|
||||
@@ -10,6 +11,8 @@ namespace NzbDrone.Core.Indexers.HDBits
|
||||
public override string BaseUrl => "https://hdbits.org";
|
||||
public override DownloadProtocol Protocol => DownloadProtocol.Torrent;
|
||||
public override IndexerPrivacy Privacy => IndexerPrivacy.Private;
|
||||
public override IndexerCapabilities Capabilities => SetCapabilities();
|
||||
public override bool SupportsRedirect => true;
|
||||
|
||||
public override int PageSize => 30;
|
||||
|
||||
@@ -27,5 +30,31 @@ namespace NzbDrone.Core.Indexers.HDBits
|
||||
{
|
||||
return new HDBitsParser(Settings, BaseUrl);
|
||||
}
|
||||
|
||||
private IndexerCapabilities SetCapabilities()
|
||||
{
|
||||
var caps = new IndexerCapabilities
|
||||
{
|
||||
TvSearchParams = new List<TvSearchParam>
|
||||
{
|
||||
TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.TvdbId
|
||||
},
|
||||
MovieSearchParams = new List<MovieSearchParam>
|
||||
{
|
||||
MovieSearchParam.Q, MovieSearchParam.ImdbId
|
||||
}
|
||||
};
|
||||
|
||||
caps.Categories.AddCategoryMapping(6, NewznabStandardCategory.Audio, "Audio Track");
|
||||
caps.Categories.AddCategoryMapping(3, NewznabStandardCategory.TVDocumentary, "Documentary");
|
||||
caps.Categories.AddCategoryMapping(8, NewznabStandardCategory.Other, "Misc/Demo");
|
||||
caps.Categories.AddCategoryMapping(1, NewznabStandardCategory.Movies, "Movie");
|
||||
caps.Categories.AddCategoryMapping(4, NewznabStandardCategory.Audio, "Music");
|
||||
caps.Categories.AddCategoryMapping(5, NewznabStandardCategory.TVSport, "Sport");
|
||||
caps.Categories.AddCategoryMapping(2, NewznabStandardCategory.TV, "TV");
|
||||
caps.Categories.AddCategoryMapping(7, NewznabStandardCategory.XXX, "XXX");
|
||||
|
||||
return caps;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace NzbDrone.Core.Indexers.HDBits
|
||||
@@ -113,7 +113,7 @@ namespace NzbDrone.Core.Indexers.HDBits
|
||||
{
|
||||
public int? Id { get; set; }
|
||||
public int? Season { get; set; }
|
||||
public int? Episode { get; set; }
|
||||
public string Episode { get; set; }
|
||||
}
|
||||
|
||||
public enum StatusCode
|
||||
|
||||
@@ -76,10 +76,13 @@ namespace NzbDrone.Core.Indexers.HDBits
|
||||
DownloadUrl = GetDownloadUrl(id),
|
||||
InfoUrl = GetInfoUrl(id),
|
||||
Seeders = result.Seeders,
|
||||
Grabs = (int)result.TimesCompleted,
|
||||
Files = (int)result.NumFiles,
|
||||
Peers = result.Leechers + result.Seeders,
|
||||
PublishDate = result.Added.ToUniversalTime(),
|
||||
Internal = internalRelease,
|
||||
ImdbId = result.ImdbInfo?.Id ?? 0,
|
||||
TvdbId = result.TvdbInfo?.Id ?? 0,
|
||||
IndexerFlags = flags
|
||||
});
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ namespace NzbDrone.Core.Indexers.HDBits
|
||||
{
|
||||
public class HDBitsRequestGenerator : IIndexerRequestGenerator
|
||||
{
|
||||
public IndexerCapabilities Capabilities { get; set; }
|
||||
public HDBitsSettings Settings { get; set; }
|
||||
public string BaseUrl { get; set; }
|
||||
|
||||
@@ -18,19 +19,14 @@ namespace NzbDrone.Core.Indexers.HDBits
|
||||
var pageableRequests = new IndexerPageableRequestChain();
|
||||
var query = new TorrentQuery();
|
||||
|
||||
if (TryAddSearchParameters(query, searchCriteria))
|
||||
if (searchCriteria.Categories.Length > 0)
|
||||
{
|
||||
pageableRequests.Add(GetRequest(query));
|
||||
query.Category = Capabilities.Categories.MapTorznabCapsToTrackers(searchCriteria.Categories).Select(int.Parse).ToArray();
|
||||
}
|
||||
|
||||
return pageableRequests;
|
||||
}
|
||||
|
||||
private bool TryAddSearchParameters(TorrentQuery query, MovieSearchCriteria searchCriteria)
|
||||
{
|
||||
if (searchCriteria.ImdbId.IsNullOrWhiteSpace())
|
||||
if (searchCriteria.ImdbId.IsNullOrWhiteSpace() && searchCriteria.SearchTerm.IsNotNullOrWhiteSpace())
|
||||
{
|
||||
return false;
|
||||
query.Search = searchCriteria.SanitizedSearchTerm;
|
||||
}
|
||||
|
||||
var imdbId = int.Parse(searchCriteria.ImdbId.Substring(2));
|
||||
@@ -39,13 +35,11 @@ namespace NzbDrone.Core.Indexers.HDBits
|
||||
{
|
||||
query.ImdbInfo = query.ImdbInfo ?? new ImdbInfo();
|
||||
query.ImdbInfo.Id = imdbId;
|
||||
|
||||
//TODO Map Categories
|
||||
query.Category = searchCriteria.Categories;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
pageableRequests.Add(GetRequest(query));
|
||||
|
||||
return pageableRequests;
|
||||
}
|
||||
|
||||
public Func<IDictionary<string, string>> GetCookies { get; set; }
|
||||
@@ -82,7 +76,32 @@ namespace NzbDrone.Core.Indexers.HDBits
|
||||
|
||||
public IndexerPageableRequestChain GetSearchRequests(TvSearchCriteria searchCriteria)
|
||||
{
|
||||
return new IndexerPageableRequestChain();
|
||||
var pageableRequests = new IndexerPageableRequestChain();
|
||||
var query = new TorrentQuery();
|
||||
|
||||
if (searchCriteria.Categories.Length > 0)
|
||||
{
|
||||
query.Category = Capabilities.Categories.MapTorznabCapsToTrackers(searchCriteria.Categories).Select(int.Parse).ToArray();
|
||||
}
|
||||
|
||||
if (searchCriteria.TvdbId == 0 && searchCriteria.SearchTerm.IsNotNullOrWhiteSpace())
|
||||
{
|
||||
query.Search = (searchCriteria.SanitizedSearchTerm + " " + searchCriteria.EpisodeSearchString).Trim();
|
||||
}
|
||||
|
||||
var tvdbId = searchCriteria.TvdbId;
|
||||
|
||||
if (tvdbId != 0)
|
||||
{
|
||||
query.TvdbInfo = query.TvdbInfo ?? new TvdbInfo();
|
||||
query.TvdbInfo.Id = tvdbId;
|
||||
query.TvdbInfo.Season = searchCriteria.Season;
|
||||
query.TvdbInfo.Episode = searchCriteria.Episode;
|
||||
}
|
||||
|
||||
pageableRequests.Add(GetRequest(query));
|
||||
|
||||
return pageableRequests;
|
||||
}
|
||||
|
||||
public IndexerPageableRequestChain GetSearchRequests(BookSearchCriteria searchCriteria)
|
||||
@@ -92,7 +111,22 @@ namespace NzbDrone.Core.Indexers.HDBits
|
||||
|
||||
public IndexerPageableRequestChain GetSearchRequests(BasicSearchCriteria searchCriteria)
|
||||
{
|
||||
return new IndexerPageableRequestChain();
|
||||
var pageableRequests = new IndexerPageableRequestChain();
|
||||
var query = new TorrentQuery();
|
||||
|
||||
if (searchCriteria.Categories.Length > 0)
|
||||
{
|
||||
query.Category = Capabilities.Categories.MapTorznabCapsToTrackers(searchCriteria.Categories).Select(int.Parse).ToArray();
|
||||
}
|
||||
|
||||
if (searchCriteria.SearchTerm.IsNotNullOrWhiteSpace())
|
||||
{
|
||||
query.Search = searchCriteria.SanitizedSearchTerm;
|
||||
}
|
||||
|
||||
pageableRequests.Add(GetRequest(query));
|
||||
|
||||
return pageableRequests;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user