protected override void Build(StreamReader readStream) { String line = ""; while ((line = readStream.ReadLine()) != null) { bool buy = false; if (line.Contains("$scope.sellers = ")) buy = false; else if (line.Contains("$scope.buyers = ")) buy = true; if (line.Contains("$scope.sellers = ") || line.Contains("$scope.buyers = ")) { line = line.Replace("$scope.sellers = ", ""); line = line.Trim(); string[] itemStrings = Regex.Split(line,"\\}, \\{"); foreach (String itemString in itemStrings) { string tmp= itemString.Substring(itemString.LastIndexOf("\"price\": {")); tmp= tmp.Replace("\"price\": {", ""); String[] itemS = Regex.Split(tmp,"\\}, "); string name= itemS[1].Replace("\"name\": ", "").Replace("\"", "").Replace("}];", "").Trim(); ItemInBot item = new ItemInBot() { Bot = bot, Item = ItemHelper.GetItemByName(name), BuyPrice = 0, SellPrice = 999999999, Max = 0, Stock=0 }; String[] price = itemS[0].Replace("\"keys\":", "").Replace("\"refs\":", "").Replace(".0", "00").Replace(".", "").Split(','); int sum = (int)(int.Parse(price[0].Trim()) * ItemHelper.KEY_PRICE + int.Parse(price[2].Trim())) ; if (items.Keys.Contains(item.Item.Name)) { item = items[item.Item.Name]; } else { items.Add(item.Item.Name, item); ItemHelper.CTX.ItemsInBots.Add(item); } if (buy) { item.BuyPrice = sum; item.Max++; } else { item.SellPrice = sum; item.Stock++; item.Max++; } } } } }
protected override void Build(StreamReader readStream) { string line; int item_found_state = 0; ItemInBot item = null; while ((line = readStream.ReadLine()) != null) { line = line.Trim(); line = line.Replace("<i18n>", "").Replace("</i18n>", ""); switch (item_found_state) { case 0: if (line.Contains("data-original-title=\"\"></td>")) { line = readStream.ReadLine(); line = line.Replace("</td>", "").Replace("<td>", ""); Console.WriteLine(line); item_found_state++; string name = line.Trim(); item = new ItemInBot() { Item = ItemHelper.GetItemByName(name), Bot = bot }; items.Add(name, item); ItemHelper.CTX.ItemsInBots.Add(item); } break; case 1: if (line.Contains("<td>")) { item_found_state++; int sell = ItemHelper.ParsePrice(line); item.SellPrice = sell; } break; case 2: if (line.Contains("<td>")) { item_found_state++; int buy = ItemHelper.ParsePrice(line); item.BuyPrice = buy; } if (line.Contains(("<div rel=\"tooltip\" title=\""))) { line = line.Replace("<div rel=\"tooltip\" title=\"", ""); string[] stockMax = line.Split('"')[0].Split('/'); int stock = 0; int max = 0; if (stockMax.Length >= 2) { stock = int.Parse(stockMax[0]); max = int.Parse((stockMax[1])); } item.Stock = stock; item.Max = max; item_found_state = 0; } break; case 3: if (line.Contains(("<div rel=\"tooltip\" title=\""))) { line = line.Replace("<div rel=\"tooltip\" title=\"", ""); string[] stockMax = line.Split('"')[0].Split('/'); int stock = 0; int max = 0; if (stockMax.Length >= 2) { stock = int.Parse(stockMax[0]); max = int.Parse((stockMax[1])); } item.Stock = stock; item.Max = max; item_found_state = 0; } break; } } }