2018-03-14 20:41:36 +00:00
|
|
|
using System;
|
2017-01-05 16:12:46 +00:00
|
|
|
using System.Collections.Generic;
|
|
|
|
using NzbDrone.Common.Extensions;
|
|
|
|
using NzbDrone.Common.Http;
|
|
|
|
using NzbDrone.Core.IndexerSearch.Definitions;
|
|
|
|
|
|
|
|
namespace NzbDrone.Core.Indexers.TorrentPotato
|
|
|
|
{
|
|
|
|
public class TorrentPotatoRequestGenerator : IIndexerRequestGenerator
|
|
|
|
{
|
|
|
|
public TorrentPotatoSettings Settings { get; set; }
|
|
|
|
|
|
|
|
public TorrentPotatoRequestGenerator()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
public virtual IndexerPageableRequestChain GetRecentRequests()
|
|
|
|
{
|
|
|
|
var pageableRequests = new IndexerPageableRequestChain();
|
|
|
|
|
|
|
|
pageableRequests.Add(GetPagedRequests("list", null, null));
|
|
|
|
|
|
|
|
return pageableRequests;
|
|
|
|
}
|
|
|
|
|
|
|
|
private IEnumerable<IndexerRequest> GetPagedRequests(string mode, int? tvdbId, string query, params object[] args)
|
|
|
|
{
|
|
|
|
var requestBuilder = new HttpRequestBuilder(Settings.BaseUrl)
|
|
|
|
.Accept(HttpAccept.Json);
|
|
|
|
|
|
|
|
requestBuilder.AddQueryParam("passkey", Settings.Passkey);
|
2017-01-13 21:16:31 +00:00
|
|
|
if (!string.IsNullOrWhiteSpace(Settings.User))
|
|
|
|
{
|
|
|
|
requestBuilder.AddQueryParam("user", Settings.User);
|
|
|
|
}
|
2017-01-14 17:27:16 +00:00
|
|
|
else
|
|
|
|
{
|
|
|
|
requestBuilder.AddQueryParam("user", "");
|
|
|
|
}
|
|
|
|
|
2017-02-24 14:40:25 +00:00
|
|
|
requestBuilder.AddQueryParam("search", "-");
|
2017-01-05 16:12:46 +00:00
|
|
|
|
|
|
|
yield return new IndexerRequest(requestBuilder.Build());
|
|
|
|
}
|
|
|
|
|
|
|
|
private IEnumerable<IndexerRequest> GetMovieRequest(MovieSearchCriteria searchCriteria)
|
|
|
|
{
|
|
|
|
var requestBuilder = new HttpRequestBuilder(Settings.BaseUrl)
|
|
|
|
.Accept(HttpAccept.Json);
|
|
|
|
|
|
|
|
requestBuilder.AddQueryParam("passkey", Settings.Passkey);
|
2017-01-13 21:16:31 +00:00
|
|
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(Settings.User))
|
|
|
|
{
|
|
|
|
requestBuilder.AddQueryParam("user", Settings.User);
|
|
|
|
}
|
2017-01-14 17:27:16 +00:00
|
|
|
else
|
|
|
|
{
|
|
|
|
requestBuilder.AddQueryParam("user", "");
|
|
|
|
}
|
2017-01-05 16:12:46 +00:00
|
|
|
|
|
|
|
if (searchCriteria.Movie.ImdbId.IsNotNullOrWhiteSpace())
|
|
|
|
{
|
|
|
|
requestBuilder.AddQueryParam("imdbid", searchCriteria.Movie.ImdbId);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2017-02-06 21:34:11 +00:00
|
|
|
requestBuilder.AddQueryParam("search", $"{searchCriteria.Movie.Title} {searchCriteria.Movie.Year}");
|
2017-01-05 16:12:46 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
yield return new IndexerRequest(requestBuilder.Build());
|
|
|
|
}
|
|
|
|
|
|
|
|
public IndexerPageableRequestChain GetSearchRequests(MovieSearchCriteria searchCriteria)
|
|
|
|
{
|
|
|
|
var pageableRequests = new IndexerPageableRequestChain();
|
|
|
|
pageableRequests.Add(GetMovieRequest(searchCriteria));
|
|
|
|
return pageableRequests;
|
|
|
|
}
|
2019-12-22 21:24:11 +00:00
|
|
|
|
2018-04-01 18:21:24 +00:00
|
|
|
public Func<IDictionary<string, string>> GetCookies { get; set; }
|
|
|
|
public Action<IDictionary<string, string>, DateTime?> CookiesUpdater { get; set; }
|
2017-01-05 16:12:46 +00:00
|
|
|
}
|
|
|
|
}
|