ZeroLauncher/Manager/CloundMananger.cs

85 lines
2.9 KiB
C#
Raw Normal View History

2024-03-09 18:29:16 +08:00
using System.Net.Http;
using System.Net;
using Zerolauncher.Defender;
using Zerolauncher.util;
namespace Zerolauncher.Manager
{
class StaticUrl
{
public const string QMessageMain = "https://sharechain.qq.com/";
public const string MasterMessage = "54aeb77c47b967d22c2c1396d00d91f0";
public const string SummerMessage = "037846c482eddc948612b0d0f8ed98d5";
public const string LoveMessage = "";
}
class UpDateData
{
2024-03-11 10:57:12 +08:00
public static bool is_check = false;
2024-03-09 18:29:16 +08:00
public static bool state = false;
public static string version = "";
public static string tis = "";
public static string mini_packet_url = "";
public static string full_packet_url = "";
}
class CloundMananger
{
public static async Task TakeQMessage()
{
var client = new HttpClient();
client.DefaultRequestVersion = HttpVersion.Version20;
client.DefaultVersionPolicy = HttpVersionPolicy.RequestVersionOrLower;
client.DefaultRequestHeaders.UserAgent.ParseAdd("Mozilla/5.0 (iPad; U; CPU OS 6_0 like Mac OS X; zh-CN; iPad2)");
HttpResponseMessage response;
try
{
client.Timeout = TimeSpan.FromMinutes(3);
response = await client.GetAsync($"{StaticUrl.QMessageMain}{StaticUrl.MasterMessage}");
}
catch (Exception _ex)
{
CacheSha.errorCode = 1;
return;
}
var responseString = await response.Content.ReadAsStringAsync();
if(!FormatMessage(responseString))
{
CacheSha.errorCode = 2;
}
2024-03-11 10:57:12 +08:00
UpDateData.is_check = true;
2024-03-09 18:29:16 +08:00
}
static bool FormatMessage(string message)
{
message = message.Split("<div class=\"note-content\">")[1].Split("</article>")[0].Replace("</div>", "").Replace("\n", "").Replace("\t", "").Replace("\r", "").Replace("'", "");
var arr = message.Split("<div>");
if (arr.Length >= 7 && FormatSha(arr[6], false) && FormatSha(arr[5], true))
{
UpDateData.version = arr[1];
UpDateData.tis = arr[2];
UpDateData.mini_packet_url = arr[3];
UpDateData.full_packet_url = arr[4];
UpDateData.state = true;
return true;
}
return false;
}
static bool FormatSha(string sha0, bool e)
{
if (sha0.Length < 90) return false;
int count;
2024-03-11 10:57:12 +08:00
var sha = SpaceEncoder.Decode(sha0, out count);
if (sha == null || sha.Length < 64)
2024-03-09 18:29:16 +08:00
{
//Console.WriteLine($"faile: {count}");
return false;
}
if (e) CacheSha.PutE(sha);
else CacheSha.PutM(sha);
return true;
}
}
}