From 8fa1268de2d53d494ac70200450590c889db7381 Mon Sep 17 00:00:00 2001 From: kaso17 Date: Sun, 20 Nov 2016 12:49:56 +0100 Subject: [PATCH] Cardigann: Add support for After rows selector (#711) --- src/Jackett/Indexers/CardigannIndexer.cs | 30 +++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/src/Jackett/Indexers/CardigannIndexer.cs b/src/Jackett/Indexers/CardigannIndexer.cs index d256f895c..786d100bd 100644 --- a/src/Jackett/Indexers/CardigannIndexer.cs +++ b/src/Jackett/Indexers/CardigannIndexer.cs @@ -645,7 +645,35 @@ namespace Jackett.Indexers var SearchResultParser = new HtmlParser(); var SearchResultDocument = SearchResultParser.Parse(results); - var Rows = SearchResultDocument.QuerySelectorAll(Search.Rows.Selector); + var RowsDom = SearchResultDocument.QuerySelectorAll(Search.Rows.Selector); + List Rows = new List(); + foreach (var RowDom in RowsDom) + { + Rows.Add(RowDom); + } + + // merge following rows for After selector + var After = Definition.Search.Rows.After; + if (After > 0) + { + for (int i = 0; i < Rows.Count; i += 1) + { + var CurrentRow = Rows[i]; + for (int j = 0; j < After; j += 1) + { + var MergeRowIndex = i + j + 1; + var MergeRow = Rows[MergeRowIndex]; + List MergeNodes = new List(); + foreach (var node in MergeRow.QuerySelectorAll("td")) + { + MergeNodes.Add(node); + } + CurrentRow.Append(MergeNodes.ToArray()); + } + Rows.RemoveRange(i + 1, After); + } + } + foreach (var Row in Rows) { try