From 24ad51ad156a477feaca197467cfb868ef1a65c4 Mon Sep 17 00:00:00 2001 From: OneBigGuy Date: Sun, 27 Mar 2016 16:50:02 +0300 Subject: [PATCH] Add Fuzer.me tracker --- src/Jackett/Content/logos/fuzer.png | Bin 0 -> 19088 bytes src/Jackett/Indexers/Fuzer.cs | 295 ++++++++++++++++++++++++++++ src/Jackett/Jackett.csproj | 1 + 3 files changed, 296 insertions(+) create mode 100644 src/Jackett/Content/logos/fuzer.png create mode 100644 src/Jackett/Indexers/Fuzer.cs diff --git a/src/Jackett/Content/logos/fuzer.png b/src/Jackett/Content/logos/fuzer.png new file mode 100644 index 0000000000000000000000000000000000000000..19d41c525f2550bb93f96179e4053b59ecc45abc GIT binary patch literal 19088 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 literal 0 HcmV?d00001 diff --git a/src/Jackett/Indexers/Fuzer.cs b/src/Jackett/Indexers/Fuzer.cs new file mode 100644 index 000000000..46ac097bd --- /dev/null +++ b/src/Jackett/Indexers/Fuzer.cs @@ -0,0 +1,295 @@ +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.Linq; +using System.Net; +using System.Net.Http; +using System.Text; +using System.Threading.Tasks; +using System.Web; +using Jackett.Models.IndexerConfig; +using System.Collections.Specialized; +using System.Threading; + +namespace Jackett.Indexers +{ + public class Fuzer : BaseIndexer, IIndexer + { + private string SearchUrl { get { return SiteLink + "index.php?name=torrents&"; } } + private string LoginUrl { get { return SiteLink + "login.php"; } } + private const int MAXPAGES = 3; + + new ConfigurationDataBasicLogin configData + { + get { return (ConfigurationDataBasicLogin)base.configData; } + set { base.configData = value; } + } + + public Fuzer(IIndexerManagerService i, Logger l, IWebClient w, IProtectionService ps) + : base(name: "Fuzer", + description: "Fuzer is a private torrent website with israeli torrents.", + link: "https://fuzer.me/", + manager: i, + client: w, + logger: l, + p: ps, + configData: new ConfigurationDataBasicLogin()) + { + TorznabCaps.Categories.Clear(); + + AddMultiCategoryMapping(TorznabCatType.Movies, 7, 9, 58, 59, 60, 61, 83); + AddMultiCategoryMapping(TorznabCatType.MoviesSD, 7, 58); + AddMultiCategoryMapping(TorznabCatType.MoviesHD, 9, 59, 61); + AddMultiCategoryMapping(TorznabCatType.MoviesBluRay, 59); + AddMultiCategoryMapping(TorznabCatType.MoviesForeign, 83); + AddMultiCategoryMapping(TorznabCatType.MoviesDVD, 58); + AddMultiCategoryMapping(TorznabCatType.Movies3D, 9); + AddMultiCategoryMapping(TorznabCatType.MoviesWEBDL, 9); + AddMultiCategoryMapping(TorznabCatType.TV, 8, 10, 62, 63, 84); + AddMultiCategoryMapping(TorznabCatType.TVHD, 10, 63); + AddMultiCategoryMapping(TorznabCatType.TVFOREIGN, 62, 84); + AddMultiCategoryMapping(TorznabCatType.TVSport, 64); + AddMultiCategoryMapping(TorznabCatType.TVAnime, 65); + AddMultiCategoryMapping(TorznabCatType.TVWEBDL, 10, 63); + AddMultiCategoryMapping(TorznabCatType.TVSD, 8, 62, 84); + AddMultiCategoryMapping(TorznabCatType.TVDocumentary, 8, 10, 62, 63); + AddMultiCategoryMapping(TorznabCatType.Console, 12, 55, 56, 57); + AddMultiCategoryMapping(TorznabCatType.ConsoleXbox, 55); + AddMultiCategoryMapping(TorznabCatType.ConsoleXbox360, 55); + AddMultiCategoryMapping(TorznabCatType.ConsoleXBOX360DLC, 55); + AddMultiCategoryMapping(TorznabCatType.ConsolePS3, 12); + AddMultiCategoryMapping(TorznabCatType.ConsolePS4, 12); + AddMultiCategoryMapping(TorznabCatType.ConsoleXboxOne, 55); + AddMultiCategoryMapping(TorznabCatType.ConsolePS4, 12); + AddMultiCategoryMapping(TorznabCatType.ConsoleWii, 56); + AddMultiCategoryMapping(TorznabCatType.ConsoleWiiwareVC, 56); + AddMultiCategoryMapping(TorznabCatType.ConsolePSP, 57); + AddMultiCategoryMapping(TorznabCatType.ConsoleNDS, 57); + AddMultiCategoryMapping(TorznabCatType.MoviesOther, 57); + AddMultiCategoryMapping(TorznabCatType.PC, 11, 15); + AddMultiCategoryMapping(TorznabCatType.PCGames, 11); + AddMultiCategoryMapping(TorznabCatType.PCMac, 71); + AddMultiCategoryMapping(TorznabCatType.PCPhoneAndroid, 13); + AddMultiCategoryMapping(TorznabCatType.PCPhoneIOS, 70); + AddMultiCategoryMapping(TorznabCatType.Audio, 14, 66, 67, 68); + AddMultiCategoryMapping(TorznabCatType.AudioForeign, 14); + AddMultiCategoryMapping(TorznabCatType.AudioLossless, 67); + AddMultiCategoryMapping(TorznabCatType.AudioAudiobook, 69); + AddMultiCategoryMapping(TorznabCatType.AudioOther, 68); + AddMultiCategoryMapping(TorznabCatType.Other, 17); + AddMultiCategoryMapping(TorznabCatType.XXX, 16); + } + + public async Task ApplyConfiguration(JToken configJson) + { + configData.LoadValuesFromJson(configJson); + var loginPage = await RequestStringWithCookies(LoginUrl, string.Empty); + + var pairs = new Dictionary { + { "vb_login_username", configData.Username.Value }, + { "vb_login_password", "" }, + { "securitytoken", "guest" }, + { "do","login"}, + { "vb_login_md5password", StringUtil.Hash(configData.Password.Value).ToLower()}, + { "vb_login_md5password_utf", StringUtil.Hash(configData.Password.Value).ToLower()}, + { "cookieuser", "1" } + }; + + var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, loginPage.Cookies, true, null, LoginUrl); + + await ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("images/loading.gif"), () => + { + var errorMessage = "Couldn't login"; + throw new ExceptionWithConfigData(errorMessage, configData); + }); + Thread.Sleep(2); + return IndexerConfigurationStatus.RequiresTesting; + } + + public async Task> PerformQuery(TorznabQuery query) + { + var results = await performRegularQuery(query); + if (results.Count() == 0) + { + return await performHebrewQuery(query); + } + + return results; + } + + private async Task> performHebrewQuery(TorznabQuery query) + { + var name = await getHebName(query.SearchTerm); + + if (string.IsNullOrEmpty(name)) + { + return new List(); + } + else + { + return await performRegularQuery(query, name); + } + } + + private async Task> performRegularQuery(TorznabQuery query, string hebName = null) + { + var releases = new List(); + var searchurls = new List(); + var searchUrl = SearchUrl; + var queryCollection = new NameValueCollection(); + var searchString = query.GetQueryString(); + + if (hebName != null) + { + searchString = hebName + " - עונה " + query.Season + " פרק " + query.Episode; + } + + int categoryCounter = 1; + foreach (var cat in MapTorznabCapsToTrackers(query)) + { + searchUrl += "c" + categoryCounter.ToString() + "=" + cat + "&"; + categoryCounter++; + } + + + if (string.IsNullOrWhiteSpace(searchString)) + { + searchUrl = SiteLink + "index.php?name=torrents"; + } + else + { + var strEncoded = HttpUtility.UrlEncode(searchString, Encoding.GetEncoding("Windows-1255")); + searchUrl += "text=" + strEncoded + "&category=0&search=1"; + } + + var data = await RequestBytesWithCookiesAndRetry(searchUrl); + var results = Encoding.GetEncoding("Windows-1255").GetString(data.Content); + try + { + CQ dom = results; + ReleaseInfo release; + + int rowCount = 0; + var rows = dom["#collapseobj_module_17 > tr"]; + foreach (var row in rows) + { + CQ qRow = row.Cq(); + if (rowCount < 1 || qRow.Children().Count() != 9) //skip 1 row because there's an empty row + { + rowCount++; + continue; + } + + release = new ReleaseInfo(); + release.Description = qRow.Find("td:nth-child(2) > a").Text(); ; + + if (hebName != null) + { + release.Title = query.SearchTerm + " " + release.Description.Substring(release.Description.IndexOf(string.Format("S{0:D2}E{1:D2}", query.Season, int.Parse(query.Episode)))); + } + else + { + const string DELIMITER = " | "; + release.Title = release.Description.Substring(release.Description.IndexOf(DELIMITER) + DELIMITER.Length); + } + + release.MinimumRatio = 1; + release.MinimumSeedTime = 172800; + + int seeders, peers; + if (ParseUtil.TryCoerceInt(qRow.Find("td:nth-child(7) > div").Text(), out seeders)) + { + release.Seeders = seeders; + if (ParseUtil.TryCoerceInt(qRow.Find("td:nth-child(8) > div").Text(), out peers)) + { + release.Peers = peers + release.Seeders; + } + } + + string fullSize = qRow.Find("td:nth-child(5) > div").Text(); + release.Size = ReleaseInfo.GetBytes(fullSize); + + release.Guid = new Uri(qRow.Find("td:nth-child(2) > a").Attr("href")); + release.Link = new Uri(SiteLink + qRow.Find("td:nth-child(3) > a").Attr("href")); + release.Comments = release.Guid; + + string[] dateSplit = qRow.Find("td:nth-child(2) > span.torrentstime").Text().Split(' '); + string dateString = dateSplit[1] + " " + dateSplit[3]; + release.PublishDate = DateTime.ParseExact(dateString, "dd-MM-yy HH:mm", CultureInfo.InvariantCulture); + + string category = qRow.Find("script:nth-child(1)").Text(); + int index = category.IndexOf("category="); + if (index == -1) + { + /// Other type + category = "17"; + } + else + { + category = category.Substring(index + "category=".Length, 2); + if (category[1] == '\\') + { + category = category[0].ToString(); + } + } + + release.Category = MapTrackerCatToNewznab(category); + releases.Add(release); + } + } + catch (Exception ex) + { + OnParseError(results, ex); + } + + return releases; + } + + private async Task getHebName(string searchTerm) + { + const string site = "http://thetvdb.com"; + var url = site + "/index.php?searchseriesid=&tab=listseries&function=Search&"; + url += "string=" + searchTerm; // eretz + nehedert + + + var results = await RequestStringWithCookies(url); + + CQ dom = results.Content; + + int rowCount = 0; + var rows = dom["#listtable > tbody > tr"]; + + foreach (var row in rows) + { + if (rowCount < 1) + { + rowCount++; + continue; + } + + CQ qRow = row.Cq(); + CQ link = qRow.Find("td:nth-child(1) > a"); + if (link.Text().Trim().ToLower() == searchTerm.Trim().ToLower()) + { + var address = link.Attr("href"); + if (string.IsNullOrEmpty(address)) { continue; } + + var realAddress = site + address.Replace("lid=7", "lid=24"); + var realData = await RequestStringWithCookies(realAddress); + + CQ realDom = realData.Content; + return realDom["#content:nth-child(1) > h1"].Text(); + } + } + + return string.Empty; + } + } +} diff --git a/src/Jackett/Jackett.csproj b/src/Jackett/Jackett.csproj index d771ae813..6ce060367 100644 --- a/src/Jackett/Jackett.csproj +++ b/src/Jackett/Jackett.csproj @@ -200,6 +200,7 @@ +