public static bool sql2json(FileInfo fi) { var lines = File.ReadAllLines(fi.FullName); var sqlReader = new SQLReader(); var weenie = sqlReader.sql2weenie(lines); if (!LifestonedConverter.TryConvertACEWeenieToLSDJSON(weenie, out var json, out var json_weenie)) { Console.WriteLine($"Failed to convert {fi.FullName} to json"); return(false); } var metadata = Metadata.ReadData(string.Join("", lines)); if (metadata != null && LifestonedLoader.AppendMetadata(json_weenie, metadata)) { json = JsonConvert.SerializeObject(json_weenie, LifestonedConverter.SerializerSettings); } var jsonFilename = fi.FullName.Replace(".sql", ".json"); File.WriteAllText(jsonFilename, json); Console.WriteLine($"Converted {fi.FullName} to {jsonFilename}"); return(true); }
/// <summary> /// Converts a sql file to json file /// </summary> public static bool sql2json(Session session, Weenie weenie, string sql_folder, string sql_filename) { if (!LifestonedConverter.TryConvertACEWeenieToLSDJSON(weenie, out var json, out var json_weenie)) { CommandHandlerHelper.WriteOutputInfo(session, $"Failed to convert {sql_filename} to json"); return(false); } var json_folder = sql_folder.Replace("sql", "json"); var json_filename = sql_filename.Replace(".sql", ".json"); var di = new DirectoryInfo(json_folder); if (!di.Exists) { di.Create(); } if (File.Exists(json_folder + json_filename) && LifestonedLoader.AppendMetadata(json_folder + json_filename, json_weenie)) { json = JsonConvert.SerializeObject(json_weenie, LifestonedConverter.SerializerSettings); } File.WriteAllText(json_folder + json_filename, json); CommandHandlerHelper.WriteOutputInfo(session, $"Converted {sql_filename} to {json_filename}"); return(true); }
/// <summary> /// Converts a json file to sql file /// </summary> public static string json2sql(Session session, string folder, string json_filename, WeenieSQLWriter converter) { var json_file = folder + json_filename; var success = LifestonedLoader.TryLoadWeenie(json_file, out var weenie); if (!success) { CommandHandlerHelper.WriteOutputInfo(session, $"Failed to load {json_file}"); return(null); } // output to sql success = LifestonedConverter.TryConvert(weenie, out var output); if (!success) { CommandHandlerHelper.WriteOutputInfo(session, $"Failed to convert {json_file}"); return(null); } var sqlFolder = folder.Replace("json", "sql"); var di = new DirectoryInfo(sqlFolder); if (!di.Exists) { di.Create(); } var sqlFilename = ""; try { if (output.LastModified == DateTime.MinValue) { output.LastModified = DateTime.UtcNow; } sqlFilename = converter.GetDefaultFileName(output); var sqlFile = new StreamWriter(sqlFolder + sqlFilename); converter.CreateSQLDELETEStatement(output, sqlFile); sqlFile.WriteLine(); converter.CreateSQLINSERTStatement(output, sqlFile); sqlFile.Close(); } catch (Exception e) { Console.WriteLine(e); CommandHandlerHelper.WriteOutputInfo(session, $"Failed to convert {json_file}"); return(null); } CommandHandlerHelper.WriteOutputInfo(session, $"Converted {json_filename} to {sqlFilename}"); return(sqlFilename); }
public static void HandleExportJson(Session session, params string[] parameters) { DirectoryInfo di = VerifyContentFolder(session, false); var sep = Path.DirectorySeparatorChar; if (!uint.TryParse(parameters[0], out var wcid)) { CommandHandlerHelper.WriteOutputInfo(session, $"{parameters[0]} not a valid wcid"); return; } var weenie = DatabaseManager.World.GetCachedWeenie(wcid); if (weenie == null) { CommandHandlerHelper.WriteOutputInfo(session, $"Couldn't find weenie {wcid}"); return; } if (!LifestonedConverter.TryConvertACEWeenieToLSDJSON(weenie, out var json, out var json_weenie)) { CommandHandlerHelper.WriteOutputInfo(session, $"Failed to convert {weenie.ClassId} - {weenie.ClassName} to json"); return; } var json_folder = $"{di.FullName}{sep}json{sep}weenies{sep}"; di = new DirectoryInfo(json_folder); if (!di.Exists) { di.Create(); } var json_filename = $"{weenie.ClassId} - {weenie.WeeniePropertiesString.FirstOrDefault(i => i.Type == (int)PropertyString.Name)?.Value}.json"; if (File.Exists(json_folder + json_filename) && LifestonedLoader.AppendMetadata(json_folder + json_filename, json_weenie)) { json = JsonConvert.SerializeObject(json_weenie, LifestonedConverter.SerializerSettings); } File.WriteAllText(json_folder + json_filename, json); CommandHandlerHelper.WriteOutputInfo(session, $"Exported {json_folder}{json_filename}"); }
/// <summary> /// Converts a sql file to json file /// </summary> public static bool sql2json(Session session, Weenie weenie, string sql_folder, string sql_filename) { if (!LifestonedConverter.TryConvertACEWeenieToLSDJSON(weenie, out var json, out var json_weenie)) { CommandHandlerHelper.WriteOutputInfo(session, $"Failed to convert {sql_filename} to json"); return(false); } var json_folder = sql_folder.Replace("sql", "json"); var json_filename = sql_filename.Replace(".sql", ".json"); var match = Regex.Match(json_filename, @"^(\d+)"); if (match.Success) { var wcid = match.Groups[1].Value; if (!json_filename.StartsWith(wcid + " -")) { json_filename = wcid + " -" + json_filename.Substring(wcid.Length); } } var di = new DirectoryInfo(json_folder); if (!di.Exists) { di.Create(); } if (File.Exists(json_folder + json_filename) && LifestonedLoader.AppendMetadata(json_folder + json_filename, json_weenie)) { json = JsonConvert.SerializeObject(json_weenie, LifestonedConverter.SerializerSettings); } File.WriteAllText(json_folder + json_filename, json); CommandHandlerHelper.WriteOutputInfo(session, $"Converted {sql_filename} to {json_filename}"); return(true); }
public static bool sql2json_weenie(FileInfo fi, string[] lines = null, DirectoryInfo outputFolder = null) { lines = lines ?? File.ReadAllLines(fi.FullName); var sqlReader = new WeenieSQLReader(); var weenie = sqlReader.ReadModel(lines); if (!LifestonedConverter.TryConvertACEWeenieToLSDJSON(weenie, out var json, out var json_weenie)) { Console.WriteLine($"Failed to convert {fi.FullName} to json"); return(false); } var metadata = Metadata.ReadData(string.Join("", lines)); if (metadata != null && LifestonedLoader.AppendMetadata(json_weenie, metadata)) { json = JsonConvert.SerializeObject(json_weenie, LifestonedConverter.SerializerSettings); } if (Mode == Mode.String) { Output = json; return(true); } var jsonFolder = outputFolder ?? fi.Directory; var jsonFilename = jsonFolder.FullName + Path.DirectorySeparatorChar + fi.Name.Replace(".sql", ".json"); File.WriteAllText(jsonFilename, json); Console.WriteLine($"Converted {fi.FullName} to {jsonFilename}"); return(true); }
public static bool json2sql(FileInfo fi) { if (Converter == null) { Converter = new WeenieSQLWriter(); Converter.WeenieNames = IDToString.Reader.GetIDToNames("WeenieName.txt"); Converter.SpellNames = IDToString.Reader.GetIDToNames("SpellName.txt"); Converter.TreasureDeath = IDToString.Reader.GetIDToTier("TreasureDeath.txt"); Converter.TreasureWielded = IDToString.Reader.GetIDToWieldList("TreasureWielded.txt"); } // read json into lsd weenie if (!LifestonedLoader.TryLoadWeenie(fi.FullName, out var weenie)) { Console.WriteLine($"Failed to parse {fi.FullName}"); return(false); } // convert to ace weenie if (!LifestonedConverter.TryConvert(weenie, out var output)) { Console.WriteLine($"Failed to convert {fi.FullName}"); return(false); } // output to sql try { if (output.LastModified == DateTime.MinValue) { output.LastModified = DateTime.UtcNow; } var sqlFilename = Converter.GetDefaultFileName(output); var sqlFile = new StreamWriter(fi.DirectoryName + Path.DirectorySeparatorChar + sqlFilename); Converter.CreateSQLDELETEStatement(output, sqlFile); sqlFile.WriteLine(); Converter.CreateSQLINSERTStatement(output, sqlFile); var metadata = new ACE.Adapter.GDLE.Models.Metadata(weenie); if (metadata.HasInfo) { var jsonEx = JsonConvert.SerializeObject(metadata, Formatting.Indented); sqlFile.WriteLine($"\n/* Lifestoned Changelog:\n{jsonEx}\n*/"); } sqlFile.Close(); Console.WriteLine($"Converted {fi.FullName} to {fi.DirectoryName}{Path.DirectorySeparatorChar}{sqlFilename}"); } catch (Exception e) { Console.WriteLine(e); Console.WriteLine($"Failed to convert {fi.FullName}"); return(false); } return(true); }
/// <summary> /// Converts a json file to sql file /// </summary> public static string json2sql(Session session, string folder, string json_filename, WeenieSQLWriter converter) { var json_file = folder + json_filename; // read json into lsd weenie var success = LifestonedLoader.TryLoadWeenie(json_file, out var weenie); if (!success) { CommandHandlerHelper.WriteOutputInfo(session, $"Failed to load {json_file}"); return(null); } // convert to ace weenie success = LifestonedConverter.TryConvert(weenie, out var output); if (!success) { CommandHandlerHelper.WriteOutputInfo(session, $"Failed to convert {json_file}"); return(null); } // output to sql var sqlFolder = folder.Replace("json", "sql"); var di = new DirectoryInfo(sqlFolder); if (!di.Exists) { di.Create(); } var sqlFilename = ""; try { if (output.LastModified == DateTime.MinValue) { output.LastModified = DateTime.UtcNow; } sqlFilename = converter.GetDefaultFileName(output); var sqlFile = new StreamWriter(sqlFolder + sqlFilename); converter.CreateSQLDELETEStatement(output, sqlFile); sqlFile.WriteLine(); converter.CreateSQLINSERTStatement(output, sqlFile); var metadata = new Adapter.GDLE.Models.Metadata(weenie); if (metadata.HasInfo) { var jsonEx = JsonConvert.SerializeObject(metadata, LifestonedConverter.SerializerSettings); sqlFile.WriteLine($"\n/* Lifestoned Changelog:\n{jsonEx}\n*/"); } sqlFile.Close(); } catch (Exception e) { Console.WriteLine(e); CommandHandlerHelper.WriteOutputInfo(session, $"Failed to convert {json_file}"); return(null); } CommandHandlerHelper.WriteOutputInfo(session, $"Converted {json_filename} to {sqlFilename}"); return(sqlFilename); }
public static bool json2sql_weenie(FileInfo fi, string[] lines = null, DirectoryInfo outputFolder = null) { if (WeenieSQLWriter == null) { WeenieSQLWriter = new WeenieSQLWriter(); WeenieSQLWriter.WeenieNames = IDToString.Reader.GetIDToNames("WeenieName.txt"); WeenieSQLWriter.SpellNames = IDToString.Reader.GetIDToNames("SpellName.txt"); WeenieSQLWriter.TreasureDeath = IDToString.Reader.GetIDToTier("TreasureDeath.txt"); WeenieSQLWriter.TreasureWielded = IDToString.Reader.GetIDToWieldList("TreasureWielded.txt"); } // read json into lsd weenie Lifestoned.DataModel.Gdle.Weenie weenie = null; if (lines == null) { if (!LifestonedLoader.TryLoadWeenie(fi.FullName, out weenie)) { Console.WriteLine($"Failed to parse {fi.FullName}"); return(false); } } else { if (!LifestonedLoader.TryLoadWeenie(lines, out weenie)) { Console.WriteLine($"Failed to parse weenie"); return(false); } } // convert to ace weenie if (!LifestonedConverter.TryConvert(weenie, out var output)) { Console.WriteLine($"Failed to convert {fi.FullName}"); return(false); } // output to sql try { if (output.LastModified == DateTime.MinValue) { output.LastModified = DateTime.UtcNow; } StreamWriter sqlFile = null; string sqlFilename = null; MemoryStream memoryStream = null; if (lines == null) { sqlFilename = WeenieSQLWriter.GetDefaultFileName(output); var sqlFolder = outputFolder ?? fi.Directory; sqlFile = new StreamWriter(sqlFolder.FullName + Path.DirectorySeparatorChar + sqlFilename); } else { memoryStream = new MemoryStream(); sqlFile = new StreamWriter(memoryStream); } WeenieSQLWriter.CreateSQLDELETEStatement(output, sqlFile); sqlFile.WriteLine(); WeenieSQLWriter.CreateSQLINSERTStatement(output, sqlFile); var metadata = new Metadata(weenie); if (metadata.HasInfo) { var jsonEx = JsonConvert.SerializeObject(metadata, Formatting.Indented); sqlFile.WriteLine($"\n/* Lifestoned Changelog:\n{jsonEx}\n*/"); } sqlFile.Close(); if (lines == null) { Output = memoryStream.ToString(); return(true); } Console.WriteLine($"Converted {fi.FullName} to {fi.DirectoryName}{Path.DirectorySeparatorChar}{sqlFilename}"); } catch (Exception e) { Console.WriteLine(e); Console.WriteLine($"Failed to convert {fi.FullName}"); return(false); } return(true); }