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 { public static bool is_check = false; 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; } UpDateData.is_check = true; } static bool FormatMessage(string message) { message = message.Split("
")[1].Split("")[0].Replace("
", "").Replace("\n", "").Replace("\t", "").Replace("\r", "").Replace("'", ""); var arr = message.Split("
"); 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; var sha = SpaceEncoder.Decode(sha0, out count); if (sha == null || sha.Length < 64) { //Console.WriteLine($"faile: {count}"); return false; } if (e) CacheSha.PutE(sha); else CacheSha.PutM(sha); return true; } } }