mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-17 17:34:09 +02:00
Fixes for loading saved cookie problems
This commit is contained in:
@@ -5,29 +5,53 @@ using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web;
|
||||
|
||||
namespace Jackett
|
||||
{
|
||||
public static class CookieContainerExtensions
|
||||
{
|
||||
public static void FillFromJson (this CookieContainer cookies, Uri uri, JArray json)
|
||||
{
|
||||
foreach (string cookie in json) {
|
||||
public static class CookieContainerExtensions
|
||||
{
|
||||
|
||||
var w = cookie.Split ('=');
|
||||
if (w.Length == 1)
|
||||
cookies.Add (uri, new Cookie{ Name = cookie.Trim () });
|
||||
else
|
||||
cookies.Add (uri, new Cookie (w [0].Trim (), w [1].Trim ()));
|
||||
}
|
||||
}
|
||||
public static void FillFromJson(this CookieContainer cookies, Uri uri, JToken json)
|
||||
{
|
||||
if (json["cookies"] != null)
|
||||
{
|
||||
var cookieArray = (JArray)json["cookies"];
|
||||
foreach (string cookie in cookieArray)
|
||||
{
|
||||
var w = cookie.Split('=');
|
||||
if (w.Length == 1)
|
||||
{
|
||||
cookies.Add(uri, new Cookie { Name = cookie.Trim() });
|
||||
}
|
||||
else
|
||||
{
|
||||
cookies.Add(uri, new Cookie(w[0].Trim(), w[1].Trim()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static JArray ToJson (this CookieContainer cookies, Uri baseUrl)
|
||||
{
|
||||
return new JArray ((
|
||||
from cookie in cookies.GetCookies (baseUrl).Cast<Cookie> ()
|
||||
select cookie.Name.Trim () + "=" + cookie.Value.Trim ()
|
||||
).ToArray ());
|
||||
}
|
||||
}
|
||||
if (json["cookie_header"] != null)
|
||||
{
|
||||
var cfh = (string)json["cookie_header"];
|
||||
var cookieHeaders = ((string)json["cookie_header"]).Split(';');
|
||||
foreach (var c in cookieHeaders)
|
||||
{
|
||||
try
|
||||
{
|
||||
cookies.SetCookies(uri, c);
|
||||
}
|
||||
catch (CookieException ex)
|
||||
{
|
||||
Program.LoggerInstance.Info("(Non-critical) Problem loading cookie {0}, {1}, {2}", uri, c, ex.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void DumpToJson(this CookieContainer cookies, Uri uri, JToken json)
|
||||
{
|
||||
json["cookie_header"] = cookies.GetCookieHeader(uri);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user