示例#1
0
        public static void json2es(FileInfo jsonFile)
        {
            var settings = new JsonSerializerSettings();

            settings.ContractResolver = new LowercaseContractResolver();

            var json = File.ReadAllText(jsonFile.FullName);

            var emoteTable = new EmoteTable();

            emoteTable.EmoteSets = JsonConvert.DeserializeObject <List <EmoteSet> >(json, settings);

            emoteTable.SetValidBranches();

            emoteTable.BuildLinks();

            //ShowScript(emoteTable.EmoteSets);

            var esFilename = Path.ChangeExtension(jsonFile.FullName, ".es");

            // check if file already exists?

            var esFile = new FileInfo(esFilename);

            OutputScript(emoteTable.EmoteSets, esFile);
        }
示例#2
0
        public static void ShowJSON(EmoteTable emoteTable)
        {
            var jsonTable = new JSON.EmoteTable(emoteTable);

            var json = BuildJSON(jsonTable);

            Console.WriteLine(json);
        }
示例#3
0
        public static void OutputSQL(EmoteTable emoteTable, FileInfo sqlFile)
        {
            var sqlLines = BuildSQL(emoteTable);

            File.WriteAllLines(sqlFile.FullName, sqlLines);

            Console.WriteLine($"Compiled {sqlFile.FullName}");
        }
示例#4
0
        public static void ShowSQL(EmoteTable emoteTable)
        {
            var sqlLines = BuildSQL(emoteTable);

            foreach (var sqlLine in sqlLines)
            {
                Console.WriteLine(sqlLines);
            }
        }
示例#5
0
        public static void es2sql(EmoteTable emoteTable, FileInfo esFile)
        {
            var sqlFilename = Path.ChangeExtension(esFile.FullName, ".sql");
            var sqlFile     = new FileInfo(sqlFilename);

            // check if file already exists?

            // output sql file
            OutputSQL(emoteTable, sqlFile);
        }
示例#6
0
        public static void es2json(EmoteTable emoteTable, FileInfo esFile)
        {
            var jsonFilename = Path.ChangeExtension(esFile.FullName, ".json");
            var jsonFile     = new FileInfo(jsonFilename);

            emoteTable.NormalRange();

            var jsonTable = new JSON.EmoteTable(emoteTable);

            // check if file already exists?

            // output json file
            OutputJSON(jsonTable, jsonFile);
        }
示例#7
0
        public static List <string> BuildSQL(EmoteTable emoteTable)
        {
            emoteTable.NormalRange();

            return(SQLWriter.GetSQL(emoteTable));
        }
示例#8
0
        public static void Main(string[] args)
        {
            if (args.Length == 0)
            {
                ShowUsage();
                return;
            }

            var filename = args[0];

            // if only a wcid is specified, search for <wcid>*.es
            if (int.TryParse(filename, out _))
            {
                var cwd   = new DirectoryInfo(Directory.GetCurrentDirectory());
                var files = cwd.GetFiles(filename + " *.es");
                if (files.Count() == 1)
                {
                    filename = files[0].FullName;
                }
            }

            // if no extension is specified, assume .es
            if (!filename.EndsWith(".es", StringComparison.OrdinalIgnoreCase) && !filename.EndsWith(".sql", StringComparison.OrdinalIgnoreCase) && !filename.EndsWith(".json", StringComparison.OrdinalIgnoreCase))
            {
                filename += ".es";
            }

            if (!File.Exists(filename))
            {
                Console.WriteLine($"{filename} not found");
                return;
            }

            var fi = new FileInfo(filename);

            if (fi.Extension.Equals(".sql", StringComparison.OrdinalIgnoreCase))
            {
                // convert sql to es
                sql2es(fi);
                return;
            }

            if (fi.Extension.Equals(".json", StringComparison.OrdinalIgnoreCase))
            {
                // convert json to es
                json2es(fi);
                return;
            }

            // convert es to sql / json
            var emoteTable = new EmoteTable();

            emoteTable.EmoteSets = Parser.ParseFile(fi);

            if (emoteTable.EmoteSets == null)
            {
                return;
            }

            //emoteTable.BuildLinks();
            //emoteTable.ClearLinks();

            emoteTable.Wcid = GetObjectId(fi);
            //emoteTable.Wcid = 33970;

            //ShowSQL(emoteTable);
            //ShowJSON(emoteTable.EmoteSets);
            //ShowScript(emoteTable.EmoteSets);

            //return;

            if (args.Length < 2 || !args[1].Contains("json", StringComparison.OrdinalIgnoreCase))
            {
                // convert script to sql
                es2sql(emoteTable, fi);
            }
            else
            {
                // convert script to json
                es2json(emoteTable, fi);
            }
        }