internetarchive: fix array category (#7158)

* internetarchive: fix array category

* requested changes
This commit is contained in:
Diego Heras
2020-02-09 21:07:05 +01:00
committed by GitHub
parent f8048c7572
commit cba78c299b

View File

@@ -24,6 +24,7 @@ namespace Jackett.Common.Indexers
private string SearchUrl => SiteLink + "advancedsearch.php"; private string SearchUrl => SiteLink + "advancedsearch.php";
private string CommentsUrl => SiteLink + "details/"; private string CommentsUrl => SiteLink + "details/";
private string LinkUrl => SiteLink + "download/"; private string LinkUrl => SiteLink + "download/";
private readonly NameValueCollection _trackers = new NameValueCollection private readonly NameValueCollection _trackers = new NameValueCollection
{ {
{"tr", "udp://tracker.coppersurfer.tk:6969/announce"}, {"tr", "udp://tracker.coppersurfer.tk:6969/announce"},
@@ -32,6 +33,7 @@ namespace Jackett.Common.Indexers
{"tr", "udp://tracker.internetwarriors.net:1337/announce"}, {"tr", "udp://tracker.internetwarriors.net:1337/announce"},
{"tr", "udp://open.demonii.si:1337/announce"} {"tr", "udp://open.demonii.si:1337/announce"}
}; };
private string _sort; private string _sort;
private string _order; private string _order;
private bool _titleOnly; private bool _titleOnly;
@@ -125,6 +127,7 @@ namespace Jackett.Common.Indexers
searchTerm = query.SearchTerm + " AND " + searchTerm; searchTerm = query.SearchTerm + " AND " + searchTerm;
sort = _order + _sort; sort = _order + _sort;
} }
var querycats = MapTorznabCapsToTrackers(query); var querycats = MapTorznabCapsToTrackers(query);
if (querycats.Any()) if (querycats.Any())
searchTerm += " AND mediatype:(" + string.Join(" OR ", querycats) + ")"; searchTerm += " AND mediatype:(" + string.Join(" OR ", querycats) + ")";
@@ -140,9 +143,8 @@ namespace Jackett.Common.Indexers
var fullSearchUrl = SearchUrl + "?" + qc.GetQueryString(); var fullSearchUrl = SearchUrl + "?" + qc.GetQueryString();
var result = await RequestStringWithCookiesAndRetry(fullSearchUrl); var result = await RequestStringWithCookiesAndRetry(fullSearchUrl);
foreach (var torrent in ParseResponse(result)) foreach (var torrent in ParseResponse(result))
{
releases.Add(MakeRelease(torrent)); releases.Add(MakeRelease(torrent));
}
return releases; return releases;
} }
@@ -168,29 +170,24 @@ namespace Jackett.Common.Indexers
{ {
var release = new ReleaseInfo(); var release = new ReleaseInfo();
var id = (string)torrent["identifier"]; var title = GetFieldAs<string>("title", torrent);
var title = torrent["title"] is JArray ?
(string)((JArray)torrent["title"])[0] :
(string)torrent["title"];
release.Title = title; release.Title = title;
var id = GetFieldAs<string>("identifier", torrent);
release.Comments = new Uri(CommentsUrl + id); release.Comments = new Uri(CommentsUrl + id);
release.Guid = release.Comments; release.Guid = release.Comments;
release.PublishDate = DateTime.Now; release.PublishDate = GetFieldAs<DateTime>("publicdate", torrent);
if (torrent["publicdate"] != null) release.Category = MapTrackerCatToNewznab(GetFieldAs<string>("mediatype", torrent));
release.PublishDate = DateTime.Parse((string)torrent["publicdate"]); release.Size = GetFieldAs<long>("item_size", torrent);
release.Category = MapTrackerCatToNewznab((string)torrent["mediatype"]);
release.Size = (long)torrent["item_size"];
release.Seeders = 1; release.Seeders = 1;
release.Peers = 2; release.Peers = 2;
release.Grabs = (long)torrent["downloads"]; release.Grabs = GetFieldAs<long>("downloads", torrent);
var btih = GetFieldAs<string>("btih", torrent);
release.Link = new Uri(LinkUrl + id + "/" + id + "_archive.torrent"); release.Link = new Uri(LinkUrl + id + "/" + id + "_archive.torrent");
release.MagnetUri = GenerateMagnetLink((string)torrent["btih"], title); release.MagnetUri = GenerateMagnetLink(btih, title);
release.InfoHash = (string)torrent["btih"]; release.InfoHash = btih;
release.MinimumRatio = 1; release.MinimumRatio = 1;
release.MinimumSeedTime = 172800; // 48 hours release.MinimumSeedTime = 172800; // 48 hours
@@ -205,5 +202,8 @@ namespace Jackett.Common.Indexers
_trackers.Set("dn", title); _trackers.Set("dn", title);
return new Uri("magnet:?xt=urn:btih:" + btih + "&" + _trackers.GetQueryString()); return new Uri("magnet:?xt=urn:btih:" + btih + "&" + _trackers.GetQueryString());
} }
private static T GetFieldAs<T>(string field, JToken torrent) =>
torrent[field] is JArray array ? array.First.ToObject<T>() : torrent.Value<T>(field);
} }
} }