From ac5e69a3b28d9473841e10fc63570bd3980a3b37 Mon Sep 17 00:00:00 2001 From: kobik Date: Wed, 27 Jul 2016 07:08:06 +0300 Subject: [PATCH] New indexer - Hebits.net (#406) * Added Hebits.net as an indexer - a private Israel tracker * Added new indexer Hebits to the readme file * Deleted debug messages leftovers --- README.md | 1 + src/Jackett/Content/logos/hebits.png | Bin 0 -> 11477 bytes src/Jackett/Indexers/Hebits.cs | 144 +++++++++++++++++++++++++++ src/Jackett/Jackett.csproj | 6 +- 4 files changed, 150 insertions(+), 1 deletion(-) create mode 100644 src/Jackett/Content/logos/hebits.png create mode 100644 src/Jackett/Indexers/Hebits.cs diff --git a/README.md b/README.md index ceae550db..b261c148d 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,7 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/ * Fuzer * HD-Space * HD-Torrents + * Hebits * Hounddawgs * ILoveTorrents * Immortalseed diff --git a/src/Jackett/Content/logos/hebits.png b/src/Jackett/Content/logos/hebits.png new file mode 100644 index 0000000000000000000000000000000000000000..5d9298e8ad45a33acb324c413cd30dda98216ad6 GIT binary patch literal 11477 zcmZ{KWl$VU)9oT5xCeI)4qW)%YltDu#LIwZ;XtE$l)qhy3`cmx2ru>$}n#sC061OUKy%xPB<{I`K%Dkmcefc|e3 zbd{(4V~`v{IxYYJ`oRALCXET5_#gS%RaQaj^VVlVbOv0kVw?^DfN4NhQcT@*Ww6Vq z-h9D}{OQ%t=G>3$artq>f3_1IND(5I9vWyY^aqw$h

1bi}EMH{MohsCGP7Rc$w` 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 literal 0 HcmV?d00001 diff --git a/src/Jackett/Indexers/Hebits.cs b/src/Jackett/Indexers/Hebits.cs new file mode 100644 index 000000000..97b85cdae --- /dev/null +++ b/src/Jackett/Indexers/Hebits.cs @@ -0,0 +1,144 @@ +using CsQuery; +using Jackett.Models; +using Jackett.Services; +using Jackett.Utils; +using Jackett.Utils.Clients; +using Newtonsoft.Json.Linq; +using NLog; +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Threading.Tasks; +using System.Web; +using Jackett.Models.IndexerConfig; +using System.Text.RegularExpressions; + +namespace Jackett.Indexers +{ + public class Hebits : BaseIndexer, IIndexer + { + private string LoginUrl { get { return SiteLink + "login.php"; } } + private string LoginPostUrl { get { return SiteLink + "takeloginAjax.php"; } } + private string SearchUrl { get { return SiteLink + "browse.php?sort=4&type=desc"; } } + + new ConfigurationDataBasicLogin configData + { + get { return (ConfigurationDataBasicLogin)base.configData; } + set { base.configData = value; } + } + + public Hebits(IIndexerManagerService i, Logger l, IWebClient wc, IProtectionService ps) + : base(name: "Hebits", + description: "The Israeli Tracker", + link: "https://hebits.net/", + caps: TorznabUtil.CreateDefaultTorznabTVCaps(), + manager: i, + client: wc, + logger: l, + p: ps, + downloadBase: "https://hebits.net/", + configData: new ConfigurationDataBasicLogin()) + { + + AddCategoryMapping(19, TorznabCatType.MoviesSD); + AddCategoryMapping(25, TorznabCatType.MoviesOther); // Israeli Content + AddCategoryMapping(20, TorznabCatType.MoviesDVD); + AddCategoryMapping(36, TorznabCatType.MoviesBluRay); + AddCategoryMapping(27, TorznabCatType.MoviesHD); + + AddCategoryMapping(7, TorznabCatType.TVSD); // Israeli SDTV + AddCategoryMapping(24, TorznabCatType.TVSD); // English SDTV + AddCategoryMapping(1, TorznabCatType.TVHD); // Israel HDTV + AddCategoryMapping(37, TorznabCatType.TVHD); // Israel HDTV + } + + public async Task ApplyConfiguration(JToken configJson) + { + configData.LoadValuesFromJson(configJson); + var pairs = new Dictionary { + { "username", configData.Username.Value }, + { "password", configData.Password.Value } + }; + + // Get inital cookies + CookieHeader = string.Empty; + var result = await RequestLoginAndFollowRedirect(LoginPostUrl, pairs, CookieHeader, true, null, SiteLink); + await ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("OK"), () => + { + CQ dom = result.Content; + var messageEl = dom["#errorMsg"].Last(); + var errorMessage = messageEl.Text().Trim(); + throw new ExceptionWithConfigData(errorMessage, configData); + }); + return IndexerConfigurationStatus.RequiresTesting; + } + + public async Task> PerformQuery(TorznabQuery query) + { + var releases = new List(); + var searchString = query.GetQueryString(); + var searchUrl = SearchUrl; + + if (!string.IsNullOrWhiteSpace(searchString)) + { + searchUrl += "&search=" + HttpUtility.UrlEncode(searchString); + } + string.Format(SearchUrl, HttpUtility.UrlEncode(searchString)); + + var cats = MapTorznabCapsToTrackers(query); + if (cats.Count > 0) + { + foreach (var cat in cats) + { + searchUrl += "&c" + cat + "=1"; + } + } + + var results = await RequestStringWithCookiesAndRetry(searchUrl); + try + { + CQ dom = results.Content; + + CQ qRows = dom[".browse > div > div"]; + + foreach (var row in qRows) + { + var release = new ReleaseInfo(); + + var qRow = row.Cq(); + + var debug = qRow.Html(); + + release.MinimumRatio = 1; + release.MinimumSeedTime = 172800; + + release.Title = qRow.Find(".bTitle").Text().Split('/')[1].Trim(); + release.Link = new Uri(SiteLink + qRow.Find("a").Attr("href")); + release.Guid = release.Link; + + var dateString = qRow.Find("div:last-child").Text().Trim(); + var pattern = "\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}"; + var match = Regex.Match(dateString, pattern); + if (match.Success) + { + release.PublishDate = DateTime.ParseExact(match.Value, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture); + } + + var sizeStr = qRow.Find(".bSize").Text(); + release.Size = ReleaseInfo.GetBytes(sizeStr); + release.Seeders = ParseUtil.CoerceInt(qRow.Find(".bUping").Text().Trim()); + release.Peers = release.Seeders + ParseUtil.CoerceInt(qRow.Find(".bDowning").Text().Trim()); + + releases.Add(release); + } + } + + catch (Exception ex) + { + OnParseError(results.Content, ex); + } + + return releases; + } + } +} diff --git a/src/Jackett/Jackett.csproj b/src/Jackett/Jackett.csproj index b37aae35a..dbbf0b02c 100644 --- a/src/Jackett/Jackett.csproj +++ b/src/Jackett/Jackett.csproj @@ -186,6 +186,7 @@ + @@ -623,6 +624,9 @@ PreserveNewest + + PreserveNewest + TextTemplatingFileGenerator TorznabCatType.generated.cs @@ -683,4 +687,4 @@ - + \ No newline at end of file