Jackett/src/Jackett.Common/Utils/BrowserUtil.cs

59 lines
2.2 KiB
C#
Raw Normal View History

2015-07-12 17:52:32 +00:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
2015-07-12 17:52:32 +00:00
using System.Threading.Tasks;
2015-07-19 00:27:41 +00:00
namespace Jackett.Utils
2015-07-12 17:52:32 +00:00
{
public static class BrowserUtil
{
public static string ChromeUserAgent
{
2015-08-23 21:11:18 +00:00
get {
if (System.Environment.OSVersion.Platform == PlatformID.Unix)
{
2016-01-03 20:40:59 +00:00
return "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chrome/47.0.2526.73 Safari/537.36";
2015-08-23 21:11:18 +00:00
}
else
{
2016-01-03 20:40:59 +00:00
return "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.73 Safari/537.36";
2015-08-23 21:11:18 +00:00
}
}
2015-07-12 17:52:32 +00:00
}
// This can be used to decode e-mail addresses protected by cloudflare
public static string DecodeCloudFlareProtectedEmail(string input)
{
var key = Convert.ToInt32(input.Substring(0, 2), 16);
string result = "";
for (var i = 2; i < input.Length - 1; i += 2)
{
var hexChar = input.Substring(i, 2);
var intChar = Convert.ToInt32(hexChar, 16) ^ key;
var strChar = Convert.ToChar(intChar);
result += strChar;
}
return result;
}
// decode cloudflare protected emails in a HTML document
public static string DecodeCloudFlareProtectedEmailFromHTML(string html)
{
Regex CFEMailRegex = new Regex("<span class=\"__cf_email__\" data-cfemail=\"(\\w+)\">\\[email&#160;protected\\]<\\/span><script data-cfhash='[\\w]+' type=\"text\\/javascript\">.*?<\\/script>", RegexOptions.Compiled);
var CFEMailRegexMatches = CFEMailRegex.Match(html);
while (CFEMailRegexMatches.Success)
{
string all = CFEMailRegexMatches.Groups[0].Value;
string cfemail = CFEMailRegexMatches.Groups[1].Value;
var decoded = DecodeCloudFlareProtectedEmail(cfemail);
html = html.Replace(all, decoded);
CFEMailRegexMatches = CFEMailRegexMatches.NextMatch();
}
return html;
}
2015-07-12 17:52:32 +00:00
}
}