From 121736358ba0fa77da4dc1469767de6a555eeab6 Mon Sep 17 00:00:00 2001 From: flightlevel Date: Thu, 18 Aug 2016 20:55:58 +1000 Subject: [PATCH] Revert "Pretome: Remove" (#446) --- README.md | 1 + src/Jackett/Content/logos/pretome.png | Bin 0 -> 15014 bytes src/Jackett/Indexers/Pretome.cs | 324 ++++++++++++++++++++++++++ src/Jackett/Jackett.csproj | 4 + 4 files changed, 329 insertions(+) create mode 100644 src/Jackett/Content/logos/pretome.png create mode 100644 src/Jackett/Indexers/Pretome.cs diff --git a/README.md b/README.md index 116ec55ca..488128e49 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,7 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/ * MyAnonamouse * NCore * NextGen + * Pretome * PrivateHD * RevolutionTT * SceneAccess diff --git a/src/Jackett/Content/logos/pretome.png b/src/Jackett/Content/logos/pretome.png new file mode 100644 index 0000000000000000000000000000000000000000..e42ca78fa872eecc301cb2d1d4c97562133da5b9 GIT binary patch literal 15014 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 resultMapping = new List(); + + new ConfigurationDataPinNumber configData + { + get { return (ConfigurationDataPinNumber)base.configData; } + set { base.configData = value; } + } + + public Pretome(IIndexerManagerService i, IWebClient wc, Logger l, IProtectionService ps) + : base(name: "PreToMe", + description: "BitTorrent site for High Quality, High Definition (HD) movies and TV Shows", + link: "https://pretome.info/", + caps: TorznabUtil.CreateDefaultTorznabTVCaps(), + client: wc, + manager: i, + logger: l, + p: ps, + configData: new ConfigurationDataPinNumber()) + { + + AddCategoryMapping("cat[]=22&tags=Windows", TorznabCatType.PC0day); + AddCategoryMapping("cat[]=22&tags=MAC", TorznabCatType.PCMac); + AddCategoryMapping("cat[]=22&tags=Linux", TorznabCatType.PC); + + AddCategoryMapping("cat[]=27", TorznabCatType.BooksEbook); + + AddCategoryMapping("cat[]=4&tags=PC", TorznabCatType.PCGames); + AddCategoryMapping("cat[]=4&tags=RIP", TorznabCatType.PCGames); + AddCategoryMapping("cat[]=4&tags=ISO", TorznabCatType.PCGames); + AddCategoryMapping("cat[]=4&tags=XBOX360", TorznabCatType.ConsoleXbox360); + AddCategoryMapping("cat[]=4&tags=PS3", TorznabCatType.ConsolePS3); + AddCategoryMapping("cat[]=4&tags=Wii", TorznabCatType.ConsoleWii); + AddCategoryMapping("cat[]=4&tags=PSP", TorznabCatType.ConsolePSP); + AddCategoryMapping("cat[]=4&tags=NSD", TorznabCatType.ConsoleNDS); + AddCategoryMapping("cat[]=4&tags=XBox", TorznabCatType.ConsoleXbox); + AddCategoryMapping("cat[]=4&tags=PS2", TorznabCatType.ConsoleOther); + + AddCategoryMapping("cat[]=31&tags=Ebook", TorznabCatType.BooksEbook); + AddCategoryMapping("cat[]=31&tags=RARFiX", TorznabCatType.Other); + + AddCategoryMapping("cat[]=19&tags=x264", TorznabCatType.Movies); + AddCategoryMapping("cat[]=19&tags=720p", TorznabCatType.MoviesHD); + AddCategoryMapping("cat[]=19&tags=XviD", TorznabCatType.MoviesSD); + AddCategoryMapping("cat[]=19&tags=BluRay", TorznabCatType.MoviesHD); + AddCategoryMapping("cat[]=19&tags=DVDRiP", TorznabCatType.MoviesSD); + AddCategoryMapping("cat[]=19&tags=1080p", TorznabCatType.MoviesHD); + AddCategoryMapping("cat[]=19&tags=DVD", TorznabCatType.MoviesSD); + AddCategoryMapping("cat[]=19&tags=DVDR", TorznabCatType.MoviesSD); + AddCategoryMapping("cat[]=19&tags=WMV", TorznabCatType.Movies); + AddCategoryMapping("cat[]=19&tags=CAM", TorznabCatType.Movies); + + AddCategoryMapping("cat[]=6&tags=MP3", TorznabCatType.AudioMP3); + AddCategoryMapping("cat[]=6&tags=V2", TorznabCatType.AudioMP3); + AddCategoryMapping("cat[]=6&tags=FLAC", TorznabCatType.AudioLossless); + AddCategoryMapping("cat[]=6&tags=320kbps", TorznabCatType.AudioMP3); + + AddCategoryMapping("cat[]=7&tags=x264", TorznabCatType.TVHD); + AddCategoryMapping("cat[]=7&tags=720p", TorznabCatType.TVHD); + AddCategoryMapping("cat[]=7&tags=HDTV", TorznabCatType.TVHD); + AddCategoryMapping("cat[]=7&tags=XviD", TorznabCatType.TVSD); + AddCategoryMapping("cat[]=7&BluRay", TorznabCatType.TVHD); + AddCategoryMapping("cat[]=7&tags=DVDRip", TorznabCatType.TVSD); + AddCategoryMapping("cat[]=7&tags=DVD", TorznabCatType.TVSD); + AddCategoryMapping("cat[]=7&tags=Documentary", TorznabCatType.TVDocumentary); + AddCategoryMapping("cat[]=7&tags=PDTV", TorznabCatType.TVSD); + AddCategoryMapping("cat[]=7&tags=HD-DVD", TorznabCatType.TVSD); + + + AddCategoryMapping("cat[]=51&tags=XviD", TorznabCatType.XXXXviD); + AddCategoryMapping("cat[]=51&tags=DVDRiP", TorznabCatType.XXXDVD); + + // Unfortunately they are tags not categories so return the results + // as the parent category so do not get results removed with the filtering. + + AddResultCategoryMapping("cat[]=22&tags=Windows", TorznabCatType.PC); + AddResultCategoryMapping("cat[]=22&tags=MAC", TorznabCatType.PC); + AddResultCategoryMapping("cat[]=22&tags=Linux", TorznabCatType.PC); + AddResultCategoryMapping("cat[]=22&tags=All", TorznabCatType.PC); + AddResultCategoryMapping("cat[]=22", TorznabCatType.PC); + + AddResultCategoryMapping("cat[]=27&tags=All", TorznabCatType.Books); + AddResultCategoryMapping("cat[]=27", TorznabCatType.Books); + + AddResultCategoryMapping("cat[]=4&tags=PC", TorznabCatType.PC); + AddResultCategoryMapping("cat[]=4&tags=RIP", TorznabCatType.PC); + AddResultCategoryMapping("cat[]=4&tags=ISO", TorznabCatType.PC); + AddResultCategoryMapping("cat[]=4&tags=XBOX360", TorznabCatType.Console); + AddResultCategoryMapping("cat[]=4&tags=PS3", TorznabCatType.Console); + AddResultCategoryMapping("cat[]=4&tags=Wii", TorznabCatType.Console); + AddResultCategoryMapping("cat[]=4&tags=PSP", TorznabCatType.Console); + AddResultCategoryMapping("cat[]=4&tags=NSD", TorznabCatType.Console); + AddResultCategoryMapping("cat[]=4&tags=XBox", TorznabCatType.Console); + AddResultCategoryMapping("cat[]=4&tags=PS2", TorznabCatType.Console); + AddResultCategoryMapping("cat[]=4&tags=All", TorznabCatType.Console); + AddResultCategoryMapping("cat[]=4", TorznabCatType.Console); + + AddResultCategoryMapping("cat[]=31&tags=Ebook", TorznabCatType.Books); + AddResultCategoryMapping("cat[]=31&tags=RARFiX", TorznabCatType.Other); + AddResultCategoryMapping("cat[]=31&tags=All", TorznabCatType.Other); + AddResultCategoryMapping("cat[]=31", TorznabCatType.Other); + + AddResultCategoryMapping("cat[]=19&tags=x264", TorznabCatType.Movies); + AddResultCategoryMapping("cat[]=19&tags=720p", TorznabCatType.Movies); + AddResultCategoryMapping("cat[]=19&tags=XviD", TorznabCatType.Movies); + AddResultCategoryMapping("cat[]=19&tags=BluRay", TorznabCatType.Movies); + AddResultCategoryMapping("cat[]=19&tags=DVDRiP", TorznabCatType.Movies); + AddResultCategoryMapping("cat[]=19&tags=1080p", TorznabCatType.Movies); + AddResultCategoryMapping("cat[]=19&tags=DVD", TorznabCatType.Movies); + AddResultCategoryMapping("cat[]=19&tags=DVDR", TorznabCatType.Movies); + AddResultCategoryMapping("cat[]=19&tags=WMV", TorznabCatType.Movies); + AddResultCategoryMapping("cat[]=19&tags=CAM", TorznabCatType.Movies); + AddResultCategoryMapping("cat[]=19&tags=All", TorznabCatType.Movies); + AddResultCategoryMapping("cat[]=19", TorznabCatType.Movies); + + AddResultCategoryMapping("cat[]=6&tags=MP3", TorznabCatType.Audio); + AddResultCategoryMapping("cat[]=6&tags=V2", TorznabCatType.Audio); + AddResultCategoryMapping("cat[]=6&tags=FLAC", TorznabCatType.Audio); + AddResultCategoryMapping("cat[]=6&tags=320kbps", TorznabCatType.Audio); + AddResultCategoryMapping("cat[]=6&tags=All", TorznabCatType.Audio); + AddResultCategoryMapping("cat[]=6", TorznabCatType.Audio); + + AddResultCategoryMapping("cat[]=7&tags=x264", TorznabCatType.TV); + AddResultCategoryMapping("cat[]=7&tags=720p", TorznabCatType.TV); + AddResultCategoryMapping("cat[]=7&tags=HDTV", TorznabCatType.TV); + AddResultCategoryMapping("cat[]=7&tags=XviD", TorznabCatType.TV); + AddResultCategoryMapping("cat[]=7&BluRay", TorznabCatType.TV); + AddResultCategoryMapping("cat[]=7&tags=DVDRip", TorznabCatType.TV); + AddResultCategoryMapping("cat[]=7&tags=DVD", TorznabCatType.TV); + AddResultCategoryMapping("cat[]=7&tags=Documentary", TorznabCatType.TV); + AddResultCategoryMapping("cat[]=7&tags=PDTV", TorznabCatType.TV); + AddResultCategoryMapping("cat[]=7&tags=HD-DVD", TorznabCatType.TV); + AddResultCategoryMapping("cat[]=7&tags=All", TorznabCatType.TV); + AddResultCategoryMapping("cat[]=7", TorznabCatType.TV); + + AddResultCategoryMapping("cat[]=51&tags=XviD", TorznabCatType.XXX); + AddResultCategoryMapping("cat[]=51&tags=DVDRiP", TorznabCatType.XXX); + AddResultCategoryMapping("cat[]=51&tags=All", TorznabCatType.XXX); + AddResultCategoryMapping("cat[]=51", TorznabCatType.XXX); + } + + protected void AddResultCategoryMapping(string trackerCategory, TorznabCategory newznabCategory) + { + resultMapping.Add(new CategoryMapping(trackerCategory.ToString(), newznabCategory.ID)); + if (!TorznabCaps.Categories.Contains(newznabCategory)) + TorznabCaps.Categories.Add(newznabCategory); + } + + public async Task ApplyConfiguration(JToken configJson) + { + configData.LoadValuesFromJson(configJson); + + var loginPage = await RequestStringWithCookies(LoginUrl, string.Empty); + + var pairs = new Dictionary { + { "returnto", "%2F" }, + { "login_pin", configData.Pin.Value }, + { "username", configData.Username.Value }, + { "password", configData.Password.Value }, + { "login", "Login" } + }; + + // Send Post + var result = await PostDataWithCookies(LoginUrl, pairs, loginPage.Cookies); + if (result.RedirectingTo == null) + { + throw new ExceptionWithConfigData("Login failed. Did you use the PIN number that pretome emailed you?", configData); + } + var loginCookies = result.Cookies; + // Get result from redirect + await FollowIfRedirect(result, LoginUrl, null, loginCookies); + + await ConfigureIfOK(loginCookies, result.Content != null && result.Content.Contains("logout.php"), () => + { + CookieHeader = string.Empty; + throw new ExceptionWithConfigData("Failed", configData); + }); + + return IndexerConfigurationStatus.RequiresTesting; + } + + public async Task> PerformQuery(TorznabQuery query) + { + var releases = new List(); + var queryUrl = SearchUrl; + var queryCollection = new NameValueCollection(); + var cats = MapTorznabCapsToTrackers(query); + var tags = string.Empty; + var catGroups = new List(); + foreach (var cat in cats) + { + //"cat[]=7&tags=x264" + var cSplit = cat.Split('&'); + if (cSplit.Length > 0) + { + var gsplit = cSplit[0].Split('='); + if (gsplit.Length > 1) + { + catGroups.Add(gsplit[1]); + } + } + + if (cSplit.Length > 1) + { + var gsplit = cSplit[1].Split('='); + if (gsplit.Length > 1) + { + if (tags != string.Empty) + tags += ","; + tags += gsplit[1]; + } + } + } + + if (catGroups.Distinct().Count() == 1) + { + queryCollection.Add("cat[]", catGroups.First()); + } + + if (!string.IsNullOrWhiteSpace(query.GetQueryString())) + { + queryCollection.Add("st", "1"); + queryCollection.Add("search", query.GetQueryString()); + } + + // Do not include too many tags as it'll mess with their servers. + if (tags.Split(',').Length < 7) + { + queryCollection.Add("tags", tags); + queryCollection.Add("tf", "any"); + } + + if (queryCollection.Count > 0) + { + queryUrl += "?" + queryCollection.GetQueryString(); + } + + var response = await RequestStringWithCookiesAndRetry(queryUrl); + + try + { + CQ dom = response.Content; + var rows = dom["table > tbody > tr.browse"]; + foreach (var row in rows) + { + CQ qRow = row.Cq(); + var release = new ReleaseInfo(); + + release.MinimumRatio = 1; + release.MinimumSeedTime = 172800; + + var qLink = row.ChildElements.ElementAt(1).Cq().Find("a").First(); + release.Title = qLink.Text().Trim(); + if (qLink.Find("span").Count() == 1 && release.Title.StartsWith("NEW! |")) + { + release.Title = release.Title.Substring(6).Trim(); + } + + release.Comments = new Uri(SiteLink + qLink.Attr("href")); + release.Guid = release.Comments; + + var qDownload = row.ChildElements.ElementAt(2).Cq().Find("a").First(); + release.Link = new Uri(SiteLink + qDownload.Attr("href")); + + var dateStr = row.ChildElements.ElementAt(5).InnerHTML.Replace("
", " "); + release.PublishDate = DateTimeUtil.FromTimeAgo(dateStr); + + var sizeStr = row.ChildElements.ElementAt(7).Cq().Text(); + release.Size = ReleaseInfo.GetBytes(sizeStr); + + release.Seeders = ParseUtil.CoerceInt(row.ChildElements.ElementAt(9).InnerText); + release.Peers = ParseUtil.CoerceInt(row.ChildElements.ElementAt(10).InnerText) + release.Seeders; + + var cat = row.ChildElements.ElementAt(0).ChildElements.ElementAt(0).GetAttribute("href").Replace("browse.php?", string.Empty); + release.Category = MapTrackerResultCatToNewznab(cat); + + releases.Add(release); + } + } + catch (Exception ex) + { + OnParseError(response.Content, ex); + } + return releases; + } + + protected int MapTrackerResultCatToNewznab(string input) + { + if (null != input) + { + input = input.ToLowerInvariant(); + var mapping = resultMapping.Where(m => m.TrackerCategory.ToLowerInvariant() == input.ToLowerInvariant()).FirstOrDefault(); + if (mapping != null) + { + return mapping.NewzNabCategory; + } + } + return 0; + } + } +} diff --git a/src/Jackett/Jackett.csproj b/src/Jackett/Jackett.csproj index 3dd249598..9ad7e3ed1 100644 --- a/src/Jackett/Jackett.csproj +++ b/src/Jackett/Jackett.csproj @@ -241,6 +241,7 @@ + @@ -511,6 +512,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest