From f05eca3a9f406bf7128f7bdb3f7f01e62fd2c576 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20L=C3=B6wenhamn?= Date: Mon, 15 Feb 2016 13:10:06 +0100 Subject: [PATCH] Added support for ILoveTorrents.me --- src/Jackett/Content/logos/ilovetorrents.png | Bin 0 -> 22835 bytes src/Jackett/Indexers/ILoveTorrents.cs | 162 ++++++++++++++++++++ src/Jackett/Jackett.csproj | 4 + 3 files changed, 166 insertions(+) create mode 100644 src/Jackett/Content/logos/ilovetorrents.png create mode 100644 src/Jackett/Indexers/ILoveTorrents.cs diff --git a/src/Jackett/Content/logos/ilovetorrents.png b/src/Jackett/Content/logos/ilovetorrents.png new file mode 100644 index 0000000000000000000000000000000000000000..b85a68bacbea9787056ef60e3c7a2ac9c1792902 GIT binary patch literal 22835 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 GgZ>}cL_(MV literal 0 HcmV?d00001 diff --git a/src/Jackett/Indexers/ILoveTorrents.cs b/src/Jackett/Indexers/ILoveTorrents.cs new file mode 100644 index 000000000..31dd2c4ac --- /dev/null +++ b/src/Jackett/Indexers/ILoveTorrents.cs @@ -0,0 +1,162 @@ +using System; +using System.Collections.Generic; +using System.Collections.Specialized; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using CsQuery; +using CsQuery.ExtensionMethods.Internal; +using Jackett.Models; +using Jackett.Models.IndexerConfig; +using Jackett.Services; +using Jackett.Utils; +using Jackett.Utils.Clients; +using Newtonsoft.Json.Linq; +using NLog; + +namespace Jackett.Indexers +{ + // ReSharper disable once InconsistentNaming + public class ILoveTorrents : BaseIndexer, IIndexer + { + private string BrowseUrl => SiteLink + "browse.php"; + private string LoginUrl => SiteLink + "takelogin.php"; + + new ConfigurationDataBasicLogin configData + { + get { return (ConfigurationDataBasicLogin)base.configData; } + set { base.configData = value; } + } + + public ILoveTorrents(IIndexerManagerService i, IWebClient wc, Logger l, IProtectionService ps) + : base(name: "ILoveTorrents", + description: "ILT", + link: "https://www.ilovetorrents.me/", + caps: TorznabUtil.CreateDefaultTorznabTVCaps(), + manager: i, + client: wc, + logger: l, + p: ps, + configData: new ConfigurationDataBasicLogin()) + { + AddCategoryMapping(7, TorznabCatType.TV); + AddCategoryMapping(8, TorznabCatType.TVHD); + + AddCategoryMapping(80, TorznabCatType.MoviesBluRay); + AddCategoryMapping(20, TorznabCatType.MoviesDVD); + AddCategoryMapping(41, TorznabCatType.MoviesHD); + AddCategoryMapping(19, TorznabCatType.Movies); + } + + public async Task ApplyConfiguration(JToken configJson) + { + configData.LoadValuesFromJson(configJson); + var pairs = new Dictionary { + { "username", configData.Username.Value }, + { "password", configData.Password.Value }, + { "returnto", "/" }, + { "login", "Log in!" } + }; + + var loginPage = await RequestStringWithCookies(SiteLink, string.Empty); + + var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, loginPage.Cookies, true, SiteLink, SiteLink); + await ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("logout.php"), () => + { + CQ dom = result.Content; + var messageEl = dom["body > div"].First(); + 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 = BrowseUrl; + var trackerCats = MapTorznabCapsToTrackers(query); + var queryCollection = new NameValueCollection(); + + // Tracker can only search OR return things in categories + if (!string.IsNullOrWhiteSpace(searchString)) + { + queryCollection.Add("search", searchString); + queryCollection.Add("cat", "0"); + } + else + { + foreach (var cat in MapTorznabCapsToTrackers(query)) + { + queryCollection.Add("c" + cat, "1"); + } + + queryCollection.Add("incldead", "0"); + } + + searchUrl += "?" + queryCollection.GetQueryString(); + + await ProcessPage(releases, searchUrl); + return releases; + } + + private async Task ProcessPage(List releases, string searchUrl) + { + var response = await RequestStringWithCookiesAndRetry(searchUrl, null, BrowseUrl); + var results = response.Content; + try + { + CQ dom = results; + + var rows = dom[".koptekst tr"]; + foreach (var row in rows.Skip(1)) + { + var release = new ReleaseInfo(); + + var link = row.Cq().Find("td:eq(2) a:eq(0)").First(); + var text = row.Cq().Find("td:eq(1) a:eq(0)").First(); + release.Guid = new Uri(SiteLink + link.Attr("href")); + release.Comments = release.Guid; + release.Title = text.Text().Trim(); //link.Text().Trim(); + release.Description = release.Title; + + // If we search an get no results, we still get a table just with no info. + if (string.IsNullOrWhiteSpace(release.Title)) + { + break; + } + + // Check if the release has been assigned a category + if (row.Cq().Find("td:eq(0) a").Length > 0) + { + var cat = row.Cq().Find("td:eq(0) a").First().Attr("href").Substring(15); + release.Category = MapTrackerCatToNewznab(cat); + } + + var qLink = row.Cq().Find("td:eq(1) a").First(); + release.Link = new Uri(SiteLink + qLink.Attr("href")); + + var added = row.Cq().Find("td:eq(7)").First().Text().Trim(); + var date = added.Substring(0, 10); + var time = added.Substring(12, 8); + var dateTime = date + time; + release.PublishDate = DateTime.ParseExact(dateTime, "yyyy-MM-ddHH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal).ToLocalTime(); + + var sizeStr = row.Cq().Find("td:eq(8)").First().Text().Trim(); + release.Size = ReleaseInfo.GetBytes(sizeStr); + + release.Seeders = ParseUtil.CoerceInt(row.Cq().Find("td:eq(10)").First().Text().Trim()); + release.Peers = ParseUtil.CoerceInt(row.Cq().Find("td:eq(11)").First().Text().Trim()) + release.Seeders; + + releases.Add(release); + } + } + catch (Exception ex) + { + OnParseError(results, ex); + } + } + } +} diff --git a/src/Jackett/Jackett.csproj b/src/Jackett/Jackett.csproj index 3ce9f8f8f..78732f22e 100644 --- a/src/Jackett/Jackett.csproj +++ b/src/Jackett/Jackett.csproj @@ -201,6 +201,7 @@ + @@ -478,6 +479,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest