public static void Run(List<Action> actions, int delay = 10000) { // ReSharper disable once NotAccessedVariable var iteration = 0; var publicStash = PublicStashAPI.GetAsync().Result; var nextChangeId = publicStash.next_change_id; var cachedChangeId = ""; for (;;) { if (cachedChangeId != nextChangeId) { foreach (var action in actions) action(); iteration += 1; cachedChangeId = nextChangeId; } else { publicStash = PublicStashAPI.GetAsync(nextChangeId).Result; nextChangeId = publicStash.next_change_id; Thread.Sleep(delay); } } }
private static void RunTrader() { // ReSharper disable once NotAccessedVariable var iteration = 0; var publicStash = PublicStashAPI.GetAsync().Result; var nextChangeId = publicStash.next_change_id; var cachedChangeId = ""; var trader = new PoeTrader(); for (;;) { if (cachedChangeId != nextChangeId) { var prices = trader.GetCurrencyListings(publicStash); //missing.AddRange(prices.Where(e => e.Buying.Currency == PublicStashExample.Example.Trade.Currency.MISSING_TYPE).ToList iteration++; var lines = File.ReadAllLines("C:/tmp/poe/err.txt"); var tmp = (from missing in prices.Where(e => e.Buying.Currency == PublicStashExample.Example.Trade.Currency.MISSING_TYPE) where !lines.Contains(missing.Buying.Texted) select missing.Buying.Texted).ToList(); if (tmp.Contains("port")) { } if (tmp.Any()) { File.AppendAllLines("C:/tmp/poe/err.txt", new HashSet<String>(tmp)); } cachedChangeId = nextChangeId; } else { publicStash = PublicStashAPI.GetAsync(nextChangeId).Result; nextChangeId = publicStash.next_change_id; Thread.Sleep(5000); } } }
private static void GatherSocketableItems() { // ReSharper disable once NotAccessedVariable var iteration = 0; var publicStash = PublicStashAPI.GetAsync().Result; var nextChangeId = publicStash.next_change_id; var cachedChangeId = ""; var armours = new List<(Armour, String)>(); var weapons = new List<(Weapon, String)>(); var unspecified = new List<(UnspecifiedItem, String)>(); for (;;) { if (armours.Any() || weapons.Any() || unspecified.Any()) { } if (cachedChangeId != nextChangeId) { //missing.AddRange(prices.Where(e => e.Buying.Currency == PublicStashExample.Example.Trade.Currency.MISSING_TYPE).ToList //(from missing in prices.Where(e => // e.Buying.Currency == PublicStashExample.Example.Trade.Currency.MISSING_TYPE) // where !lines.Contains(missing.Buying.Texted) // select missing.Buying.Texted).ToList(); foreach (var stash in publicStash.stashes) { foreach (var item in stash.items) { var type = item.GetType(); if (type == typeof(Armour)) { var a = (Armour) item; if (a.socketedItems.Any()) armours.Add((a, cachedChangeId)); } else if (type == typeof(Weapon)) { var w = (Weapon) item; if (w.socketedItems.Any()) weapons.Add((w, cachedChangeId)); } else if (type == typeof(UnspecifiedItem)) { // ReSharper disable once UnusedVariable var lines = File.ReadAllLines("C:/tmp/poe/missItem.txt"); unspecified.Add(((UnspecifiedItem) item, cachedChangeId)); File.AppendAllLines("C:/tmp/poe/missItem.txt", new[] {$"{item.typeLine} - {cachedChangeId}"}); } } } iteration++; cachedChangeId = nextChangeId; } else { publicStash = PublicStashAPI.GetAsync(nextChangeId).Result; nextChangeId = publicStash.next_change_id; Thread.Sleep(10000); } } }