From 7c49cea4b64cc95166250d441d94f1692eb00dcf Mon Sep 17 00:00:00 2001 From: Bogdan Date: Thu, 8 Feb 2024 22:49:51 +0200 Subject: [PATCH] toloka: remove huge cookie (#15044) --- src/Jackett.Common/Indexers/BaseIndexer.cs | 2 +- src/Jackett.Common/Indexers/Toloka.cs | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/Jackett.Common/Indexers/BaseIndexer.cs b/src/Jackett.Common/Indexers/BaseIndexer.cs index 2556c7fe6..2402ef5bb 100644 --- a/src/Jackett.Common/Indexers/BaseIndexer.cs +++ b/src/Jackett.Common/Indexers/BaseIndexer.cs @@ -648,7 +648,7 @@ namespace Jackett.Common.Indexers } } - private string ResolveCookies(string incomingCookies = "") + protected virtual string ResolveCookies(string incomingCookies = "") { var redirRequestCookies = string.IsNullOrWhiteSpace(CookieHeader) ? incomingCookies : CookieHeader + " " + incomingCookies; var cookieDictionary = CookieUtil.CookieHeaderToDictionary(redirRequestCookies); diff --git a/src/Jackett.Common/Indexers/Toloka.cs b/src/Jackett.Common/Indexers/Toloka.cs index 32fa2994d..5493677b0 100644 --- a/src/Jackett.Common/Indexers/Toloka.cs +++ b/src/Jackett.Common/Indexers/Toloka.cs @@ -9,6 +9,7 @@ using Jackett.Common.Models; using Jackett.Common.Models.IndexerConfig.Bespoke; using Jackett.Common.Services.Interfaces; using Jackett.Common.Utils; +using Newtonsoft.Json; using Newtonsoft.Json.Linq; using NLog; using WebClient = Jackett.Common.Utils.Clients.WebClient; @@ -231,6 +232,16 @@ namespace Jackett.Common.Indexers return IndexerConfigurationStatus.RequiresTesting; } + protected override string ResolveCookies(string incomingCookies = "") + { + var cookieDictionary = CookieUtil.CookieHeaderToDictionary(base.ResolveCookies(incomingCookies)); + + var badCookies = cookieDictionary.Where(x => x.Key.StartsWith("toloka_") && x.Key.EndsWith("_u")).ToList(); + badCookies.ForEach(x => cookieDictionary.Remove(x.Key)); + + return CookieUtil.CookieDictionaryToHeader(cookieDictionary); + } + protected override async Task> PerformQuery(TorznabQuery query) { var releases = new List();