2018-03-10 08:05:56 +00:00
|
|
|
|
using System;
|
2015-04-15 19:42:50 +00:00
|
|
|
|
using System.Net;
|
2018-03-10 08:05:56 +00:00
|
|
|
|
using Newtonsoft.Json.Linq;
|
|
|
|
|
using NLog;
|
2015-04-15 19:42:50 +00:00
|
|
|
|
|
2018-03-10 08:05:56 +00:00
|
|
|
|
namespace Jackett.Common.Helpers
|
2015-04-15 19:42:50 +00:00
|
|
|
|
{
|
2015-07-11 18:54:15 +00:00
|
|
|
|
public static class CookieContainerExtensions
|
|
|
|
|
{
|
2015-07-19 00:27:41 +00:00
|
|
|
|
public static void FillFromJson(this CookieContainer cookies, Uri uri, JToken json, Logger logger)
|
2015-07-11 18:54:15 +00:00
|
|
|
|
{
|
|
|
|
|
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()));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2015-04-23 06:44:21 +00:00
|
|
|
|
|
2015-07-11 18:54:15 +00:00
|
|
|
|
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)
|
|
|
|
|
{
|
2015-07-19 00:27:41 +00:00
|
|
|
|
logger.Info("(Non-critical) Problem loading cookie {0}, {1}, {2}", uri, c, ex.Message);
|
2015-07-11 18:54:15 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2015-07-19 00:59:30 +00:00
|
|
|
|
public static void DumpToJson(this CookieContainer cookies, string uri, JToken json)
|
|
|
|
|
{
|
|
|
|
|
DumpToJson(cookies, new Uri(uri), json);
|
|
|
|
|
}
|
|
|
|
|
|
2015-07-11 18:54:15 +00:00
|
|
|
|
public static void DumpToJson(this CookieContainer cookies, Uri uri, JToken json)
|
|
|
|
|
{
|
|
|
|
|
json["cookie_header"] = cookies.GetCookieHeader(uri);
|
|
|
|
|
}
|
|
|
|
|
}
|
2015-04-15 19:42:50 +00:00
|
|
|
|
}
|