From 8a9949ac93c79fe88b0505827bcb73af4aef8fa0 Mon Sep 17 00:00:00 2001 From: kaso17 Date: Thu, 29 Dec 2016 12:19:25 +0100 Subject: [PATCH] MatchQueryStringAND: add support for character limit --- src/Jackett/Models/TorznabQuery.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/Jackett/Models/TorznabQuery.cs b/src/Jackett/Models/TorznabQuery.cs index 0769b84a6..0455ff5ae 100644 --- a/src/Jackett/Models/TorznabQuery.cs +++ b/src/Jackett/Models/TorznabQuery.cs @@ -68,13 +68,21 @@ namespace Jackett.Models // Some trackers don't support AND logic for search terms resulting in unwanted results. // Using this method we can AND filter it within jackett. - public bool MatchQueryStringAND(string title) + // With limit we can limit the amount of characters which should be compared (use it if a tracker doesn't return the full title). + public bool MatchQueryStringAND(string title, int limit = -1) { // We cache the regex split results so we have to do it only once for each query. if (QueryStringParts == null) { + var queryString = GetQueryString(); + if (limit > 0) + { + if (limit > queryString.Length) + limit = queryString.Length; + queryString = queryString.Substring(0, limit); + } Regex SplitRegex = new Regex("[^a-zA-Z0-9]+"); - QueryStringParts = SplitRegex.Split(GetQueryString()); + QueryStringParts = SplitRegex.Split(queryString); } // Check if each part of the query string is in the given title.