From e9851a1dbc50c6871d60734dbd120cf03eec9550 Mon Sep 17 00:00:00 2001 From: Diego Heras Date: Thu, 12 Mar 2020 05:34:07 +0100 Subject: [PATCH] funfile: handle disabled download links. resolves #7436 (#7620) --- src/Jackett.Common/Indexers/FunFile.cs | 35 +++++++++++--------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/src/Jackett.Common/Indexers/FunFile.cs b/src/Jackett.Common/Indexers/FunFile.cs index 5b4f5d050..2a2243220 100644 --- a/src/Jackett.Common/Indexers/FunFile.cs +++ b/src/Jackett.Common/Indexers/FunFile.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Collections.Specialized; +using System.Linq; using System.Text; using System.Threading.Tasks; using AngleSharp.Html.Parser; @@ -77,27 +78,16 @@ namespace Jackett.Common.Indexers { var releases = new List(); - var searchString = query.GetQueryString(); - var searchUrl = SearchUrl; - var queryCollection = new NameValueCollection(); - queryCollection.Add("incldead", "1"); - queryCollection.Add("showspam", "1"); - - if (!string.IsNullOrWhiteSpace(searchString)) + var qc = new NameValueCollection { - queryCollection.Add("search", searchString); - } - - var cats = MapTorznabCapsToTrackers(query); - var cat = "0"; - if (cats.Count == 1) - { - cat = cats[0]; - } - queryCollection.Add("cat", cat); - - searchUrl += "?" + queryCollection.GetQueryString(); + {"incldead", "1"}, + {"showspam", "1"}, + {"cat", MapTorznabCapsToTrackers(query).FirstOrDefault() ?? "0"} + }; + if (!string.IsNullOrWhiteSpace(query.GetQueryString())) + qc.Add("search", query.GetQueryString()); + var searchUrl = SearchUrl + "?" + qc.GetQueryString(); var results = await RequestStringWithCookiesAndRetry(searchUrl); // Occasionally the cookies become invalid, login again if that happens @@ -126,14 +116,17 @@ namespace Jackett.Common.Indexers var qTimeAgo = row.QuerySelector("td:nth-of-type(6)"); var qSize = row.QuerySelector("td:nth-of-type(8)"); - var catStr = qCatLink.GetAttribute("href").Split('=')[1].Split('&')[0]; - release.Category = MapTrackerCatToNewznab(catStr); + if (qDownloadLink == null) + throw new Exception("Download links not found. Make sure you can download from the website."); release.Link = new Uri(SiteLink + qDownloadLink.GetAttribute("href")); release.Title = qDetailsLink.GetAttribute("title").Trim(); release.Comments = new Uri(SiteLink + qDetailsLink.GetAttribute("href")); release.Guid = release.Link; + var catStr = qCatLink.GetAttribute("href").Split('=')[1].Split('&')[0]; + release.Category = MapTrackerCatToNewznab(catStr); + var sizeStr = qSize.TextContent; release.Size = ReleaseInfo.GetBytes(sizeStr);