From 2e0c22eb6dc62ca7aa5ea5ebf6d624748588a968 Mon Sep 17 00:00:00 2001 From: morpheus133 Date: Mon, 11 Jun 2018 17:15:21 +0200 Subject: [PATCH 01/12] NCore: fix for #1450 (#3220) Some workoround to "Ncore - not forward all search results to Sonarr, Radarr" In case of TV shows if nothing is founded, retry the search without SxxExx after the show name. This will list all torrent also if their title or description are changed. Than add the result only if it contains the skipped SxxExx --- src/Jackett.Common/Indexers/NCore.cs | 32 ++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/src/Jackett.Common/Indexers/NCore.cs b/src/Jackett.Common/Indexers/NCore.cs index eceafb727..48222fe12 100644 --- a/src/Jackett.Common/Indexers/NCore.cs +++ b/src/Jackett.Common/Indexers/NCore.cs @@ -117,12 +117,17 @@ namespace Jackett.Common.Indexers return IndexerConfigurationStatus.RequiresTesting; } - protected override async Task> PerformQuery(TorznabQuery query) + protected async Task> PerformQuery(TorznabQuery query, String seasonep) { var releases = new List(); var searchString = query.GetQueryString(); var pairs = new List>(); + if (seasonep != null) + { + searchString = Regex.Split(query.GetQueryString(), @"(?i)S\d+E?\d+\s?$")[0]; + } + pairs.Add(new KeyValuePair("nyit_sorozat_resz", "true")); pairs.Add(new KeyValuePair("miben", "name")); pairs.Add(new KeyValuePair("tipus", "kivalasztottak_kozott")); @@ -198,8 +203,18 @@ namespace Jackett.Common.Indexers string catlink = qRow.Find("a:has(img[class='categ_link'])").First().Attr("href"); string cat = ParseUtil.GetArgumentFromQueryString(catlink, "tipus"); release.Category = MapTrackerCatToNewznab(cat); + if (seasonep == null) + releases.Add(release); + + else + { + Match m = Regex.Match(release.Title, @""+ seasonep + @"\s?$", RegexOptions.IgnoreCase); + if (m.Success) + { + releases.Add(release); + } + } - releases.Add(release); } } catch (Exception ex) @@ -209,5 +224,18 @@ namespace Jackett.Common.Indexers return releases; } + + protected override async Task> PerformQuery(TorznabQuery query) + { + var results = await PerformQuery(query, null); + if (results.Count()==0 && query.IsTVSearch) + { + var regex = new Regex(@"(?i)S\d+E?\d+\s?$"); + String seasonepisode = regex.Match(query.GetQueryString()).Value; + results = await PerformQuery(query, seasonepisode.Trim()); + } + + return results; + } } } From d6781f67b230ac89d54c0b6d074c7869c62f6ef3 Mon Sep 17 00:00:00 2001 From: kaso17 Date: Mon, 11 Jun 2018 17:28:24 +0200 Subject: [PATCH 02/12] NCore: improve search fix --- src/Jackett.Common/Indexers/NCore.cs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/Jackett.Common/Indexers/NCore.cs b/src/Jackett.Common/Indexers/NCore.cs index 48222fe12..4fb2c2566 100644 --- a/src/Jackett.Common/Indexers/NCore.cs +++ b/src/Jackett.Common/Indexers/NCore.cs @@ -125,7 +125,7 @@ namespace Jackett.Common.Indexers if (seasonep != null) { - searchString = Regex.Split(query.GetQueryString(), @"(?i)S\d+E?\d+\s?$")[0]; + searchString = query.SanitizedSearchTerm; } pairs.Add(new KeyValuePair("nyit_sorozat_resz", "true")); @@ -209,7 +209,7 @@ namespace Jackett.Common.Indexers else { Match m = Regex.Match(release.Title, @""+ seasonep + @"\s?$", RegexOptions.IgnoreCase); - if (m.Success) + if (query.MatchQueryStringAND(release.Title, null, seasonep)) { releases.Add(release); } @@ -230,9 +230,7 @@ namespace Jackett.Common.Indexers var results = await PerformQuery(query, null); if (results.Count()==0 && query.IsTVSearch) { - var regex = new Regex(@"(?i)S\d+E?\d+\s?$"); - String seasonepisode = regex.Match(query.GetQueryString()).Value; - results = await PerformQuery(query, seasonepisode.Trim()); + results = await PerformQuery(query,query.GetEpisodeSearchString()); } return results; From 2492f1b797a65970392c426f407cc1fb6ae83a3b Mon Sep 17 00:00:00 2001 From: kaso17 Date: Mon, 11 Jun 2018 17:31:46 +0200 Subject: [PATCH 03/12] NCore: add comment --- src/Jackett.Common/Indexers/NCore.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Jackett.Common/Indexers/NCore.cs b/src/Jackett.Common/Indexers/NCore.cs index 4fb2c2566..9b0e94557 100644 --- a/src/Jackett.Common/Indexers/NCore.cs +++ b/src/Jackett.Common/Indexers/NCore.cs @@ -228,7 +228,7 @@ namespace Jackett.Common.Indexers protected override async Task> PerformQuery(TorznabQuery query) { var results = await PerformQuery(query, null); - if (results.Count()==0 && query.IsTVSearch) + if (results.Count()==0 && query.IsTVSearch) // if we search for a localized title ncore can't handle any extra S/E information, search without it and AND filter the results. See #1450 { results = await PerformQuery(query,query.GetEpisodeSearchString()); } From f49c58a1fac0ca3769dece35d9817e35a9189288 Mon Sep 17 00:00:00 2001 From: R91g Date: Mon, 11 Jun 2018 17:33:26 +0200 Subject: [PATCH 04/12] HD-Spain: add indexer (#3222) Add Spanish Private HD tracker https://www.hd-spain.com/ Based on Albvadi's code from HD-Spain forum all credit to him, I only added some changes for better search, ISO correct and spain flag detection --- src/Jackett.Common/Definitions/hdspain.yml | 142 +++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 src/Jackett.Common/Definitions/hdspain.yml diff --git a/src/Jackett.Common/Definitions/hdspain.yml b/src/Jackett.Common/Definitions/hdspain.yml new file mode 100644 index 000000000..9b6da421d --- /dev/null +++ b/src/Jackett.Common/Definitions/hdspain.yml @@ -0,0 +1,142 @@ +--- + site: hdspain + name: HD-Spain + description: "HD-Spain is a SPANISH site for HD content" + language: es-es + type: private + encoding: ISO-8859-1 + links: + - https://www.hd-spain.com/ + + caps: + categorymappings: + - {id: 1 , cat: Movies/HD, desc: "Películas"} + - {id: 5 , cat: Movies/HD, desc: "Pelíc. Anim."} + - {id: 4 , cat: TV/HD, desc: "Series"} + - {id: 3 , cat: TV/HD, desc: "Series Anim."} + - {id: 6 , cat: TV/Documentary, desc: "Documentales"} + - {id: 11, cat: TV/Sport, desc: "Deportes"} + - {id: 7 , cat: Audio/Video, desc: "Música/Espec."} + - {id: 9 , cat: TV/OTHER, desc: "Programas TV"} + - {id: 8 , cat: Audio/Lossless, desc: "Audios"} + - {id: 10, cat: XXX/x264, desc: "XXX"} + modes: + search: [q] + + login: + path: index.php + method: form + inputs: + usuario: "{{ .Config.username }}" + contrasena: "{{ .Config.password }}" + error: + - selector: p.error + test: + path: index.php + selector: .tcabecera + + search: + path: index.php + keywordsfilters: + - name: re_replace + args: ["S0?(\\d{1,2})E(\\d{1,2})", "$1x$2"] + inputs: + sec: listado + ord: 9 + b: "{{ .Keywords }}" + ver: "0" + relanz: "0" + $raw: "{{range .Categories}}&cat[]={{.}}{{end}}" + rows: + selector: "table.listatorrents tr:not(:first-child)" + fields: + category: + selector: td.categorias a + attribute: href + filters: + - name: querystring + args: cat + title: + selector: td.titulo a[id] + filters: + - name: append + args: " [spanish]" + details: + selector: td.titulo a + attribute: href + size: + selector: td.tamano + seeders: + selector: td.usuarios.seeds a + leechers: + selector: td.usuarios.leechers a + grabs: + selector: td.usuarios.completados + date: + optional: true + selector: td.fecha + attribute: title + filters: + - name: replace + args: ["Lunes", "Monday"] + - name: replace + args: ["Martes", "Tuesday"] + - name: re_replace + args: ["Miércoles", "Wednesday"] + - name: replace + args: ["Jueves", "Thursday"] + - name: replace + args: ["Viernes", "Friday"] + - name: re_replace + args: ["Sábado", "Saturday"] + - name: replace + args: ["Domingo", "Sunday"] + - name: replace + args: ["Enero", "January"] + - name: replace + args: ["Febrero", "February"] + - name: replace + args: ["Marzo", "March"] + - name: replace + args: ["Abril", "April"] + - name: replace + args: ["Mayo", "May"] + - name: replace + args: ["Junio", "June"] + - name: replace + args: ["Julio", "July"] + - name: replace + args: ["Agosto", "August"] + - name: replace + args: ["Septiembre", "September"] + - name: replace + args: ["Octubre", "October"] + - name: replace + args: ["Noviembre", "November"] + - name: replace + args: ["Diciembre", "December"] + - name: dateparse + args: "Monday 2 January 2006, 15:04" + download: + selector: td.descargar a + attribute: href + + downloadvolumefactor: + text: "1" + downloadvolumefactor: + optional: true + selector: td.descargar a b strong + filters: + - name: replace + args: [" X2", ""] + - name: replace + args: ["Freeleech", "0"] + + uploadvolumefactor: + text: "1" + uploadvolumefactor: + optional: true + selector: td.descargar a b strong + filters: + - name: replace + args: ["Freeleech X2", "2"] From 117a670aa3ec0cfe52d5070d793e45f912600dfb Mon Sep 17 00:00:00 2001 From: R91g Date: Mon, 11 Jun 2018 17:33:49 +0200 Subject: [PATCH 05/12] Update readme (add HD-Spain tracker) (#3223) Add new private tracker HD-Spain --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 625a1ddf1..2ef247b4c 100644 --- a/README.md +++ b/README.md @@ -171,6 +171,7 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/ * HD-Forever * HD-Only * HD-Space + * HD-Spain * HD-Torrents * HD-Bits.com * HDBits From 635e8240d2facf340507cf7fc07581b940be7459 Mon Sep 17 00:00:00 2001 From: la55u <30611343+la55u@users.noreply.github.com> Date: Mon, 11 Jun 2018 17:36:29 +0200 Subject: [PATCH 06/12] RevTT: added files count (#3213) --- src/Jackett.Common/Indexers/RevolutionTT.cs | 3 +++ src/Jackett.Common/Utils/ParseUtil.cs | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Jackett.Common/Indexers/RevolutionTT.cs b/src/Jackett.Common/Indexers/RevolutionTT.cs index c9e4f2eac..19c63b405 100644 --- a/src/Jackett.Common/Indexers/RevolutionTT.cs +++ b/src/Jackett.Common/Indexers/RevolutionTT.cs @@ -352,6 +352,9 @@ namespace Jackett.Common.Indexers var grabsStr = qRow.Find("td:nth-child(8)").Text(); release.Grabs = ParseUtil.GetLongFromString(grabsStr); + var filesStr = qRow.Find("td:nth-child(7) > a").Text(); + release.Files = ParseUtil.GetLongFromString(filesStr); + var category = qRow.Find(".br_type > a").Attr("href").Replace("browse.php?cat=", string.Empty); release.Category = MapTrackerCatToNewznab(category); } diff --git a/src/Jackett.Common/Utils/ParseUtil.cs b/src/Jackett.Common/Utils/ParseUtil.cs index bb35e57ac..7f98a0305 100644 --- a/src/Jackett.Common/Utils/ParseUtil.cs +++ b/src/Jackett.Common/Utils/ParseUtil.cs @@ -118,4 +118,4 @@ namespace Jackett.Common.Utils return "tt" + ((int)imdbid).ToString("D7"); } } -} \ No newline at end of file +} From 99d8f63f9ed01561f4a333dd495569aeca5aada4 Mon Sep 17 00:00:00 2001 From: kaso17 Date: Mon, 11 Jun 2018 18:31:10 +0200 Subject: [PATCH 07/12] HDChina: try to fix search --- src/Jackett.Common/Definitions/hdchina.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Jackett.Common/Definitions/hdchina.yml b/src/Jackett.Common/Definitions/hdchina.yml index 1384ba16f..0ba7292b8 100644 --- a/src/Jackett.Common/Definitions/hdchina.yml +++ b/src/Jackett.Common/Definitions/hdchina.yml @@ -61,7 +61,6 @@ search: paths: - path: /torrents.php - method: post inputs: $raw: "{{range .Categories}}cat{{.}}=1&{{end}}" search: "{{if .Query.IMDBID}}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}" From b58c9fb71842e82901fd2099fc2820811507a638 Mon Sep 17 00:00:00 2001 From: kaso17 Date: Mon, 11 Jun 2018 18:31:27 +0200 Subject: [PATCH 08/12] HDHome: try to fix search --- src/Jackett.Common/Definitions/hdhome.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Jackett.Common/Definitions/hdhome.yml b/src/Jackett.Common/Definitions/hdhome.yml index d4c733e0e..5da2afe2c 100644 --- a/src/Jackett.Common/Definitions/hdhome.yml +++ b/src/Jackett.Common/Definitions/hdhome.yml @@ -82,7 +82,6 @@ search: paths: - path: /torrents.php - method: post inputs: $raw: "{{range .Categories}}cat{{.}}=1&{{end}}" search: "{{if .Query.IMDBID}}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}" From 7883534c5e731e607dca736a5bbad83874a5e27b Mon Sep 17 00:00:00 2001 From: garfield69 Date: Wed, 13 Jun 2018 06:49:10 +1200 Subject: [PATCH 09/12] Btbit: apply sort for all results #3209 --- src/Jackett.Common/Definitions/btbit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Jackett.Common/Definitions/btbit.yml b/src/Jackett.Common/Definitions/btbit.yml index 325d51b5e..e7114c690 100644 --- a/src/Jackett.Common/Definitions/btbit.yml +++ b/src/Jackett.Common/Definitions/btbit.yml @@ -28,7 +28,7 @@ search: paths: - - path: "list/{{if .Keywords}}{{.Keywords}}{{else}}movie/1-1-0{{end}}.html" + - path: "list/{{if .Keywords}}{{.Keywords}}{{else}}movie/{{end}}1-1-0.html" rows: selector: .rs fields: From 32aae44ffc3925d958bba927c2931ed0b0fadd0a Mon Sep 17 00:00:00 2001 From: garfield69 Date: Wed, 13 Jun 2018 07:04:35 +1200 Subject: [PATCH 10/12] Btbit: fix slash in wrong place #3902 --- src/Jackett.Common/Definitions/btbit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Jackett.Common/Definitions/btbit.yml b/src/Jackett.Common/Definitions/btbit.yml index e7114c690..200a44ad5 100644 --- a/src/Jackett.Common/Definitions/btbit.yml +++ b/src/Jackett.Common/Definitions/btbit.yml @@ -28,7 +28,7 @@ search: paths: - - path: "list/{{if .Keywords}}{{.Keywords}}{{else}}movie/{{end}}1-1-0.html" + - path: "list/{{if .Keywords}}{{.Keywords}}{{else}}movie{{end}}/1-1-0.html" rows: selector: .rs fields: From c4aa49eb32056d55198bbfc862f50059701caa3f Mon Sep 17 00:00:00 2001 From: Raphael Barreiros Date: Tue, 12 Jun 2018 16:44:42 -0300 Subject: [PATCH 11/12] Update BJ-Share to new domain name (#3225) * Update BJ-Share to new domain name BJ-Share changed its domain from bj-share.me to bj-share.info * Added LegacySiteLinks method --- src/Jackett.Common/Indexers/BJShare.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Jackett.Common/Indexers/BJShare.cs b/src/Jackett.Common/Indexers/BJShare.cs index 0031dc2a3..a4364cc6c 100644 --- a/src/Jackett.Common/Indexers/BJShare.cs +++ b/src/Jackett.Common/Indexers/BJShare.cs @@ -28,6 +28,10 @@ namespace Jackett.Common.Indexers { { "agents of shield", "Agents of S.H.I.E.L.D."} }; + + public override string[] LegacySiteLinks { get; protected set; } = new string[] { + "https://bj-share.me/" + }; private ConfigurationDataBasicLoginWithRSSAndDisplay ConfigData { @@ -38,7 +42,7 @@ namespace Jackett.Common.Indexers public BJShare(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps) : base("BJ-Share", description: "A brazilian tracker.", - link: "https://bj-share.me/", + link: "https://bj-share.info/", caps: TorznabUtil.CreateDefaultTorznabTVCaps(), configService: configService, client: wc, From 6f7ecbfb7b6c24458155c2d19a82428a4ab969d0 Mon Sep 17 00:00:00 2001 From: garfield69 Date: Wed, 13 Jun 2018 13:01:32 +1200 Subject: [PATCH 12/12] Yggtorrent: domain changed, fixes #3228 --- src/Jackett.Common/Definitions/yggtorrent.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Jackett.Common/Definitions/yggtorrent.yml b/src/Jackett.Common/Definitions/yggtorrent.yml index b3d95b155..f8e8cd8bf 100644 --- a/src/Jackett.Common/Definitions/yggtorrent.yml +++ b/src/Jackett.Common/Definitions/yggtorrent.yml @@ -6,8 +6,9 @@ type: semi-private encoding: UTF-8 links: - - https://yggtorrent.is/ + - https://ww1.yggtorrent.is/ legacylinks: + - https://yggtorrent.is/ - https://yggtorrent.com/ - https://ww1.yggtorrent.com/