mirror of https://github.com/Jackett/Jackett
gazelle: use tokens only for eligible releases
This commit is contained in:
parent
f83bdd80c7
commit
93ef5aee04
|
@ -27,8 +27,6 @@ namespace Jackett.Common.Indexers.Abstract
|
||||||
|
|
||||||
protected virtual string LoginUrl => SiteLink + "login.php";
|
protected virtual string LoginUrl => SiteLink + "login.php";
|
||||||
protected virtual string APIUrl => SiteLink + "ajax.php";
|
protected virtual string APIUrl => SiteLink + "ajax.php";
|
||||||
protected virtual string DownloadUrl => SiteLink + "torrents.php?action=download" + (useTokens ? "&usetoken=1" : "") + (usePassKey ? "&torrent_pass=" + configData.PassKey.Value : "") + (useAuthKey ? "&authkey=" + configData.AuthKey.Value : "") + "&id=";
|
|
||||||
protected virtual string DetailsUrl => SiteLink + "torrents.php?torrentid=";
|
|
||||||
protected virtual string PosterUrl => SiteLink;
|
protected virtual string PosterUrl => SiteLink;
|
||||||
protected virtual string AuthorizationName => "Authorization";
|
protected virtual string AuthorizationName => "Authorization";
|
||||||
protected virtual string AuthorizationFormat => "{0}";
|
protected virtual string AuthorizationFormat => "{0}";
|
||||||
|
@ -398,13 +396,13 @@ namespace Jackett.Common.Indexers.Abstract
|
||||||
{
|
{
|
||||||
var isFreeleech = bool.TryParse((string)torrent["isFreeleech"], out var freeleech) && freeleech;
|
var isFreeleech = bool.TryParse((string)torrent["isFreeleech"], out var freeleech) && freeleech;
|
||||||
|
|
||||||
// skip non-freeload results when freeload only is set
|
// skip non-freeleech results when freeleech only is set
|
||||||
return configData.FreeleechOnly != null && configData.FreeleechOnly.Value && !isFreeleech;
|
return configData.FreeleechOnly != null && configData.FreeleechOnly.Value && !isFreeleech;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void FillReleaseInfoFromJson(ReleaseInfo release, JObject torrent)
|
protected void FillReleaseInfoFromJson(ReleaseInfo release, JObject torrent)
|
||||||
{
|
{
|
||||||
var torrentId = torrent["torrentId"];
|
var torrentId = (int)torrent["torrentId"];
|
||||||
|
|
||||||
var time = (string)torrent["time"];
|
var time = (string)torrent["time"];
|
||||||
if (!string.IsNullOrEmpty(time))
|
if (!string.IsNullOrEmpty(time))
|
||||||
|
@ -500,9 +498,10 @@ namespace Jackett.Common.Indexers.Abstract
|
||||||
release.Size = (long)torrent["size"];
|
release.Size = (long)torrent["size"];
|
||||||
release.Seeders = (int)torrent["seeders"];
|
release.Seeders = (int)torrent["seeders"];
|
||||||
release.Peers = (int)torrent["leechers"] + release.Seeders;
|
release.Peers = (int)torrent["leechers"] + release.Seeders;
|
||||||
release.Details = new Uri(DetailsUrl + torrentId);
|
release.Details = GetInfoUrl((int)torrent["groupId"], torrentId);
|
||||||
release.Guid = release.Details;
|
release.Guid = release.Details;
|
||||||
release.Link = new Uri(DownloadUrl + torrentId);
|
release.Link = GetDownloadUrl(torrentId, release.DownloadVolumeFactor != 0);
|
||||||
|
|
||||||
var category = (string)torrent["category"];
|
var category = (string)torrent["category"];
|
||||||
if (category == null || category.Contains("Select Category"))
|
if (category == null || category.Contains("Select Category"))
|
||||||
{
|
{
|
||||||
|
@ -565,5 +564,15 @@ namespace Jackett.Common.Indexers.Abstract
|
||||||
|
|
||||||
return content;
|
return content;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected virtual Uri GetInfoUrl(int groupId, int torrentId)
|
||||||
|
{
|
||||||
|
return new Uri($"{SiteLink}torrents.php?id={groupId}&torrentid={torrentId}");
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual Uri GetDownloadUrl(int torrentId, bool canUseToken)
|
||||||
|
{
|
||||||
|
return new Uri($"{SiteLink}torrents.php?action=download{(useTokens && canUseToken ? "&usetoken=1" : "")}{(usePassKey ? $"&torrent_pass={configData.PassKey.Value}" : "")}{(useAuthKey ? $"&authkey={configData.AuthKey.Value}" : "")}&id={torrentId}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -255,6 +255,7 @@ namespace Jackett.Common.Indexers
|
||||||
|
|
||||||
foreach (var gObj in JObject.FromObject(json["response"]))
|
foreach (var gObj in JObject.FromObject(json["response"]))
|
||||||
{
|
{
|
||||||
|
var groupId = int.Parse(gObj.Key);
|
||||||
var group = gObj.Value as JObject;
|
var group = gObj.Value as JObject;
|
||||||
|
|
||||||
if (group["Torrents"].Type == JTokenType.Array && group["Torrents"] is JArray array && array.Count == 0)
|
if (group["Torrents"].Type == JTokenType.Array && group["Torrents"] is JArray array && array.Count == 0)
|
||||||
|
@ -270,15 +271,15 @@ namespace Jackett.Common.Indexers
|
||||||
foreach (var tObj in JObject.FromObject(group["Torrents"]))
|
foreach (var tObj in JObject.FromObject(group["Torrents"]))
|
||||||
{
|
{
|
||||||
var torrent = tObj.Value as JObject;
|
var torrent = tObj.Value as JObject;
|
||||||
var torrentId = torrent.Value<string>("ID");
|
var torrentId = torrent.Value<int>("ID");
|
||||||
|
|
||||||
if (categories.Length == 0)
|
if (categories.Length == 0)
|
||||||
{
|
{
|
||||||
categories = MapTrackerCatToNewznab(torrent.Value<string>("CategoryID")).ToArray();
|
categories = MapTrackerCatToNewznab(torrent.Value<string>("CategoryID")).ToArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
var details = new Uri(DetailsUrl + torrentId);
|
var details = GetInfoUrl(groupId, torrentId);
|
||||||
var link = new Uri(DownloadUrl + torrentId);
|
var link = GetDownloadUrl(torrentId, false);
|
||||||
|
|
||||||
var title = WebUtility.HtmlDecode(torrent.Value<string>("ReleaseTitle"));
|
var title = WebUtility.HtmlDecode(torrent.Value<string>("ReleaseTitle"));
|
||||||
var groupYear = group.Value<int>("year");
|
var groupYear = group.Value<int>("year");
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics.CodeAnalysis;
|
using System.Diagnostics.CodeAnalysis;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
@ -24,7 +25,6 @@ namespace Jackett.Common.Indexers
|
||||||
public override TorznabCapabilities TorznabCaps => SetCapabilities();
|
public override TorznabCapabilities TorznabCaps => SetCapabilities();
|
||||||
|
|
||||||
// API Reference: https://github.com/OPSnet/Gazelle/wiki/JSON-API-Documentation
|
// API Reference: https://github.com/OPSnet/Gazelle/wiki/JSON-API-Documentation
|
||||||
protected override string DownloadUrl => SiteLink + "ajax.php?action=download" + (useTokens ? "&usetoken=1" : "") + "&id=";
|
|
||||||
protected override string AuthorizationFormat => "token {0}";
|
protected override string AuthorizationFormat => "token {0}";
|
||||||
protected override int ApiKeyLength => 116;
|
protected override int ApiKeyLength => 116;
|
||||||
protected override int ApiKeyLengthLegacy => 118;
|
protected override int ApiKeyLengthLegacy => 118;
|
||||||
|
@ -69,5 +69,10 @@ namespace Jackett.Common.Indexers
|
||||||
|
|
||||||
return caps;
|
return caps;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override Uri GetDownloadUrl(int torrentId, bool canUseToken)
|
||||||
|
{
|
||||||
|
return new Uri($"{SiteLink}ajax.php?action=download{(useTokens && canUseToken ? "&usetoken=1" : "")}&id={torrentId}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics.CodeAnalysis;
|
using System.Diagnostics.CodeAnalysis;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
@ -24,8 +25,6 @@ namespace Jackett.Common.Indexers
|
||||||
|
|
||||||
public override TorznabCapabilities TorznabCaps => SetCapabilities();
|
public override TorznabCapabilities TorznabCaps => SetCapabilities();
|
||||||
|
|
||||||
protected override string DownloadUrl => SiteLink + "ajax.php?action=download" + (useTokens ? "&usetoken=1" : "") + "&id=";
|
|
||||||
|
|
||||||
public Redacted(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs)
|
public Redacted(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs)
|
||||||
: base(configService: configService,
|
: base(configService: configService,
|
||||||
client: wc,
|
client: wc,
|
||||||
|
@ -93,5 +92,10 @@ namespace Jackett.Common.Indexers
|
||||||
|
|
||||||
return base.ShouldSkipRelease(torrent);
|
return base.ShouldSkipRelease(torrent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override Uri GetDownloadUrl(int torrentId, bool canUseToken)
|
||||||
|
{
|
||||||
|
return new Uri($"{SiteLink}ajax.php?action=download{(useTokens && canUseToken ? "&usetoken=1" : "")}&id={torrentId}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics.CodeAnalysis;
|
using System.Diagnostics.CodeAnalysis;
|
||||||
using Jackett.Common.Indexers.Abstract;
|
using Jackett.Common.Indexers.Abstract;
|
||||||
|
@ -21,7 +22,6 @@ namespace Jackett.Common.Indexers
|
||||||
|
|
||||||
public override TorznabCapabilities TorznabCaps => SetCapabilities();
|
public override TorznabCapabilities TorznabCaps => SetCapabilities();
|
||||||
|
|
||||||
protected override string DownloadUrl => SiteLink + "ajax.php?action=download" + (useTokens ? "&usetoken=1" : "") + "&id=";
|
|
||||||
protected override string AuthorizationFormat => "token {0}";
|
protected override string AuthorizationFormat => "token {0}";
|
||||||
protected override int ApiKeyLength => 118;
|
protected override int ApiKeyLength => 118;
|
||||||
|
|
||||||
|
@ -62,5 +62,10 @@ namespace Jackett.Common.Indexers
|
||||||
|
|
||||||
return caps;
|
return caps;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override Uri GetDownloadUrl(int torrentId, bool canUseToken)
|
||||||
|
{
|
||||||
|
return new Uri($"{SiteLink}ajax.php?action=download{(useTokens && canUseToken ? "&usetoken=1" : "")}&id={torrentId}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue