diff --git a/src/Jackett/Indexers/Abstract/AvistazTracker.cs b/src/Jackett/Indexers/Abstract/AvistazTracker.cs index 27fdbf11d..d1bd93c78 100644 --- a/src/Jackett/Indexers/Abstract/AvistazTracker.cs +++ b/src/Jackett/Indexers/Abstract/AvistazTracker.cs @@ -125,6 +125,22 @@ namespace Jackett.Indexers .Replace("music", "3") .Replace("text-pink", string.Empty); release.Category = MapTrackerCatToNewznab(cat.Trim()); + + var grabs = row.Cq().Find("td:nth-child(9)").Text(); + release.Grabs = ParseUtil.CoerceInt(grabs); + + if (row.Cq().Find("i.fa-star").Any()) + release.DownloadVolumeFactor = 0; + else if (row.Cq().Find("i.fa-star-half-o").Any()) + release.DownloadVolumeFactor = 0.5; + else + release.DownloadVolumeFactor = 1; + + if (row.Cq().Find("i.fa-diamond").Any()) + release.UploadVolumeFactor = 2; + else + release.UploadVolumeFactor = 1; + releases.Add(release); } } diff --git a/src/Jackett/Indexers/AlphaRatio.cs b/src/Jackett/Indexers/AlphaRatio.cs index 85d76f745..94edcfe20 100644 --- a/src/Jackett/Indexers/AlphaRatio.cs +++ b/src/Jackett/Indexers/AlphaRatio.cs @@ -94,6 +94,24 @@ namespace Jackett.Indexers release.Comments = release.Guid; release.Link = new Uri(DownloadUrl + id); release.Category = MapTrackerCatToNewznab(CategoryReverseMapper((string)r["category"])); + release.Files = (int)r["fileCount"]; + release.Grabs = (int)r["snatches"]; + release.DownloadVolumeFactor = 1; + release.UploadVolumeFactor = 1; + if ((bool)r["isFreeleech"]) + { + release.DownloadVolumeFactor = 0; + } + if ((bool)r["isPersonalFreeleech"]) + { + release.DownloadVolumeFactor = 0; + } + if ((bool)r["isNeutralLeech"]) + { + release.DownloadVolumeFactor = 0; + release.UploadVolumeFactor = 0; + } + } public async Task> PerformQuery(TorznabQuery query) diff --git a/src/Jackett/Indexers/Andraste.cs b/src/Jackett/Indexers/Andraste.cs index 6ec49f0de..86a145e1f 100644 --- a/src/Jackett/Indexers/Andraste.cs +++ b/src/Jackett/Indexers/Andraste.cs @@ -177,6 +177,19 @@ namespace Jackett.Indexers DateTime pubDateUtc = TimeZoneInfo.ConvertTimeToUtc(dateGerman, germanyTz); release.PublishDate = pubDateUtc.ToLocalTime(); + var files = qRow.Find("a[href*=\"&filelist=1\"] ~ font ~ b").Text(); + release.Files = ParseUtil.CoerceInt(files); + + var grabs = qRow.Find("a[href*=\"&tosnatchers=1\"] ~ font ~ b").Text(); + release.Grabs = ParseUtil.CoerceInt(grabs); + + if (qRow.Find("img[alt=\"OU\"]").Length >= 1) + release.DownloadVolumeFactor = 0; + else + release.DownloadVolumeFactor = 1; + + release.UploadVolumeFactor = 1; + releases.Add(release); } } diff --git a/src/Jackett/Indexers/AnimeBytes.cs b/src/Jackett/Indexers/AnimeBytes.cs index 16ac2520b..e1cfa3b08 100644 --- a/src/Jackett/Indexers/AnimeBytes.cs +++ b/src/Jackett/Indexers/AnimeBytes.cs @@ -426,6 +426,17 @@ namespace Jackett.Indexers release.Seeders = ParseUtil.CoerceInt(rowCq.Find(".torrent_seeders").Text()); release.Peers = release.Seeders + ParseUtil.CoerceInt(rowCq.Find(".torrent_leechers").Text()); + // grabs + var grabs = rowCq.Find("td.torrent_snatched").Text(); + release.Grabs = ParseUtil.CoerceInt(grabs); + + // freeleech + if (rowCq.Find("img[alt=\"Freeleech!\"]").Length >= 1) + release.DownloadVolumeFactor = 0; + else + release.DownloadVolumeFactor = 1; + release.UploadVolumeFactor = 1; + if (release.Category != 0) releases.Add(release); } diff --git a/src/Jackett/Indexers/BestFriends.cs b/src/Jackett/Indexers/BestFriends.cs index 481c17bc6..2f3472aa1 100644 --- a/src/Jackett/Indexers/BestFriends.cs +++ b/src/Jackett/Indexers/BestFriends.cs @@ -197,7 +197,20 @@ namespace Jackett.Indexers var dateStr = qDateStr.Text(); var dateGerman = DateTime.SpecifyKind(DateTime.ParseExact(dateStr, "dd.MM.yyyyHH:mm:ss", CultureInfo.InvariantCulture), DateTimeKind.Unspecified); DateTime pubDateUtc = TimeZoneInfo.ConvertTimeToUtc(dateGerman, germanyTz); - release.PublishDate = pubDateUtc; + release.PublishDate = pubDateUtc; + + var files = qRow.Find("td:nth-child(3)").Text(); + release.Files = ParseUtil.CoerceInt(files); + + var grabs = qRow.Find("td:nth-child(7)").Text(); + release.Grabs = ParseUtil.CoerceInt(grabs); + + if (qRow.Find("font[color=\"red\"]:contains(OnlyUp)").Length >= 1) + release.DownloadVolumeFactor = 0; + else + release.DownloadVolumeFactor = 1; + + release.UploadVolumeFactor = 1; releases.Add(release); } diff --git a/src/Jackett/Indexers/BeyondHD.cs b/src/Jackett/Indexers/BeyondHD.cs index 44cb47368..e88c98ba6 100644 --- a/src/Jackett/Indexers/BeyondHD.cs +++ b/src/Jackett/Indexers/BeyondHD.cs @@ -188,6 +188,15 @@ namespace Jackett.Indexers release.Seeders = ParseUtil.CoerceInt(row.ChildElements.ElementAt(9).Cq().Text()); release.Peers = ParseUtil.CoerceInt(row.ChildElements.ElementAt(10).Cq().Text()) + release.Seeders; + var files = qRow.Find("td:nth-child(6)").Text(); + release.Files = ParseUtil.CoerceInt(files); + + var grabs = qRow.Find("td:nth-child(9) > a").Get(0).FirstChild.ToString(); + release.Grabs = ParseUtil.CoerceInt(grabs); + + release.DownloadVolumeFactor = 0; // ratioless + release.UploadVolumeFactor = 1; + releases.Add(release); } diff --git a/src/Jackett/Indexers/BitCityReloaded.cs b/src/Jackett/Indexers/BitCityReloaded.cs index bbe0c441d..7dd7f0bed 100644 --- a/src/Jackett/Indexers/BitCityReloaded.cs +++ b/src/Jackett/Indexers/BitCityReloaded.cs @@ -168,6 +168,22 @@ namespace Jackett.Indexers var catId = qRow.Find("td:eq(0) a").First().Attr("href").Split('=')[1]; release.Category = MapTrackerCatToNewznab(catId); + var cat = qRow.Find("td:eq(0) a").First().Attr("href").Substring(1); + release.Category = MapTrackerCatToNewznab(cat); + + var files = qRow.Find("td:has(a[href*=\"&filelist=1\"])> b:nth-child(2)").Text(); + release.Files = ParseUtil.CoerceInt(files); + + var grabs = qRow.Find("td:has(a[href*=\"&tosnatchers=1\"])> b:nth-child(1)").Text(); + release.Grabs = ParseUtil.CoerceInt(grabs); + + if (qRow.Find("img[src=\"pic/torrent_ou.gif\"]").Length >= 1) + release.DownloadVolumeFactor = 0; + else + release.DownloadVolumeFactor = 1; + + release.UploadVolumeFactor = 1; + releases.Add(release); } } diff --git a/src/Jackett/Indexers/BitMeTV.cs b/src/Jackett/Indexers/BitMeTV.cs index ae83490e9..a06a054b9 100644 --- a/src/Jackett/Indexers/BitMeTV.cs +++ b/src/Jackett/Indexers/BitMeTV.cs @@ -129,6 +129,15 @@ namespace Jackett.Indexers //if (!release.Title.ToLower().Contains(title.ToLower())) // continue; + var files = row.Cq().Find("td:nth-child(4)").Text(); + release.Files = ParseUtil.CoerceInt(files); + + var grabs = row.Cq().Find("td:nth-child(8)").Get(0).FirstChild.ToString(); + release.Grabs = ParseUtil.CoerceInt(grabs); + + release.DownloadVolumeFactor = 1; + release.UploadVolumeFactor = 1; + releases.Add(release); } } diff --git a/src/Jackett/Indexers/Demonoid.cs b/src/Jackett/Indexers/Demonoid.cs index 8bd675918..aaedbc3d1 100644 --- a/src/Jackett/Indexers/Demonoid.cs +++ b/src/Jackett/Indexers/Demonoid.cs @@ -127,6 +127,12 @@ namespace Jackett.Indexers release.Seeders = ParseUtil.CoerceInt(rowB.ChildElements.ElementAt(6).Cq().Text()); release.Peers = ParseUtil.CoerceInt(rowB.ChildElements.ElementAt(6).Cq().Text()) + release.Seeders; + var grabs = rowB.Cq().Find("td:nth-child(6)").Text(); + release.Grabs = ParseUtil.CoerceInt(grabs); + + release.DownloadVolumeFactor = 0; // ratioless + release.UploadVolumeFactor = 1; + releases.Add(release); } diff --git a/src/Jackett/Indexers/DigitalHive.cs b/src/Jackett/Indexers/DigitalHive.cs index 9beb898c2..a5ba3c812 100644 --- a/src/Jackett/Indexers/DigitalHive.cs +++ b/src/Jackett/Indexers/DigitalHive.cs @@ -196,6 +196,20 @@ namespace Jackett.Indexers release.Size = ReleaseInfo.GetBytes(qRow.Find("td:nth-child(7)").First().Text()); release.Seeders = ParseUtil.CoerceInt(qRow.Find("td:nth-child(9)").First().Text()); release.Peers = ParseUtil.CoerceInt(qRow.Find("td:nth-child(10)").First().Text()) + release.Seeders; + + var files = row.Cq().Find("td:nth-child(5)").Text(); + release.Files = ParseUtil.CoerceInt(files); + + var grabs = row.Cq().Find("td:nth-child(8)").Text(); + release.Grabs = ParseUtil.CoerceInt(grabs); + + if (row.Cq().Find("i.fa-star").Any()) + release.DownloadVolumeFactor = 0; + else + release.DownloadVolumeFactor = 1; + + release.UploadVolumeFactor = 1; + releases.Add(release); } diff --git a/src/Jackett/Indexers/Freshon.cs b/src/Jackett/Indexers/Freshon.cs index 3e57a5a37..43350f839 100644 --- a/src/Jackett/Indexers/Freshon.cs +++ b/src/Jackett/Indexers/Freshon.cs @@ -131,6 +131,18 @@ namespace Jackett.Indexers DateTime pubDateUtc = TimeZoneInfo.ConvertTimeToUtc(pubDateRomania, romaniaTz); release.PublishDate = pubDateUtc.ToLocalTime(); + var grabs = row.Cq().Find("td.table_snatch").Get(0).FirstChild.ToString(); + release.Grabs = ParseUtil.CoerceInt(grabs); + + if (row.Cq().Find("img[alt=\"100% Free\"]").Any()) + release.DownloadVolumeFactor = 0; + else if (row.Cq().Find("img[alt=\"50% Free\"]").Any()) + release.DownloadVolumeFactor = 0.5; + else + release.DownloadVolumeFactor = 1; + + release.UploadVolumeFactor = 1; + releases.Add(release); } } diff --git a/src/Jackett/Indexers/FunFile.cs b/src/Jackett/Indexers/FunFile.cs index f15faec5f..5a604efc8 100644 --- a/src/Jackett/Indexers/FunFile.cs +++ b/src/Jackett/Indexers/FunFile.cs @@ -128,6 +128,18 @@ namespace Jackett.Indexers var dateStr = qTimeAgo.Text(); release.PublishDate = DateTimeUtil.FromTimeAgo(dateStr); + var files = qRow.Find("td:nth-child(4)").Text(); + release.Files = ParseUtil.CoerceInt(files); + + var grabs = qRow.Find("td:nth-child(9)").Text(); + release.Grabs = ParseUtil.CoerceInt(grabs); + + var ka = qRow.Next(); + var DLFactor = ka.Find("table > tbody > tr:nth-child(3) > td:nth-child(2)").Text().Replace("X", ""); + var ULFactor = ka.Find("table > tbody > tr:nth-child(3) > td:nth-child(1)").Text().Replace("X", ""); + release.DownloadVolumeFactor = ParseUtil.CoerceDouble(DLFactor); + release.UploadVolumeFactor = ParseUtil.CoerceDouble(ULFactor); + releases.Add(release); } } diff --git a/src/Jackett/Indexers/Fuzer.cs b/src/Jackett/Indexers/Fuzer.cs index 46ac097bd..790ef865c 100644 --- a/src/Jackett/Indexers/Fuzer.cs +++ b/src/Jackett/Indexers/Fuzer.cs @@ -241,6 +241,17 @@ namespace Jackett.Indexers } release.Category = MapTrackerCatToNewznab(category); + + var grabs = qRow.Find("td:nth-child(6)").Text(); + release.Grabs = ParseUtil.CoerceInt(grabs); + + if (qRow.Find("img[src=\"/images/FL.png\"]").Length >= 1) + release.DownloadVolumeFactor = 0; + else + release.DownloadVolumeFactor = 1; + + release.UploadVolumeFactor = 1; + releases.Add(release); } } diff --git a/src/Jackett/Indexers/HDSpace.cs b/src/Jackett/Indexers/HDSpace.cs index 700a69a87..522b0dc6d 100644 --- a/src/Jackett/Indexers/HDSpace.cs +++ b/src/Jackett/Indexers/HDSpace.cs @@ -141,6 +141,21 @@ namespace Jackett.Indexers release.Seeders = ParseUtil.CoerceInt(row.ChildElements.ElementAt(7).Cq().Text()); release.Peers = ParseUtil.CoerceInt(row.ChildElements.ElementAt(8).Cq().Text()) + release.Seeders; + var grabs = qRow.Find("td:nth-child(10)").Text(); + grabs = grabs.Replace("---", "0"); + release.Grabs = ParseUtil.CoerceInt(grabs); + + if (qRow.Find("img[title=\"FreeLeech\"]").Length >= 1) + release.DownloadVolumeFactor = 0; + else if (qRow.Find("img[src=\"images/sf.png\"]").Length >= 1) // side freeleech + release.DownloadVolumeFactor = 0; + else if (qRow.Find("img[title=\"Half FreeLeech\"]").Length >= 1) + release.DownloadVolumeFactor = 0.5; + else + release.DownloadVolumeFactor = 1; + + release.UploadVolumeFactor = 1; + releases.Add(release); } } diff --git a/src/Jackett/Indexers/Hebits.cs b/src/Jackett/Indexers/Hebits.cs index 57bc91b5f..404697474 100644 --- a/src/Jackett/Indexers/Hebits.cs +++ b/src/Jackett/Indexers/Hebits.cs @@ -136,6 +136,24 @@ namespace Jackett.Indexers release.Seeders = ParseUtil.CoerceInt(qRow.Find(".bUping").Text().Trim()); release.Peers = release.Seeders + ParseUtil.CoerceInt(qRow.Find(".bDowning").Text().Trim()); + var files = qRow.Find("div.bFiles").Get(0).LastChild.ToString(); + release.Files = ParseUtil.CoerceInt(files); + + var grabs = qRow.Find("div.bFinish").Get(0).LastChild.ToString(); + release.Grabs = ParseUtil.CoerceInt(grabs); + + if (qRow.Find("img[src=\"/pic/free.jpg\"]").Length >= 1) + release.DownloadVolumeFactor = 0; + else + release.DownloadVolumeFactor = 1; + + if (qRow.Find("img[src=\"/pic/triple.jpg\"]").Length >= 1) + release.UploadVolumeFactor = 3; + else if (qRow.Find("img[src=\"/pic/double.jpg\"]").Length >= 1) + release.UploadVolumeFactor = 2; + else + release.UploadVolumeFactor = 1; + releases.Add(release); } } diff --git a/src/Jackett/Indexers/Hounddawgs.cs b/src/Jackett/Indexers/Hounddawgs.cs index cb4cdfa75..8e7cb5747 100644 --- a/src/Jackett/Indexers/Hounddawgs.cs +++ b/src/Jackett/Indexers/Hounddawgs.cs @@ -131,9 +131,19 @@ namespace Jackett.Indexers release.Size = ReleaseInfo.GetBytes(sizeStr); release.Seeders = ParseUtil.CoerceInt(row.ChildElements.ElementAt(6).Cq().Text()); - release.Peers = ParseUtil.CoerceInt(row.ChildElements.ElementAt(7).Cq().Text()) + release.Seeders; + release.Peers = ParseUtil.CoerceInt(row.ChildElements.ElementAt(7).Cq().Text()) + release.Seeders; + + var files = row.Cq().Find("td:nth-child(4)").Text(); + release.Files = ParseUtil.CoerceInt(files); - releases.Add(release); + if (row.Cq().Find("img[src=\"/static//common/browse/freeleech.png\"]").Any()) + release.DownloadVolumeFactor = 0; + else + release.DownloadVolumeFactor = 1; + + release.UploadVolumeFactor = 1; + + releases.Add(release); } } catch (Exception ex) diff --git a/src/Jackett/Indexers/HouseOfTorrents.cs b/src/Jackett/Indexers/HouseOfTorrents.cs index 7a2f9fb49..2fe27ff18 100644 --- a/src/Jackett/Indexers/HouseOfTorrents.cs +++ b/src/Jackett/Indexers/HouseOfTorrents.cs @@ -196,6 +196,16 @@ namespace Jackett.Indexers release.PublishDate = pubDateUtc.ToLocalTime(); + var files = qRow.Find("td:nth-child(4)").Text(); + release.Files = ParseUtil.CoerceInt(files); + + var grabs = qRow.Find("td:nth-child(8) > a").Html(); + release.Grabs = ParseUtil.CoerceInt(grabs.Split('<')[0]); + + release.DownloadVolumeFactor = 0; // ratioless + + release.UploadVolumeFactor = 1; + releases.Add(release); } } diff --git a/src/Jackett/Indexers/IPTorrents.cs b/src/Jackett/Indexers/IPTorrents.cs index e920411ff..73178b880 100644 --- a/src/Jackett/Indexers/IPTorrents.cs +++ b/src/Jackett/Indexers/IPTorrents.cs @@ -182,6 +182,16 @@ namespace Jackett.Indexers var cat = row.Cq().Find("td:eq(0) a").First().Attr("href").Substring(1); release.Category = MapTrackerCatToNewznab(cat); + var grabs = row.Cq().Find("td:nth-child(7)").Text(); + release.Grabs = ParseUtil.CoerceInt(grabs); + + if(row.Cq().Find("span.t_tag_free_leech").Any()) + release.DownloadVolumeFactor = 0; + else + release.DownloadVolumeFactor = 1; + + release.UploadVolumeFactor = 1; + releases.Add(release); } } diff --git a/src/Jackett/Indexers/ImmortalSeed.cs b/src/Jackett/Indexers/ImmortalSeed.cs index 7fa77ab97..27df7e335 100644 --- a/src/Jackett/Indexers/ImmortalSeed.cs +++ b/src/Jackett/Indexers/ImmortalSeed.cs @@ -119,7 +119,7 @@ namespace Jackett.Indexers release.Comments = new Uri(qRow.Find(".tooltip-target a").First().Attr("href")); // 07-22-2015 11:08 AM - var dateString = qRow.Find("td:eq(1) div").Last().Children().Remove().End().Text().Trim(); + var dateString = qRow.Find("td:eq(1) div").Last().Get(0).LastChild.ToString().Trim(); release.PublishDate = DateTime.ParseExact(dateString, "MM-dd-yyyy hh:mm tt", CultureInfo.InvariantCulture); var sizeStr = qRow.Find("td:eq(4)").Text().Trim(); @@ -136,6 +136,19 @@ namespace Jackett.Indexers } release.Category = MapTrackerCatToNewznab(catLink); + + var grabs = qRow.Find("td:nth-child(6)").Text(); + release.Grabs = ParseUtil.CoerceInt(grabs); + + if (qRow.Find("img[title^=\"Free Torrent\"]").Length >= 1) + release.DownloadVolumeFactor = 0; + else if (qRow.Find("img[title^=\"Silver Torrent\"]").Length >= 1) + release.DownloadVolumeFactor = 0.5; + else + release.DownloadVolumeFactor = 1; + + release.UploadVolumeFactor = 1; + releases.Add(release); } } diff --git a/src/Jackett/Indexers/MoreThanTV.cs b/src/Jackett/Indexers/MoreThanTV.cs index 61b14b87d..d46a0abf8 100644 --- a/src/Jackett/Indexers/MoreThanTV.cs +++ b/src/Jackett/Indexers/MoreThanTV.cs @@ -203,6 +203,7 @@ namespace Jackett.Indexers // Parse required data var downloadAnchorHref = downloadAnchor.Attributes["href"].Value; var torrentId = downloadAnchorHref.Substring(downloadAnchorHref.LastIndexOf('=') + 1); + var files = int.Parse(row.QuerySelector("td:nth-child(4)").TextContent); var publishDate = DateTime.ParseExact(row.QuerySelector(".time.tooltip").Attributes["title"].Value, "MMM dd yyyy, HH:mm", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal); var torrentData = row.QuerySelectorAll(".number_column"); // Size (xx.xx GB[ (Max)]) Snatches (xx) Seeders (xx) Leechers (xx) @@ -213,6 +214,7 @@ namespace Jackett.Indexers torrentId = torrentId.Split('#')[0]; var size = ParseSizeToBytes(torrentData[0].TextContent); + var grabs = int.Parse(torrentData[1].TextContent); var seeders = int.Parse(torrentData[2].TextContent); var guid = new Uri(GuidUrl + torrentId); @@ -226,9 +228,13 @@ namespace Jackett.Indexers PublishDate = publishDate, Seeders = seeders, Peers = seeders, + Files = files, Size = size, + Grabs = grabs, Guid = guid, - Comments = guid + Comments = guid, + DownloadVolumeFactor = 0, // ratioless tracker + UploadVolumeFactor = 1 }; } diff --git a/src/Jackett/Indexers/NewRealWorld.cs b/src/Jackett/Indexers/NewRealWorld.cs index f35838d91..e1fb72a89 100644 --- a/src/Jackett/Indexers/NewRealWorld.cs +++ b/src/Jackett/Indexers/NewRealWorld.cs @@ -198,6 +198,16 @@ namespace Jackett.Indexers DateTime pubDateUtc = TimeZoneInfo.ConvertTimeToUtc(dateGerman, germanyTz); release.PublishDate = pubDateUtc; + var files = qRow.Find("td:contains(Datei) > strong ~ strong").Text(); + release.Files = ParseUtil.CoerceInt(files); + + if (qRow.Find("img[title=\"OnlyUpload\"]").Length >= 1) + release.DownloadVolumeFactor = 0; + else + release.DownloadVolumeFactor = 1; + + release.UploadVolumeFactor = 1; + releases.Add(release); } } diff --git a/src/Jackett/Indexers/PirateTheNet.cs b/src/Jackett/Indexers/PirateTheNet.cs index fd5cf02fd..a42800e84 100644 --- a/src/Jackett/Indexers/PirateTheNet.cs +++ b/src/Jackett/Indexers/PirateTheNet.cs @@ -198,6 +198,15 @@ namespace Jackett.Indexers release.Seeders = ParseUtil.CoerceInt(qSeeders.Text()); release.Peers = ParseUtil.CoerceInt(qLeechers.Text()) + release.Seeders; + var files = qRow.Find("td:nth-child(4)").Text(); + release.Files = ParseUtil.CoerceInt(files); + + var grabs = qRow.Find("td:nth-child(8)").Text(); + release.Grabs = ParseUtil.CoerceInt(grabs); + + release.DownloadVolumeFactor = 0; // ratioless + release.UploadVolumeFactor = 1; + releases.Add(release); } } diff --git a/src/Jackett/Indexers/Pretome.cs b/src/Jackett/Indexers/Pretome.cs index 36200eaad..a91502736 100644 --- a/src/Jackett/Indexers/Pretome.cs +++ b/src/Jackett/Indexers/Pretome.cs @@ -305,6 +305,15 @@ namespace Jackett.Indexers var cat = row.ChildElements.ElementAt(0).ChildElements.ElementAt(0).GetAttribute("href").Replace("browse.php?", string.Empty); release.Category = MapTrackerResultCatToNewznab(cat); + var files = qRow.Find("td:nth-child(4)").Text(); + release.Files = ParseUtil.CoerceInt(files); + + var grabs = qRow.Find("td:nth-child(9)").Text(); + release.Grabs = ParseUtil.CoerceInt(grabs); + + release.DownloadVolumeFactor = 0; // ratioless + release.UploadVolumeFactor = 1; + releases.Add(release); } } diff --git a/src/Jackett/Indexers/SceneAccess.cs b/src/Jackett/Indexers/SceneAccess.cs index 83076603d..b634f7ed4 100644 --- a/src/Jackett/Indexers/SceneAccess.cs +++ b/src/Jackett/Indexers/SceneAccess.cs @@ -151,6 +151,15 @@ namespace Jackett.Indexers release.Category = MapTrackerCatToNewznab(cat); + var files = qRow.Find("td.ttr_size > a").Text().Split(' ')[0]; + release.Files = ParseUtil.CoerceInt(files); + + var grabs = qRow.Find("td.ttr_snatched").Get(0).FirstChild.ToString(); + release.Grabs = ParseUtil.CoerceInt(grabs); + + release.DownloadVolumeFactor = 1; + release.UploadVolumeFactor = 1; + releases.Add(release); } } diff --git a/src/Jackett/Indexers/SceneTime.cs b/src/Jackett/Indexers/SceneTime.cs index 749eccd51..53f982767 100644 --- a/src/Jackett/Indexers/SceneTime.cs +++ b/src/Jackett/Indexers/SceneTime.cs @@ -216,6 +216,13 @@ namespace Jackett.Indexers release.Seeders = ParseUtil.CoerceInt(row.ChildElements.ElementAt(seedersIndex).Cq().Text().Trim()); release.Peers = ParseUtil.CoerceInt(row.ChildElements.ElementAt(leechersIndex).Cq().Text().Trim()) + release.Seeders; + if (row.Cq().Find("font > b:contains(Freeleech)").Length >= 1) + release.DownloadVolumeFactor = 0; + else + release.DownloadVolumeFactor = 1; + + release.UploadVolumeFactor = 1; + releases.Add(release); } } diff --git a/src/Jackett/Indexers/TVChaosUK.cs b/src/Jackett/Indexers/TVChaosUK.cs index 9f691bf9a..202fbeb49 100644 --- a/src/Jackett/Indexers/TVChaosUK.cs +++ b/src/Jackett/Indexers/TVChaosUK.cs @@ -242,6 +242,19 @@ namespace Jackett.Indexers // If its not apps or audio we can only mark as general TV if (release.Category == 0) release.Category = 5030; + + var grabs = qRow.Find("td:nth-child(6)").Text(); + release.Grabs = ParseUtil.CoerceInt(grabs); + + if (qRow.Find("img[alt*=\"Free Torrent\"]").Length >= 1) + release.DownloadVolumeFactor = 0; + else + release.DownloadVolumeFactor = 1; + + if (qRow.Find("img[alt*=\"x2 Torrent\"]").Length >= 1) + release.UploadVolumeFactor = 2; + else + release.UploadVolumeFactor = 1; releases.Add(release); } diff --git a/src/Jackett/Indexers/TorrentBytes.cs b/src/Jackett/Indexers/TorrentBytes.cs index 6974ea8f4..045f44327 100644 --- a/src/Jackett/Indexers/TorrentBytes.cs +++ b/src/Jackett/Indexers/TorrentBytes.cs @@ -143,7 +143,7 @@ namespace Jackett.Indexers var link = row.Cq().Find("td:eq(1) a:eq(1)").First(); release.Guid = new Uri(SiteLink + link.Attr("href")); release.Comments = release.Guid; - release.Title = link.Text().Trim(); + release.Title = link.Get(0).FirstChild.ToString(); release.Description = release.Title; // If we search an get no results, we still get a table just with no info. @@ -171,6 +171,20 @@ namespace Jackett.Indexers release.Seeders = ParseUtil.CoerceInt(row.Cq().Find("td:eq(8)").First().Text().Trim()); release.Peers = ParseUtil.CoerceInt(row.Cq().Find("td:eq(9)").First().Text().Trim()) + release.Seeders; + var files = row.Cq().Find("td:nth-child(3)").Text(); + release.Files = ParseUtil.CoerceInt(files); + + var grabs = row.Cq().Find("td:nth-child(8)").Text(); + if (grabs != "----") + release.Grabs = ParseUtil.CoerceInt(grabs); + + if (row.Cq().Find("font[color=\"green\"]:contains(F):contains(L)").Length >= 1) + release.DownloadVolumeFactor = 0; + else + release.DownloadVolumeFactor = 1; + + release.UploadVolumeFactor = 1; + releases.Add(release); } } diff --git a/src/Jackett/Indexers/TorrentDay.cs b/src/Jackett/Indexers/TorrentDay.cs index 7e15ba727..3b91724b5 100644 --- a/src/Jackett/Indexers/TorrentDay.cs +++ b/src/Jackett/Indexers/TorrentDay.cs @@ -230,6 +230,13 @@ namespace Jackett.Indexers var cat = qRow.Find("td:eq(0) a").First().Attr("href").Substring(15);//browse.php?cat=24 release.Category = MapTrackerCatToNewznab(cat); + if (qRow.Find("span.flTags").Length >= 1) + release.DownloadVolumeFactor = 0; + else + release.DownloadVolumeFactor = 1; + + release.UploadVolumeFactor = 1; + releases.Add(release); } } diff --git a/src/Jackett/Indexers/TorrentHeaven.cs b/src/Jackett/Indexers/TorrentHeaven.cs index b29d4d2a5..99c4c4c0f 100644 --- a/src/Jackett/Indexers/TorrentHeaven.cs +++ b/src/Jackett/Indexers/TorrentHeaven.cs @@ -224,6 +224,18 @@ namespace Jackett.Indexers DateTime pubDateUtc = TimeZoneInfo.ConvertTimeToUtc(dateGerman, germanyTz); release.PublishDate = pubDateUtc.ToLocalTime(); + var grabs = qRow.Find("td:nth-child(7)").Text(); + release.Grabs = ParseUtil.CoerceInt(grabs); + + if (qRow.Find("img[src=\"themes/images/freeleech.png\"]").Length >= 1) + release.DownloadVolumeFactor = 0; + else if (qRow.Find("img[src=\"themes/images/DL50.png\"]").Length >= 1) + release.DownloadVolumeFactor = 0.5; + else + release.DownloadVolumeFactor = 1; + + release.UploadVolumeFactor = 1; + releases.Add(release); } } diff --git a/src/Jackett/Indexers/TorrentLeech.cs b/src/Jackett/Indexers/TorrentLeech.cs index f7c4b9f47..71485091b 100644 --- a/src/Jackett/Indexers/TorrentLeech.cs +++ b/src/Jackett/Indexers/TorrentLeech.cs @@ -181,6 +181,12 @@ namespace Jackett.Indexers var category = qRow.Find(".category a").Attr("href").Replace("/torrents/browse/index/categories/", string.Empty); release.Category = MapTrackerCatToNewznab(category); + var grabs = qRow.Find("td:nth-child(5)").Get(0).FirstChild.ToString(); + release.Grabs = ParseUtil.CoerceInt(grabs); + + release.DownloadVolumeFactor = 1; + release.UploadVolumeFactor = 1; + releases.Add(release); } } diff --git a/src/Jackett/Indexers/TorrentNetwork.cs b/src/Jackett/Indexers/TorrentNetwork.cs index 8e948c417..5d7807be3 100644 --- a/src/Jackett/Indexers/TorrentNetwork.cs +++ b/src/Jackett/Indexers/TorrentNetwork.cs @@ -175,6 +175,21 @@ namespace Jackett.Indexers DateTime pubDateUtc = TimeZoneInfo.ConvertTimeToUtc(dateGerman, germanyTz); release.PublishDate = pubDateUtc.ToLocalTime(); + var files = qRow.Find("td:nth-child(4)").Text(); + release.Files = ParseUtil.CoerceInt(files); + + var grabs = qRow.Find("td:nth-child(8)").Get(0).FirstChild.ToString(); + release.Grabs = ParseUtil.CoerceInt(grabs); + + if (qRow.Find("img[src=\"pic/torrent_ou.gif\"]").Length >= 1) + release.DownloadVolumeFactor = 0; + else if (qRow.Find("font[color=\"gray\"]:contains(50% Down)").Length >= 1) + release.DownloadVolumeFactor = 0.5; + else + release.DownloadVolumeFactor = 1; + + release.UploadVolumeFactor = 1; + releases.Add(release); } } diff --git a/src/Jackett/Indexers/TorrentShack.cs b/src/Jackett/Indexers/TorrentShack.cs index b34daa839..3a53246ce 100644 --- a/src/Jackett/Indexers/TorrentShack.cs +++ b/src/Jackett/Indexers/TorrentShack.cs @@ -96,6 +96,12 @@ namespace Jackett.Indexers release.Seeders = ParseUtil.CoerceInt(qRow.Children().ElementAt(6).InnerText.Trim()); release.Peers = ParseUtil.CoerceInt(qRow.Children().ElementAt(7).InnerText.Trim()) + release.Seeders; + var grabs = qRow.Find("td:nth-child(6)").Text(); + release.Grabs = ParseUtil.CoerceInt(grabs); + + release.DownloadVolumeFactor = 0; // ratioless + release.UploadVolumeFactor = 1; + releases.Add(release); } } diff --git a/src/Jackett/Indexers/TorrentSyndikat.cs b/src/Jackett/Indexers/TorrentSyndikat.cs index 05f80b76e..e6cfe6e85 100644 --- a/src/Jackett/Indexers/TorrentSyndikat.cs +++ b/src/Jackett/Indexers/TorrentSyndikat.cs @@ -187,6 +187,16 @@ namespace Jackett.Indexers release.Seeders = ParseUtil.CoerceInt(row.ChildElements.ElementAt(7).Cq().Text()); release.Peers = ParseUtil.CoerceInt(row.ChildElements.ElementAt(8).Cq().Text()) + release.Seeders; + + var grabs = qRow.Find("td:nth-child(7)").Text(); + release.Grabs = ParseUtil.CoerceInt(grabs); + + if (qRow.Find("span.torrent-tag-free").Length >= 1) + release.DownloadVolumeFactor = 0; + else + release.DownloadVolumeFactor = 1; + + release.UploadVolumeFactor = 1; releases.Add(release); } diff --git a/src/Jackett/Indexers/XSpeeds.cs b/src/Jackett/Indexers/XSpeeds.cs index 453800ba7..1650aac42 100644 --- a/src/Jackett/Indexers/XSpeeds.cs +++ b/src/Jackett/Indexers/XSpeeds.cs @@ -256,6 +256,19 @@ namespace Jackett.Indexers if (release.Category == 0) release.Category = 5030; + var grabs = qRow.Find("td:nth-child(6)").Text(); + release.Grabs = ParseUtil.CoerceInt(grabs); + + if (qRow.Find("img[alt*=\"Free Torrent\"]").Length >= 1) + release.DownloadVolumeFactor = 0; + else + release.DownloadVolumeFactor = 1; + + if (qRow.Find("img[alt*=\"x2 Torrent\"]").Length >= 1) + release.UploadVolumeFactor = 2; + else + release.UploadVolumeFactor = 1; + releases.Add(release); } } diff --git a/src/Jackett/Indexers/myAmity.cs b/src/Jackett/Indexers/myAmity.cs index f4b082816..e89f85b89 100644 --- a/src/Jackett/Indexers/myAmity.cs +++ b/src/Jackett/Indexers/myAmity.cs @@ -155,6 +155,16 @@ namespace Jackett.Indexers DateTime pubDateUtc = TimeZoneInfo.ConvertTimeToUtc(dateGerman, germanyTz); release.PublishDate = pubDateUtc.ToLocalTime(); + var grabs = qRow.Find("td:nth-child(6)").Text(); + release.Grabs = ParseUtil.CoerceInt(grabs); + + if (qRow.Find("img[src=\"images/free.gif\"]").Length >= 1) + release.DownloadVolumeFactor = 0; + else + release.DownloadVolumeFactor = 1; + + release.UploadVolumeFactor = 1; + releases.Add(release); } } diff --git a/src/Jackett/Indexers/x264.cs b/src/Jackett/Indexers/x264.cs index 02c63e544..2b28294f3 100644 --- a/src/Jackett/Indexers/x264.cs +++ b/src/Jackett/Indexers/x264.cs @@ -131,6 +131,11 @@ namespace Jackett.Indexers try { CQ dom = results.Content; + + var sideWideFreeLeech = false; + if (dom.Find("td > b > font[color=\"white\"]:contains(Free Leech)").Length >= 1) + sideWideFreeLeech = true; + var rows = dom["table > tbody > tr[height=36]"]; foreach (var row in rows) { @@ -166,6 +171,18 @@ namespace Jackett.Indexers release.Seeders = ParseUtil.CoerceInt(qSeeders.Text()); release.Peers = ParseUtil.CoerceInt(qLeechers.Text()) + release.Seeders; + var files = qRow.Find("td:nth-child(3)").Text(); + release.Files = ParseUtil.CoerceInt(files); + + var grabs = qRow.Find("td:nth-child(8)").Get(0).FirstChild.ToString(); + release.Grabs = ParseUtil.CoerceInt(grabs); + + if (sideWideFreeLeech || qRow.Find("font[color=\"red\"]:contains(FREE)").Length >= 1) + release.DownloadVolumeFactor = 0; + else + release.DownloadVolumeFactor = 1; + release.UploadVolumeFactor = 1; + releases.Add(release); } }