public void PrintRelease() { Console.WriteLine($"Mod.Releases.Version: {this.Version}"); Console.WriteLine($" Mod.Releases.Download_URL: {this.DownloadURL}"); Console.WriteLine($" Mod.Releases.File_Name: {this.FileName}"); Console.WriteLine($" Mod.Releases.Released_At: {this.ReleasedAt}"); Console.WriteLine($" Mod.Releases.Sha1: {this.Sha1}"); InfoJson.PrintReleaseInfo(); }
/// <summary> /// Creates the metadata info.json file. /// </summary> /// <param name="destination"></param> /// <param name="metaList">The list of meta.lsx file paths.</param> public static void GenerateInfoJson(Dictionary <string, List <string> > metaList) { var info = new InfoJson { Mods = new List <MetaLsx>() }; var created = DateTime.Now; foreach (KeyValuePair <string, List <string> > modGroup in metaList) { var mods = new List <MetaLsx>(); foreach (var meta in modGroup.Value) { var metadata = ReadMeta(meta, created, modGroup); mods.Add(metadata); GeneralHelper.WriteToConsole($"Metadata for {metadata.Name} created.\n"); } info.Mods.AddRange(mods); } // calculate md5 hash of .pak(s) using (var md5 = MD5.Create()) { var paks = Directory.GetFiles(TempFolder); var pakCount = 1; foreach (var pak in paks) { byte[] contentBytes = File.ReadAllBytes(pak); if (pakCount == paks.Length) { md5.TransformFinalBlock(contentBytes, 0, contentBytes.Length); } else { md5.TransformBlock(contentBytes, 0, contentBytes.Length, contentBytes, 0); } pakCount++; } info.MD5 = BitConverter.ToString(md5.Hash).Replace("-", "").ToLower(); } var json = JsonConvert.SerializeObject(info); File.WriteAllText(TempFolder + @"\info.json", json); GeneralHelper.WriteToConsole($"info.json generated.\n"); }
/// <summary> /// 查询用户信息 /// </summary> public static async Task <UserInfoData> Info(string uid) => InfoJson.FromJson(await BcyJson.Info(uid)).Data;