Shazbat fixes for searching and relogin if needed (#2607)

* Fixed: (Shazbat) Update searching

* Fixed: (Shazbat) Relogin on redirect to login page
This commit is contained in:
Bogdan
2026-02-18 20:17:54 +02:00
committed by GitHub
parent c3a7fbdd86
commit 407acb6844

View File

@@ -94,7 +94,9 @@ public class Shazbat : TorrentIndexerBase<ShazbatSettings>
protected override bool CheckIfLoginNeeded(HttpResponse httpResponse) protected override bool CheckIfLoginNeeded(HttpResponse httpResponse)
{ {
return (httpResponse.HasHttpRedirect && httpResponse.RedirectUrl.ContainsIgnoreCase("login")) || httpResponse.Content.ContainsIgnoreCase("sign in now"); return (httpResponse.HasHttpRedirect && httpResponse.RedirectUrl.ContainsIgnoreCase("login")) ||
httpResponse.Content.ContainsIgnoreCase("sign in now") ||
(httpResponse.Content.ContainsIgnoreCase("fullRedirect") && httpResponse.Content.ContainsIgnoreCase("login"));
} }
private IndexerCapabilities SetCapabilities() private IndexerCapabilities SetCapabilities()
@@ -168,9 +170,9 @@ public class ShazbatRequestGenerator : IIndexerRequestGenerator
if (term.IsNotNullOrWhiteSpace()) if (term.IsNotNullOrWhiteSpace())
{ {
var request = new HttpRequestBuilder(_settings.BaseUrl + "search").Post() var request = new HttpRequestBuilder(_settings.BaseUrl + "search")
.AddFormParameter("search", term) .AddQueryParam("search", term)
.SetHeader("Content-Type", "application/x-www-form-urlencoded") .AddQueryParam("portlet", "true")
.SetHeader("X-Requested-With", "XMLHttpRequest") .SetHeader("X-Requested-With", "XMLHttpRequest")
.SetHeader("Referer", _settings.BaseUrl) .SetHeader("Referer", _settings.BaseUrl)
.Accept(HttpAccept.Html) .Accept(HttpAccept.Html)
@@ -195,7 +197,7 @@ public class ShazbatRequestGenerator : IIndexerRequestGenerator
term = Regex.Replace(term, @"(.+)\b\d{4}(\.\d{2}\.\d{2})?\b", "$1"); term = Regex.Replace(term, @"(.+)\b\d{4}(\.\d{2}\.\d{2})?\b", "$1");
term = Regex.Replace(term, @"[\.\s\(\)\[\]]+", " "); term = Regex.Replace(term, @"[\.\s\(\)\[\]]+", " ");
return term.ToLower().Trim(); return term.ToLowerInvariant().Trim();
} }
public Func<IDictionary<string, string>> GetCookies { get; set; } public Func<IDictionary<string, string>> GetCookies { get; set; }
@@ -260,15 +262,15 @@ public partial class ShazbatParser : IParseIndexerResponse
var showPageUrl = new HttpRequestBuilder(_settings.BaseUrl + "show") var showPageUrl = new HttpRequestBuilder(_settings.BaseUrl + "show")
.AddQueryParam("id", show.GetAttribute("data-id")) .AddQueryParam("id", show.GetAttribute("data-id"))
.Build() .Build()
.Url.FullUri; .Url
.FullUri;
var showRequest = new HttpRequestBuilder(_settings.BaseUrl + "show").Post() var showRequest = new HttpRequestBuilder(_settings.BaseUrl + "show")
.SetCookies(indexerResponse.HttpResponse.GetCookies() ?? new Dictionary<string, string>()) .SetCookies(indexerResponse.HttpResponse.GetCookies() ?? new Dictionary<string, string>())
.AddQueryParam("id", show.GetAttribute("data-id")) .AddQueryParam("id", show.GetAttribute("data-id"))
.AddQueryParam("show_mode", "torrents") .AddQueryParam("show_mode", "torrents")
.AddFormParameter("portlet", "true") .AddQueryParam("portlet", "true")
.AddFormParameter("tab", "true") .AddQueryParam("tab", "true")
.SetHeader("Content-Type", "application/x-www-form-urlencoded")
.SetHeader("X-Requested-With", "XMLHttpRequest") .SetHeader("X-Requested-With", "XMLHttpRequest")
.SetHeader("Referer", showPageUrl) .SetHeader("Referer", showPageUrl)
.Accept(HttpAccept.Html) .Accept(HttpAccept.Html)