/// <summary> /// Авторизация в стиме /// </summary> public void Auth() { try { _account = Web.RetryDoLogin(TimeSpan.FromSeconds(5), 10, _config.SteamLogin, _config.SteamPassword, _config.SteamMachineAuth); if (!string.IsNullOrEmpty(_account.SteamMachineAuth)) { _config.SteamMachineAuth = _account.SteamMachineAuth; Config.Save(_config); } Console.WriteLine("Авторизован!"); _timeLastLogin = DateTimeOffset.Now.ToUnixTimeSeconds(); offerHandler = new EconServiceHandler(""); marketHandler = new MarketHandler(); marketHandler.EligibilityCheck(_account.SteamId, _account.AuthContainer); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
private static void PollOffers() { Console.WriteLine("Polling offers every ten seconds."); bool isPolling = true; var offerHandler = new EconServiceHandler(_apiKey); var marketHandler = new MarketHandler(); marketHandler.EligibilityCheck(_account.SteamId, _account.AuthContainer); //required to perform trades (?). Checks to see whether or not we're allowed to trade. // ReSharper disable once ConditionIsAlwaysTrueOrFalse // ReSharper disable once LoopVariableIsNeverChangedInsideLoop while (isPolling) //permanent loop, can be changed { Thread.Sleep(10000); var recData = new Dictionary <string, string> { { "get_received_offers", "1" }, { "active_only", "1" }, { "time_historical_cutoff", "999999999999" } //arbitrarily high number to retrieve latest offers }; var offers = offerHandler.GetTradeOffers(recData).TradeOffersReceived; if (offers == null) { continue; } foreach (CEconTradeOffer cEconTradeOffer in offers) { if (cEconTradeOffer.ItemsToGive == null) { offerHandler.AcceptTradeOffer(cEconTradeOffer.TradeOfferId, cEconTradeOffer.AccountIdOther, _account.AuthContainer, "1"); Console.WriteLine("Accepted a donation!"); } else { offerHandler.DeclineTradeOffer(Convert.ToUInt64(cEconTradeOffer.TradeOfferId)); Console.WriteLine("Refused a \"donation\" that would have taken items from us."); } } } }
private static void PollOffers() { Console.WriteLine("Polling offers every ten seconds."); bool isPolling = true; var offerHandler = new EconServiceHandler(_config.ApiKey); var marketHandler = new MarketHandler(); Inventory csgoInventory = new Inventory(_account.SteamId, 730); marketHandler.EligibilityCheck(_account.SteamId, _account.AuthContainer); //required to perform trades (?). Checks to see whether or not we're allowed to trade. // ReSharper disable once ConditionIsAlwaysTrueOrFalse // ReSharper disable once LoopVariableIsNeverChangedInsideLoop while (isPolling) //permanent loop, can be changed { Thread.Sleep(10000); var recData = new Dictionary <string, string> { { "get_received_offers", "1" }, { "active_only", "1" }, { "time_historical_cutoff", "999999999999" } //arbitrarily high number to retrieve latest offers }; var offers = offerHandler.GetTradeOffers(recData).TradeOffersReceived; if (offers == null) { continue; } foreach (CEconTradeOffer cEconTradeOffer in offers) { TradeOffer offer = new TradeOffer(); offer.Them.Assets = cEconTradeOffer.ItemsToReceive; offer.Me.Assets.Add(csgoInventory.Items.First().Value.Items.First().ToCEconAsset(730)); offerHandler.ModifyTradeOffer(IdConversions.AccountIdToUlong(cEconTradeOffer.AccountIdOther), "Here you go!", "1", cEconTradeOffer.TradeOfferId, offer, _account.AuthContainer); } } }