From d8a4b1b25a21d8880739d6e7154425a833c9f914 Mon Sep 17 00:00:00 2001 From: Sylvain Desbureaux Date: Thu, 16 Jul 2015 01:59:38 +0200 Subject: [PATCH] Added FrenchTorrentDb site --- src/Jackett/Indexers/FrenchTorrentDb.cs | 172 +++++ src/Jackett/Jackett.csproj | 639 +++++++++--------- .../WebContent/logos/frenchtorrentdb.png | Bin 0 -> 13242 bytes src/Jackett/packages.config | 13 +- 4 files changed, 501 insertions(+), 323 deletions(-) create mode 100644 src/Jackett/Indexers/FrenchTorrentDb.cs create mode 100644 src/Jackett/WebContent/logos/frenchtorrentdb.png diff --git a/src/Jackett/Indexers/FrenchTorrentDb.cs b/src/Jackett/Indexers/FrenchTorrentDb.cs new file mode 100644 index 000000000..7aaa1f1ad --- /dev/null +++ b/src/Jackett/Indexers/FrenchTorrentDb.cs @@ -0,0 +1,172 @@ +using CsQuery; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Net; +using System.Net.Http; +using System.Threading.Tasks; +using System.Web; + +namespace Jackett.Indexers +{ + class FrenchTorrentDb : IndexerInterface + { + public event Action OnSaveConfigurationRequested; + + public event Action OnResultParsingError; + + class ConfigurationDataBasicLoginFrenchTorrentDb : ConfigurationData + { + public StringItem Cookie { get; private set; } + + public ConfigurationDataBasicLoginFrenchTorrentDb() + { + Cookie = new StringItem { Name = "Cookie" }; + } + + public override Item[] GetItems() + { + return new Item[] { Cookie }; + } + } + + public string DisplayName + { + get { return "FrenchTorrentDb"; } + } + + public string DisplayDescription + { + get { return "One the biggest French Torrent Tracker"; } + } + + public Uri SiteLink + { + get { return new Uri(BaseUrl); } + + } + + public bool IsConfigured { get; private set; } + const string BaseUrl = "http://www.frenchtorrentdb.com/"; + const string MainUrl = BaseUrl + "?section=INDEX"; + const string SearchUrl = BaseUrl + "?section=TORRENTS&exact=1&name={0}&submit=GO"; + static string chromeUserAgent = BrowserUtil.ChromeUserAgent; + + string cookie = string.Empty; + + CookieContainer cookies; + HttpClientHandler handler; + HttpClient client; + + public FrenchTorrentDb() + { + IsConfigured = false; + cookies = new CookieContainer(); + handler = new HttpClientHandler + { + CookieContainer = cookies, + AllowAutoRedirect = true, + UseCookies = true, + }; + client = new HttpClient(handler); + client.DefaultRequestHeaders.UserAgent.ParseAdd(chromeUserAgent); + } + + public Task GetConfigurationForSetup() + { + var config = new ConfigurationDataUrl(BaseUrl); + return Task.FromResult(config); + } + + public async Task ApplyConfiguration(Newtonsoft.Json.Linq.JToken configJson) + { + var config = new ConfigurationDataBasicLoginFrenchTorrentDb(); + config.LoadValuesFromJson(configJson); + cookies.SetCookies(new Uri(BaseUrl), "WebsiteID=" + config.Cookie.Value); + var mainPage = await client.GetAsync(MainUrl); + string responseContent = await mainPage.Content.ReadAsStringAsync(); + + if (!responseContent.Contains("/?section=LOGOUT")) + { + throw new ExceptionWithConfigData("Failed to login", (ConfigurationData)config); + } + else + { + var configSaveData = new JObject(); + configSaveData["cookie"] = config.Cookie.Value; + + if (OnSaveConfigurationRequested != null) + OnSaveConfigurationRequested(this, configSaveData); + + IsConfigured = true; + } + } + + public void LoadFromSavedConfiguration(Newtonsoft.Json.Linq.JToken jsonConfig) + { + cookie = (string)jsonConfig["cookie"]; + cookies.SetCookies(new Uri(BaseUrl), "WebsiteID=" + cookie); + IsConfigured = true; + } + + public async Task PerformQuery(TorznabQuery query) + { + List releases = new List(); + + foreach (var title in query.ShowTitles ?? new string[] { string.Empty }) + { + var searchString = title + " " + query.GetEpisodeSearchString(); + var episodeSearchUrl = string.Format(SearchUrl, HttpUtility.UrlEncode(searchString)); + + var message = new HttpRequestMessage(); + message.Method = HttpMethod.Get; + message.RequestUri = new Uri(episodeSearchUrl); + + var response = await client.SendAsync(message); + var results = await response.Content.ReadAsStringAsync(); + try + { + + CQ dom = results; + var rows = dom[".results_index ul"]; + foreach (var row in rows) + { + var release = new ReleaseInfo(); + CQ qRow = row.Cq(); + CQ qLink = qRow.Find("li.torrents_name > .torrents_name_link").First(); + CQ qDlLink = qRow.Find("li.torrents_download > a").First(); + + release.MinimumRatio = 1; + release.MinimumSeedTime = 172800; + release.Title = qLink.Text().Trim(); + release.Description = release.Title; + release.Comments = new Uri(BaseUrl + "/" + qLink.Attr("href").TrimStart('/')); + release.Guid = release.Comments; + release.Link = new Uri(BaseUrl + "/" + qDlLink.Attr("href").TrimStart('/')); + release.PublishDate = DateTime.Now; + release.Seeders = ParseUtil.CoerceInt(qRow.Find("li.torrents_seeders").Text()); + release.Peers = ParseUtil.CoerceInt(qRow.Find("li.torrents_leechers").Text()) + release.Seeders; + var sizeParts = qRow.Find("li.torrents_size").Text().Split(' '); + var sizeVal = ParseUtil.CoerceFloat(sizeParts[0]); + var sizeUnit = sizeParts[1]; + release.Size = ReleaseInfo.GetBytes(sizeUnit, sizeVal); + + releases.Add(release); + } + } + catch (Exception ex) + { + OnResultParsingError(this, results, ex); + throw ex; + } + } + return releases.ToArray(); + } + + public Task Download(Uri link) + { + throw new NotImplementedException(); + } + } +} diff --git a/src/Jackett/Jackett.csproj b/src/Jackett/Jackett.csproj index e53951a72..83ec8f5d6 100644 --- a/src/Jackett/Jackett.csproj +++ b/src/Jackett/Jackett.csproj @@ -1,324 +1,329 @@ - - - - - Debug - AnyCPU - {E636D5F8-68B4-4903-B4ED-CCFD9C9E899F} - WinExe - Properties - Jackett - Jackett - v4.5.1 - 512 - - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - jacket_large.ico - - - Jackett.Program - - - - ..\packages\CsQuery.1.3.4\lib\net40\CsQuery.dll - - - ..\packages\NLog.Windows.Forms.2.0.0.0\lib\net35\NLog.Windows.Forms.dll - True - - - - - - - - - - - - - - - ..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll - - - ..\packages\NLog.4.0.1\lib\net45\NLog.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Form - - - Main.cs - - - - - - True - True - Resources.resx - - - - - - - - - - - - - - - - PreserveNewest - - - - - - - - Main.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - - - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - - PreserveNewest - - - - - {74420A79-CC16-442C-8B1E-7C1B913844F0} - CurlSharp - - - - - False - Microsoft .NET Framework 4.5.1 %28x86 and x64%29 - true - - - False - .NET Framework 3.5 SP1 Client Profile - false - - - False - .NET Framework 3.5 SP1 - false - - - - - {F935DC20-1CF0-11D0-ADB9-00C04FD58A0B} - 1 - 0 - 0 - tlbimp - False - True - - - + + + + + Debug + AnyCPU + {E636D5F8-68B4-4903-B4ED-CCFD9C9E899F} + WinExe + Properties + Jackett + Jackett + v4.5.1 + 512 + + false + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + false + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + jacket_large.ico + + + Jackett.Program + + + + ..\packages\CsQuery.1.3.4\lib\net40\CsQuery.dll + + + ..\packages\NLog.Windows.Forms.2.0.0.0\lib\net35\NLog.Windows.Forms.dll + True + + + + + + + + + + + + + + + ..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll + + + ..\packages\NLog.4.0.1\lib\net45\NLog.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Form + + + Main.cs + + + + + + True + True + Resources.resx + + + + + + + + + + + + + + + + PreserveNewest + + + + + + + + Main.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + + PreserveNewest + + + + + {74420A79-CC16-442C-8B1E-7C1B913844F0} + CurlSharp + + + + + False + Microsoft .NET Framework 4.5.1 %28x86 et x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + + + {F935DC20-1CF0-11D0-ADB9-00C04FD58A0B} + 1 + 0 + 0 + tlbimp + False + True + + + - - - - - - - - - - + --> + + + + + + + + + + \ No newline at end of file diff --git a/src/Jackett/WebContent/logos/frenchtorrentdb.png b/src/Jackett/WebContent/logos/frenchtorrentdb.png new file mode 100644 index 0000000000000000000000000000000000000000..ac7ef20117ea16fbcc8c3e5479c724bed4307746 GIT binary patch literal 13242 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 literal 0 HcmV?d00001 diff --git a/src/Jackett/packages.config b/src/Jackett/packages.config index efab650c9..447a7b81f 100644 --- a/src/Jackett/packages.config +++ b/src/Jackett/packages.config @@ -1,7 +1,8 @@ - - - - - - + + + + + + + \ No newline at end of file