mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-17 17:34:09 +02:00
Fix SCC and duplicate console option
This commit is contained in:
@@ -33,7 +33,7 @@ namespace Jackett.Console
|
|||||||
[Option('k', "Stop", HelpText = "Stop the Jacket Windows service (Must be admin)")]
|
[Option('k', "Stop", HelpText = "Stop the Jacket Windows service (Must be admin)")]
|
||||||
public bool StopService { get; set; }
|
public bool StopService { get; set; }
|
||||||
|
|
||||||
[Option('l', "ListenPublic", HelpText = "Listen publicly")]
|
[Option('p', "ListenPublic", HelpText = "Listen publicly")]
|
||||||
public bool? ListenPublic { get; set; }
|
public bool? ListenPublic { get; set; }
|
||||||
|
|
||||||
[Option('h', "Help", HelpText = "Show Help")]
|
[Option('h', "Help", HelpText = "Show Help")]
|
||||||
|
@@ -67,7 +67,6 @@ namespace Jackett.Indexers
|
|||||||
response = await webclient.GetString(new Utils.Clients.WebRequest()
|
response = await webclient.GetString(new Utils.Clients.WebRequest()
|
||||||
{
|
{
|
||||||
Url = SearchUrl,
|
Url = SearchUrl,
|
||||||
PostData = pairs,
|
|
||||||
Referer = SiteLink.ToString(),
|
Referer = SiteLink.ToString(),
|
||||||
Cookies = response.Cookies
|
Cookies = response.Cookies
|
||||||
});
|
});
|
||||||
|
@@ -2,6 +2,7 @@
|
|||||||
using Jackett.Models;
|
using Jackett.Models;
|
||||||
using Jackett.Services;
|
using Jackett.Services;
|
||||||
using Jackett.Utils;
|
using Jackett.Utils;
|
||||||
|
using Jackett.Utils.Clients;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using NLog;
|
using NLog;
|
||||||
using System;
|
using System;
|
||||||
@@ -19,12 +20,10 @@ namespace Jackett.Indexers
|
|||||||
private readonly string LoginUrl = "";
|
private readonly string LoginUrl = "";
|
||||||
private readonly string SearchUrl = "";
|
private readonly string SearchUrl = "";
|
||||||
|
|
||||||
CookieContainer cookies;
|
private IWebClient webclient;
|
||||||
HttpClientHandler handler;
|
private string cookieHeader = "";
|
||||||
HttpClient client;
|
|
||||||
string cookieHeader;
|
|
||||||
|
|
||||||
public SceneAccess(IIndexerManagerService i, Logger l)
|
public SceneAccess(IIndexerManagerService i, IWebClient c, Logger l)
|
||||||
: base(name: "SceneAccess",
|
: base(name: "SceneAccess",
|
||||||
description: "Your gateway to the scene",
|
description: "Your gateway to the scene",
|
||||||
link: new Uri("https://sceneaccess.eu"),
|
link: new Uri("https://sceneaccess.eu"),
|
||||||
@@ -34,15 +33,7 @@ namespace Jackett.Indexers
|
|||||||
{
|
{
|
||||||
LoginUrl = SiteLink + "/login";
|
LoginUrl = SiteLink + "/login";
|
||||||
SearchUrl = SiteLink + "/{0}?method=1&c{1}=1&search={2}";
|
SearchUrl = SiteLink + "/{0}?method=1&c{1}=1&search={2}";
|
||||||
|
webclient = c;
|
||||||
cookies = new CookieContainer();
|
|
||||||
handler = new HttpClientHandler
|
|
||||||
{
|
|
||||||
CookieContainer = cookies,
|
|
||||||
AllowAutoRedirect = true,
|
|
||||||
UseCookies = true,
|
|
||||||
};
|
|
||||||
client = new HttpClient(handler);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task<ConfigurationData> GetConfigurationForSetup()
|
public Task<ConfigurationData> GetConfigurationForSetup()
|
||||||
@@ -64,34 +55,37 @@ namespace Jackett.Indexers
|
|||||||
|
|
||||||
var content = new FormUrlEncodedContent(pairs);
|
var content = new FormUrlEncodedContent(pairs);
|
||||||
|
|
||||||
string responseContent;
|
// Do the login
|
||||||
var configSaveData = new JObject();
|
var response = await webclient.GetString(new Utils.Clients.WebRequest()
|
||||||
|
{
|
||||||
|
PostData = pairs,
|
||||||
|
Referer = LoginUrl,
|
||||||
|
Type = RequestType.POST,
|
||||||
|
Url = LoginUrl
|
||||||
|
});
|
||||||
|
|
||||||
if (Engine.IsWindows)
|
cookieHeader = response.Cookies;
|
||||||
|
|
||||||
|
if (response.Status == HttpStatusCode.Found)
|
||||||
{
|
{
|
||||||
// If Windows use .net http
|
response = await webclient.GetString(new Utils.Clients.WebRequest()
|
||||||
var response = await client.PostAsync(LoginUrl, content);
|
{
|
||||||
responseContent = await response.Content.ReadAsStringAsync();
|
Url = SiteLink.ToString(),
|
||||||
cookies.DumpToJson(SiteLink, configSaveData);
|
Referer = LoginUrl.ToString(),
|
||||||
}
|
Cookies = cookieHeader
|
||||||
else
|
});
|
||||||
{
|
|
||||||
// If UNIX system use curl
|
|
||||||
var response = await CurlHelper.PostAsync(LoginUrl, pairs);
|
|
||||||
responseContent = Encoding.UTF8.GetString(response.Content);
|
|
||||||
cookieHeader = response.CookieHeader;
|
|
||||||
configSaveData["cookie_header"] = cookieHeader;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!responseContent.Contains("nav_profile"))
|
if (!response.Content.Contains("nav_profile"))
|
||||||
{
|
{
|
||||||
CQ dom = responseContent;
|
CQ dom = response.Content;
|
||||||
var messageEl = dom["#login_box_desc"];
|
var messageEl = dom["#login_box_desc"];
|
||||||
var errorMessage = messageEl.Text().Trim();
|
var errorMessage = messageEl.Text().Trim();
|
||||||
throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config);
|
throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
var configSaveData = new JObject();
|
||||||
SaveConfig(configSaveData);
|
SaveConfig(configSaveData);
|
||||||
IsConfigured = true;
|
IsConfigured = true;
|
||||||
}
|
}
|
||||||
@@ -99,9 +93,11 @@ namespace Jackett.Indexers
|
|||||||
|
|
||||||
public void LoadFromSavedConfiguration(JToken jsonConfig)
|
public void LoadFromSavedConfiguration(JToken jsonConfig)
|
||||||
{
|
{
|
||||||
cookies.FillFromJson(SiteLink, jsonConfig, logger);
|
cookieHeader = (string)jsonConfig["cookie_header"];
|
||||||
cookieHeader = cookies.GetCookieHeader(SiteLink);
|
if (!string.IsNullOrEmpty(cookieHeader))
|
||||||
IsConfigured = true;
|
{
|
||||||
|
IsConfigured = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<ReleaseInfo[]> PerformQuery(TorznabQuery query)
|
public async Task<ReleaseInfo[]> PerformQuery(TorznabQuery query)
|
||||||
@@ -114,20 +110,18 @@ namespace Jackett.Indexers
|
|||||||
|
|
||||||
var searchUrl = string.Format(SearchUrl, searchSection, searchCategory, searchString);
|
var searchUrl = string.Format(SearchUrl, searchSection, searchCategory, searchString);
|
||||||
|
|
||||||
string results;
|
|
||||||
if (Engine.IsWindows)
|
var results = await webclient.GetString(new Utils.Clients.WebRequest()
|
||||||
{
|
{
|
||||||
results = await client.GetStringAsync(searchUrl);
|
Referer = LoginUrl,
|
||||||
}
|
Cookies = cookieHeader,
|
||||||
else
|
Type = RequestType.GET,
|
||||||
{
|
Url = searchUrl
|
||||||
var response = await CurlHelper.GetAsync(searchUrl, cookieHeader);
|
});
|
||||||
results = Encoding.UTF8.GetString(response.Content);
|
|
||||||
}
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
CQ dom = results;
|
CQ dom = results.Content;
|
||||||
var rows = dom["#torrents-table > tbody > tr.tt_row"];
|
var rows = dom["#torrents-table > tbody > tr.tt_row"];
|
||||||
foreach (var row in rows)
|
foreach (var row in rows)
|
||||||
{
|
{
|
||||||
@@ -161,7 +155,7 @@ namespace Jackett.Indexers
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
OnParseError(results, ex);
|
OnParseError(results.Content, ex);
|
||||||
}
|
}
|
||||||
|
|
||||||
return releases.ToArray();
|
return releases.ToArray();
|
||||||
@@ -169,15 +163,13 @@ namespace Jackett.Indexers
|
|||||||
|
|
||||||
public async Task<byte[]> Download(Uri link)
|
public async Task<byte[]> Download(Uri link)
|
||||||
{
|
{
|
||||||
if (Engine.IsWindows)
|
var response = await webclient.GetBytes(new Utils.Clients.WebRequest()
|
||||||
{
|
{
|
||||||
return await client.GetByteArrayAsync(link);
|
Url = link.ToString(),
|
||||||
}
|
Cookies = cookieHeader
|
||||||
else
|
});
|
||||||
{
|
|
||||||
var response = await CurlHelper.GetAsync(link.ToString(), cookieHeader);
|
return response.Content;
|
||||||
return response.Content;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user