Beispiel #1
0
        static void Main(string[] args)
        {
            if (!File.Exists("./items.json"))
            {
                ScrapeForDb();
            }

            var db = File.ReadAllText("./items.json").ToLower();
            var ge = new GrandExchange(db);

            ReadLine.AutoCompletionHandler = new AutoCompletionHandler(ge.ItemDb.Keys.ToArray());

            while (true)
            {
                try
                {
                    var line = ReadLine.Read("#id> ");
                    if (string.IsNullOrEmpty(line) || string.IsNullOrWhiteSpace(line))
                    {
                        continue;
                    }

                    var cmdline = line.Split(' ');
                    if (int.TryParse(cmdline[0], out int id))
                    {
                        var item = ge.GetItemDetails(id);
                        if (item != null)
                        {
                            Console.WriteLine(item.ToString());
                        }
                    }
                    else if (cmdline[0] == "/graph")
                    {
                        if (cmdline.Length != 2)
                        {
                            continue;
                        }

                        if (!int.TryParse(cmdline[1], out int param))
                        {
                            continue;
                        }

                        var data = ge.GetGraphData(param);

                        if (data == null)
                        {
                            continue;
                        }

                        foreach (var kvp in data)
                        {
                            Console.WriteLine($"{kvp.Key}: {kvp.Value}");
                        }
                    }
                    else if (cmdline[0] == "/latest")
                    {
                        if (cmdline.Length != 2)
                        {
                            continue;
                        }

                        if (!int.TryParse(cmdline[1], out int param))
                        {
                            continue;
                        }

                        var latestPrice = ge.GetLatestPrice(param);
                        if (latestPrice < 0)
                        {
                            continue;
                        }

                        Console.WriteLine($"Current GE price for this item is {latestPrice}gp.");
                    }
                    else
                    {
                        var item = ge.GetItemDetails(line.ToLower());
                        if (item != null)
                        {
                            Console.WriteLine(item.ToString());
                        }
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
            }
        }