protected override void Build(StreamReader readStream) { string line; while ((line = readStream.ReadLine()) != null) { if (line.Contains("<tr data-name")) { line = line.Substring(line.IndexOf('\"') + 1, line.LastIndexOf('\"')); line = line.Replace(" [BS]", "; Battle Scarred"); line = line.Replace(" [FN]", "; Factory New"); line = line.Replace(" [FT]", "; Field-Tested"); line = line.Replace(" [MW]", "; Minimal Wear"); line = line.Replace(" [WW]", "; Well-Worn"); var item = new ItemInBot() { Bot = bot, Item = ItemHelper.GetItemByName(line) }; readStream.ReadLine(); line = readStream.ReadLine(); line = line.Substring(line.IndexOf('>') + 1, line.LastIndexOf('<')); String[] stock = line.Split('/'); item.Stock = 0; /*var temp */ item.Stock = int.Parse(stock[0]); item.Max = int.Parse(stock[1]); //if (item.Max == item.temp) item.Max -= item.temp; line = readStream.ReadLine(); line = line.Substring(line.IndexOf('>') + 1, line.LastIndexOf('<')).Replace(",", ""); item.SellPrice = int.Parse(line) / 25; line = readStream.ReadLine(); line = line.Substring(line.IndexOf('>') + 1, line.LastIndexOf('<')).Replace(",", ""); item.BuyPrice = int.Parse(line) / 25; items.Add(item.Item.Name, item); } } // OpenConnectionAndDoSomething( // s => GetStockInformation(s), // "https://www.tf2wh.com/allitems"); }
private void GetStockInformation(StreamReader br) { string line = ""; while ((line = br.ReadLine()) != null) { if (line.Contains("data-name=")) { String name = Regex.Split(line, "data-name=\"")[1].Split('"')[0]; ItemInBot item = items[name]; if (item != null) { // item.Stock = item.temp; } } } }
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; } } }
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++; } } } } }