Initial release: HSUI v1.0.0.0 - HUD replacement with configurable hotbars
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.IO.Compression;
|
||||
using System.Text;
|
||||
|
||||
namespace HSUI.Config.Profiles
|
||||
{
|
||||
public static class ImportExportHelper
|
||||
{
|
||||
public static string CompressAndBase64Encode(string jsonString)
|
||||
{
|
||||
using MemoryStream output = new();
|
||||
|
||||
using (DeflateStream gzip = new(output, CompressionLevel.Optimal))
|
||||
{
|
||||
using StreamWriter writer = new(gzip, Encoding.UTF8);
|
||||
writer.Write(jsonString);
|
||||
}
|
||||
|
||||
return Convert.ToBase64String(output.ToArray());
|
||||
}
|
||||
|
||||
public static string Base64DecodeAndDecompress(string base64String)
|
||||
{
|
||||
var base64EncodedBytes = Convert.FromBase64String(base64String);
|
||||
|
||||
using MemoryStream inputStream = new(base64EncodedBytes);
|
||||
using DeflateStream gzip = new(inputStream, CompressionMode.Decompress);
|
||||
using StreamReader reader = new(gzip, Encoding.UTF8);
|
||||
var decodedString = reader.ReadToEnd();
|
||||
|
||||
return decodedString;
|
||||
}
|
||||
|
||||
public static string GenerateExportString(object obj)
|
||||
{
|
||||
JsonSerializerSettings settings = new JsonSerializerSettings
|
||||
{
|
||||
TypeNameAssemblyFormatHandling = TypeNameAssemblyFormatHandling.Simple,
|
||||
TypeNameHandling = TypeNameHandling.Objects
|
||||
};
|
||||
|
||||
var jsonString = JsonConvert.SerializeObject(obj, Formatting.Indented, settings);
|
||||
return CompressAndBase64Encode(jsonString);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user