public async Task <Log> CheckLogin() { var task = new TaskCompletionSource <Log>(); await Task.Run(() => { var response = Web.Get(Links.SteamCompanion, Cookies.Generate()); if (response.RestResponse.Content != string.Empty) { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(response.RestResponse.Content); var points = htmlDoc.DocumentNode.SelectSingleNode("//span[@class='points']"); var profileLink = htmlDoc.DocumentNode.SelectSingleNode("//ul[@class='right']/li[1]/a[1]"); if (points != null && profileLink != null) { Points = int.Parse(points.InnerText); task.SetResult(Messages.ParseProfile("SteamCompanion", Points, profileLink.Attributes["href"].Value.Split('/')[4])); } else { task.SetResult(Messages.ParseProfileFailed("SteamCompanion")); } } else { task.SetResult(Messages.ParseProfileFailed("SteamCompanion")); } }); return(task.Task.Result); }
private async Task <Log> JoinGiveaway(GameAwaysGiveaway giveaway) { var task = new TaskCompletionSource <Log>(); await Task.Run(() => { Thread.Sleep(400); var response = Web.Post($"{Links.GameAwaysJoin}{giveaway.Id}", GenerateJoinParams(), Cookies.Generate()); if (!string.IsNullOrEmpty(response.RestResponse.Content)) { var jsonresponse = JsonConvert.DeserializeObject <JsonJoinResponse>(response.RestResponse.Content); if (jsonresponse != null) { Points = jsonresponse.Balance; task.SetResult(Messages.GiveawayJoined("GameAways", giveaway.Name, giveaway.Price, jsonresponse.Balance)); } else { task.SetResult(Messages.GiveawayNotJoined("GameAways", giveaway.Name, "Oooops, some wrong...")); } } }); return(task.Task.Result); }
public async Task <Log> CheckWon() { var task = new TaskCompletionSource <Log>(); await Task.Run(() => { var response = Web.Get(Links.SteamGiftsWon, Cookies.Generate(), UserAgent); if (response.RestResponse.Content != string.Empty) { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(response.RestResponse.Content); var nodes = htmlDoc.DocumentNode.SelectSingleNode( "//a[@title='Giveaways Won']//div[@class='nav__notification']"); task.SetResult(nodes != null ? Messages.GiveawayHaveWon("SteamGifts", int.Parse(nodes.InnerText), Links.SteamGiftsWon) : null); } else { task.SetResult(null); } }); return(task.Task.Result); }
public async Task <Log> CheckLogin() { var task = new TaskCompletionSource <Log>(); await Task.Run(() => { var response = Web.Get(Links.GameAways, Cookies.Generate()); if (response.RestResponse.Content != string.Empty) { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(response.RestResponse.Content); var points = htmlDoc.DocumentNode.SelectSingleNode("//span[@class='ga-points']"); var username = htmlDoc.DocumentNode.SelectSingleNode("//a[@class='username']"); if (points != null && username != null) { Points = int.Parse(points.InnerText.Replace(" GP", "")); task.SetResult(Messages.ParseProfile("GameAways", Points, username.InnerText)); } else { task.SetResult(Messages.ParseProfileFailed("GameAways")); } } else { task.SetResult(Messages.ParseProfileFailed("GameAways")); } }); return(task.Task.Result); }
public async Task <Log> CheckLogin() { var task = new TaskCompletionSource <Log>(); await Task.Run(() => { var response = Web.Get(Links.SteamTrade, Cookies.Generate()); if (response.RestResponse.Content != string.Empty) { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(response.RestResponse.Content); var test = htmlDoc.DocumentNode.SelectSingleNode("//a[@class='topm1']"); if (test != null) { task.SetResult(Messages.ParseProfile("SteamTrade", test.InnerText)); } } else { task.SetResult(Messages.ParseProfileFailed("SteamTrade")); } }); return(task.Task.Result); }
public async Task <Log> CheckLogin() { var task = new TaskCompletionSource <Log>(); await Task.Run(() => { var response = Web.Get(Links.SteamPortal, Cookies.Generate()); if (response.RestResponse.Content != string.Empty) { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(response.RestResponse.Content); var points = htmlDoc.DocumentNode.SelectSingleNode("//span[@class='my_coins']"); var profileLink = htmlDoc.DocumentNode.SelectSingleNode("//div[@class='mp-wrap']/a[1]"); if (points != null && profileLink != null) { Points = int.Parse(points.InnerText); task.SetResult(Messages.ParseProfile("SteamPortal", Points, profileLink.InnerText)); } else { task.SetResult(Messages.ParseProfileFailed("SteamPortal")); } } else { task.SetResult(Messages.ParseProfileFailed("SteamPortal")); } }); return(task.Task.Result); }
private string LoadGiveawaysByUrl(string url, string message, string lang) { var response = Web.Get(url, Cookies.Generate(lang), UserAgent); if (response.RestResponse.Content != string.Empty) { var count = 0; var jsonResponse = JsonConvert.DeserializeObject <JsonRootObject>(response.RestResponse.Content); count += AddGiveaways(jsonResponse); if (jsonResponse.LastPage > 1) { for (var i = 1; i < jsonResponse.LastPage + 1; i++) { response = Web.Get($"{url}&page={i + 1}", Cookies.Generate(lang), UserAgent); jsonResponse = JsonConvert.DeserializeObject <JsonRootObject>(response.RestResponse.Content); count += AddGiveaways(jsonResponse); } } return ($"{Messages.GetDateTime()} {{GameMiner}} {strings.ParseLoadGiveaways_Found} {count} " + $"{message} {jsonResponse.LastPage} {strings.ParseLoadGiveaways_Pages}\n"); } return(string.Empty); }
public async Task <Log> CheckLogin() { var task = new TaskCompletionSource <Log>(); await Task.Run(() => { var response = Web.Get(Links.PlayBlink, Cookies.Generate()); if (response.RestResponse.Content != string.Empty) { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(response.RestResponse.Content); var points = htmlDoc.DocumentNode.SelectSingleNode("//td[@id='points']"); var level = htmlDoc.DocumentNode.SelectSingleNode("//a[@title='Your contribution level']/b"); var username = htmlDoc.DocumentNode.SelectSingleNode("//a[@class='usr_link']"); if (points != null && level != null && username != null) { Points = int.Parse(points.InnerText.Split('P')[0].Split('\n')[1].Trim()); Level = int.Parse(level.InnerText); Messages.ProfileLoaded(); task.SetResult(Messages.ParseProfile("PlayBlink", Points, Level, username.InnerText)); } else { task.SetResult(Messages.ParseProfileFailed("PlayBlink")); } } else { task.SetResult(Messages.ParseProfileFailed("PlayBlink")); } }); return(task.Task.Result); }
private async Task <Log> JoinGiveaway(SteamTradeGiveaway giveaway) { var task = new TaskCompletionSource <Log>(); await Task.Run(() => { Thread.Sleep(400); giveaway = GetJoinData(giveaway); if (giveaway.LinkJoin != null) { var response = Web.Get($"{Links.SteamTrade}{giveaway.LinkJoin}", Cookies.Generate()); if (response.RestResponse.StatusCode == HttpStatusCode.OK) { task.SetResult(Messages.GiveawayJoined("SteamTrade", giveaway.Name.Trim(), 0, 0)); } else { task.SetResult(Messages.GiveawayNotJoined("SteamTrade", giveaway.Name, response.RestResponse.StatusCode.ToString())); } } else { task.SetResult(null); } }); return(task.Task.Result); }
private async Task <string> GetFailedDetail(string url) { var task = new TaskCompletionSource <string>(); await Task.Run(() => { var response = Web.Get($"{Links.SteamGifts}{url}", Cookies.Generate(), UserAgent); if (response.RestResponse.Content != string.Empty) { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(response.RestResponse.Content); var errorNode = htmlDoc.DocumentNode.SelectSingleNode( "//div[contains(@class, 'sidebar__error') and contains(@class, 'is-disabled')]"); task.SetResult(errorNode?.InnerText.Trim() ?? "Failed to get Token"); } else { task.SetResult("Failed to get Token"); } }); return(task.Task.Result); }
private string LoadGiveawaysByUrl(string url, string message, List <SteamGiftsGiveaway> giveawaysList) { var count = 0; var pages = 1; for (var i = 0; i < pages; i++) { var response = Web.Get( $"{url}{(i > 0 ? $"?page={i + 1}" : string.Empty)}", Cookies.Generate(), UserAgent); if (response.RestResponse.Content != string.Empty) { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(response.RestResponse.Content); var pageNodeCounter = htmlDoc.DocumentNode.SelectNodes("//div[@class='pagination__navigation']/a"); if (pageNodeCounter != null) { pages = int.Parse(pageNodeCounter[pageNodeCounter.Count - 1].Attributes["data-page-number"].Value); } var nodes = htmlDoc.DocumentNode.SelectNodes( "//div[@class='widget-container']//div[2]//div[3]//div[@class='giveaway__row-outer-wrap']//div[@class='giveaway__row-inner-wrap']"); count += AddGiveaways(nodes, giveawaysList); } } return ($"{Messages.GetDateTime()} {{SteamGifts}} {strings.ParseLoadGiveaways_Found} {count} {message} {pages} {strings.ParseLoadGiveaways_Pages}\n"); }
private string LoadGiveawaysByUrl(string url, string message, string nodeClass) { var count = 0; var pages = 1; for (var i = 0; i < pages; i++) { var response = Web.Get($"{url}&pn={i + 1}", Cookies.Generate()); if (response.RestResponse.Content != string.Empty) { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(response.RestResponse.Content); var pageNodeCounter = htmlDoc.DocumentNode.SelectSingleNode("//div[@class='pagination_margin_right']/a[3]"); if (pageNodeCounter != null) { pages = int.Parse(pageNodeCounter.Attributes["href"].Value.Split('=')[2]); } var nodes = htmlDoc.DocumentNode.SelectNodes("//div[@class='box']/div//div[@class='thread']"); if (nodes != null) { count += nodes.Count; AddGiveaways(nodes, nodeClass); } } } return ($"{Messages.GetDateTime()} {{InventoryGifts}} {strings.ParseLoadGiveaways_Found} {count} {message} {pages} {strings.ParseLoadGiveaways_Pages}\n"); }
private async Task <Log> JoinGiveaway(GameMinerGiveaway giveaway, string lang) { var task = new TaskCompletionSource <Log>(); await Task.Run(() => { Thread.Sleep(400); var response = Web.Post( $"{Links.GameMiner}giveaway/enter/{giveaway.Id}?{(giveaway.IsSandbox ? "sandbox" : "coal")}_page={giveaway.Page}", GenerateJoinData(), Cookies.Generate(lang), UserAgent); if (response.RestResponse.Content != string.Empty) { try { var jsonresponse = JsonConvert.DeserializeObject <JsonResponse>(response.RestResponse.Content); if (jsonresponse.Status == "ok") { Points = jsonresponse.Coal; task.SetResult(Messages.GiveawayJoined("GameMiner", giveaway.Name, giveaway.Price, jsonresponse.Coal)); } else { task.SetResult(Messages.GiveawayNotJoined("GameMiner", giveaway.Name, response.RestResponse.Content)); } } catch (JsonReaderException) { task.SetResult(Messages.GiveawayNotJoined("GameMiner", giveaway.Name, response.RestResponse.Content)); } catch (JsonSerializationException) { var jresponse = JsonConvert.DeserializeObject <JsonResponseError>(response.RestResponse.Content); task.SetResult(Messages.GiveawayNotJoined("GameMiner", giveaway.Name, jresponse.Error.Message)); } } else { task.SetResult(Messages.GiveawayNotJoined("GameMiner", giveaway.Name, "Content is empty")); } }); return(task.Task.Result); }
public async Task <Log> CheckWon(string lang) { var task = new TaskCompletionSource <Log>(); await Task.Run(() => { var response = Web.Get(Links.GameMinerWon, Cookies.Generate(lang), UserAgent); if (response.RestResponse.Content != string.Empty) { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(response.RestResponse.Content); var nodes = htmlDoc.DocumentNode.SelectNodes( "//tbody[@class='giveaways__giveaways']//td[@class='valign-middle m-table-state-finished']"); if (nodes != null) { for (var i = 0; i < nodes.Count; i++) { if (!nodes[i].InnerText.Contains("требует подтверждения") && !nodes[i].InnerText.Contains("to be confirmed")) { nodes.Remove(nodes[i]); i--; } } if (nodes.Count > 0) { task.SetResult(Messages.GiveawayHaveWon("GameMiner", nodes.Count, Links.GameMinerWon)); } else { task.SetResult(null); } } else { task.SetResult(null); } } else { task.SetResult(null); } }); return(task.Task.Result); }
private async Task <Log> GetJoinData(SteamCompanionGiveaway scGiveaway, Steam steam) { var response = Web.Get(scGiveaway.Link, Cookies.Generate()); if (response.RestResponse.Content != null) { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(response.RestResponse.Content); var storId = htmlDoc.DocumentNode.SelectSingleNode("//a[@class='banner large-5 columns']"); var code = htmlDoc.DocumentNode.SelectSingleNode($"//div[@data-points='{scGiveaway.Price}']"); var giftId = htmlDoc.DocumentNode.SelectSingleNode("//input[@name='giftID']"); if (storId != null && code != null && giftId != null) { scGiveaway.StoreId = storId.Attributes["href"].Value.Split('/')[4]; scGiveaway.Code = code.Attributes["data-hashid"].Value; return(new Log("", Color.White, true)); } var group = htmlDoc.DocumentNode.SelectSingleNode("//a[@class='notification group-join regular-button qa']"); if (group != null) { if (AutoJoin) { var trueGroupUrl = Web.Get(group.Attributes["href"].Value, Cookies.Generate()); return(await steam.Join(trueGroupUrl.RestResponse.ResponseUri.AbsoluteUri)); } var error = htmlDoc.DocumentNode.SelectSingleNode("//a[@class='notification group-join regular-button qa']"); return (new Log( $"{Messages.GetDateTime()} {{SteamCompanion}} {strings.GiveawayJoined_Join} \"{scGiveaway.Name}\" {strings.GiveawayNotJoined_NotConfirmed} " + $"{strings.GiveawayNotJoined_YouMustEnteredToGroup} {{{(error == null ? "Error" : error.Attributes["href"].Value)}}}", Color.Yellow, false)); } var exception = htmlDoc.DocumentNode.SelectSingleNode("//a[@class='notification regular-button']").InnerText; if (exception != null) { return(Messages.GiveawayNotJoined("SteamCompanion", scGiveaway.Name, exception)); } } return(Messages.GiveawayNotJoined("SteamCompanion", scGiveaway.Name, "Content is empty")); }
public async Task <Log> CheckWon() { var task = new TaskCompletionSource <Log>(); await Task.Run(() => { var response = Web.Get(Links.SteamCompanionWon, Cookies.Generate()); if (response.RestResponse.Content != string.Empty) { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(response.RestResponse.Content); var nodes = htmlDoc.DocumentNode.SelectNodes("//table[@id='created_giveaway']/tbody/tr"); if (nodes != null) { for (var i = 0; i < nodes.Count; i++) { var test = nodes[i].SelectSingleNode(".//input[@checked]"); if (test != null) { nodes.Remove(nodes[i]); i--; } } if (nodes.Count > 0) { task.SetResult(Messages.GiveawayHaveWon("SteamCompanion", nodes.Count, Links.SteamCompanionWon)); } else { task.SetResult(null); } } else { task.SetResult(null); } } else { task.SetResult(null); } }); return(task.Task.Result); }
public async Task <Log> Sync() { var task = new TaskCompletionSource <Log>(); await Task.Run(() => { var response = Web.Get(Links.SteamCompanionSync, Cookies.Generate()); if (response.RestResponse.Content != string.Empty) { task.SetResult(new Log($"{Messages.GetDateTime()} {{SteamCompanion}} Sync success!", Color.Green, true)); } task.SetResult(new Log($"{Messages.GetDateTime()} {{SteamCompanion}} Sync failed", Color.Red, false)); }); return(task.Task.Result); }
public async Task <Log> SyncAccount() { var task = new TaskCompletionSource <Log>(); await Task.Run(() => { var xsrf = Web.Get(Links.SteamGiftsSync, Cookies.Generate()); if (xsrf.RestResponse.Content != null) { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(xsrf.RestResponse.Content); var xsrfToken = htmlDoc.DocumentNode.SelectSingleNode("//input[@name='xsrf_token']"); if (xsrfToken != null) { var headers = new List <HttpHeader>(); var header = new HttpHeader { Name = "X-Requested-With", Value = "XMLHttpRequest" }; headers.Add(header); var response = Web.Post(Links.SteamGiftsAjax, GenerateJoinParams(xsrfToken.Attributes["value"].Value, "", "sync"), headers, Cookies.Generate(), UserAgent); if (response != null) { var result = JsonConvert.DeserializeObject <JsonResponseSyncAccount>(response.RestResponse.Content); if (result.Type == "success") { task.SetResult(new Log($"{Messages.GetDateTime()} {{SteamGifts}} {result.Msg}", Color.Green, true)); } task.SetResult(new Log($"{Messages.GetDateTime()} {{SteamGifts}} {result.Msg}", Color.Red, false)); } } } task.SetResult(null); }); return(task.Task.Result); }
private SteamTradeGiveaway GetJoinData(SteamTradeGiveaway stGiveaway) { var response = Web.Get($"{Links.SteamTrade}{stGiveaway.Link}", Cookies.Generate()); if (response.RestResponse.Content != string.Empty) { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(response.RestResponse.Content); var linkJoin = htmlDoc.DocumentNode.SelectSingleNode("//a[@class='inv_join']"); if (linkJoin != null) { stGiveaway.LinkJoin = linkJoin.Attributes["href"].Value.Trim(); } } return(stGiveaway); }
private async Task <Log> LoadGiveawaysAsync(Blacklist blackList) { var task = new TaskCompletionSource <Log>(); await Task.Run(() => { var content = string.Empty; Giveaways?.Clear(); var pages = 1; for (var i = 0; i < pages; i++) { var response = Web.Get($"{Links.GameAways}{(i > 0 ? $"?page={i + 1}" : string.Empty)}", Cookies.Generate()); if (response.RestResponse.Content != string.Empty) { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(response.RestResponse.Content); var pageNodeCounter = htmlDoc.DocumentNode.SelectSingleNode("//a[@class='float-right next']"); if (pageNodeCounter != null) { pages = int.Parse(pageNodeCounter.Attributes["href"].Value.Split('=')[1]); } var nodes = htmlDoc.DocumentNode.SelectNodes("//div[@class='giveaway ']"); AddGiveaways(nodes); } } if (Giveaways?.Count == 0) { task.SetResult(Messages.ParseGiveawaysEmpty(content, "GameAways")); } else { blackList.RemoveGames(Giveaways); task.SetResult(Messages.ParseGiveawaysFoundMatchGiveaways(content, "GameAways", Giveaways?.Count.ToString())); } }); return(task.Task.Result); }
private async Task <Log> JoinGiveaway(SteamCompanionGiveaway giveaway, Steam steam) { var task = new TaskCompletionSource <Log>(); await Task.Run(async() => { Thread.Sleep(400); var data = await GetJoinData(giveaway, steam); if (data != null && data.Success) { if (giveaway.Code != null) { var list = new List <HttpHeader>(); var header = new HttpHeader { Name = "X-Requested-With", Value = "XMLHttpRequest" }; list.Add(header); var response = Web.Post(Links.SteamCompanionJoin, GenerateJoinData(giveaway.Code), list, Cookies.Generate()); if (response.RestResponse.Content.Split('"')[3].Split('"')[0] == "Success") { Points = int.Parse(response.RestResponse.Content.Split(':')[2].Split(',')[0]); task.SetResult(Messages.GiveawayJoined("SteamCompanion", giveaway.Name, giveaway.Price, int.Parse(response.RestResponse.Content.Split(':')[2].Split(',')[0]))); } else { task.SetResult(Messages.GiveawayNotJoined("SteamCompanion", giveaway.Name, response.RestResponse.Content)); } } } else { task.SetResult(data); } }); return(task.Task.Result); }
private async Task <Log> JoinGiveaway(SteamGiftsGiveaway giveaway) { var task = new TaskCompletionSource <Log>(); await Task.Run(async() => { Thread.Sleep(400); giveaway = GetJoinData(giveaway); if (giveaway.Token != null) { var response = Web.Post(Links.SteamGiftsAjax, GenerateJoinParams(giveaway.Token, giveaway.Code, "entry_insert"), Cookies.Generate(), UserAgent); if (response.RestResponse.Content != null) { var jsonresponse = JsonConvert.DeserializeObject <JsonResponseJoin>(response.RestResponse.Content); if (jsonresponse.Type == "success") { Points = jsonresponse.Points; task.SetResult(Messages.GiveawayJoined("SteamGifts", giveaway.Name, giveaway.Price, jsonresponse.Points, giveaway.Level)); } else { var jresponse = JsonConvert.DeserializeObject <JsonResponseError>(response.RestResponse.Content); task.SetResult(Messages.GiveawayNotJoined("SteamGifts", giveaway.Name, jresponse.Error?.Message)); } } } else { task.SetResult(Messages.GiveawayNotJoined("SteamGifts", giveaway.Name, await GetFailedDetail(giveaway.Link))); } }); return(task.Task.Result); }
private SteamGiftsGiveaway GetJoinData(SteamGiftsGiveaway sgGiveaway) { var response = Web.Get($"{Links.SteamGifts}{sgGiveaway.Link}", Cookies.Generate(), UserAgent); if (response.RestResponse.Content != string.Empty) { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(response.RestResponse.Content); var code = htmlDoc.DocumentNode.SelectSingleNode("//input[@name='code']"); var token = htmlDoc.DocumentNode.SelectSingleNode("//input[@name='xsrf_token']"); if (code != null && token != null) { sgGiveaway.Code = code.Attributes["value"].Value; sgGiveaway.Token = token.Attributes["value"].Value; } } return(sgGiveaway); }
public async Task <Log> Sync(string lang) //TODO Move log response in Messages { var task = new TaskCompletionSource <Log>(); await Task.Run(() => { var response = Web.Post(Links.GameMinerSync, GenerateSyncData(), Cookies.Generate(lang), UserAgent); if (response.RestResponse.Content != "") { task.SetResult(response.RestResponse.StatusCode == HttpStatusCode.OK ? new Log($"{Messages.GetDateTime()} {{GameMiner}} Sync success", Color.Green, true) : new Log($"{Messages.GetDateTime()} {{GameMiner}} Sync failed", Color.Red, false)); } else { task.SetResult(Messages.ParseProfileFailed("GameMiner")); } }); return(task.Task.Result); }
private string LoadGiveawaysByUrl(string url, string message, List <SteamCompanionGiveaway> giveawaysList) { var count = 0; var pages = 1; for (var i = 0; i < pages; i++) { var response = Web.Get( $"{url}{(i > 0 ? $"&page={i + 1}" : string.Empty)}", Cookies.Generate()); if (response.RestResponse.Content != string.Empty) { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(response.RestResponse.Content); var pageNode = htmlDoc.DocumentNode.SelectSingleNode("//li[@class='arrow']/a[1]"); if (pageNode != null) { pages = int.Parse(Regex.Match(pageNode.Attributes["href"].Value, @"\d+").Value); } var nodes = htmlDoc.DocumentNode.SelectNodes("//section[@class='col-2-3']/div"); if (nodes != null) { for (var j = 0; j < nodes.Count; j++) { if (nodes[j].Attributes["style"] != null && nodes[j].Attributes["style"].Value == "opacity: 0.5;") { nodes.Remove(nodes[j]); j--; } } count += nodes.Count; AddGiveaways(nodes, giveawaysList); } } } return ($"{Messages.GetDateTime()} {{SteamCompanion}} {strings.ParseLoadGiveaways_Found} {count} {message} {pages} {strings.ParseLoadGiveaways_Pages}\n"); }
private async Task <Log> JoinGiveaway(SteamPortalGiveaway giveaway) { var task = new TaskCompletionSource <Log>(); await Task.Run(() => { Thread.Sleep(400); if (giveaway.Code != null) { var list = new List <HttpHeader>(); var header = new HttpHeader { Name = "X-Requested-With", Value = "XMLHttpRequest" }; list.Add(header); var response = Web.Post(Links.SteamPortalJoin, GenerateJoinData(giveaway.Code), list, Cookies.Generate()); var jresponse = JsonConvert.DeserializeObject <JsonJoin>(response.RestResponse.Content.Replace(".", "")); if (jresponse.Error == 0) { Points = jresponse.TargetH.MyCoins; task.SetResult(Messages.GiveawayJoined("SteamPortal", giveaway.Name, giveaway.Price, jresponse.TargetH.MyCoins)); } else { task.SetResult(Messages.GiveawayNotJoined("SteamPortal", giveaway.Name, "Error")); } } else { task.SetResult(null); } }); return(task.Task.Result); }
public async Task <Log> CheckLogin() { var task = new TaskCompletionSource <Log>(); await Task.Run(() => { var response = Web.Get(Links.SteamGifts, Cookies.Generate(), UserAgent); if (response.RestResponse.Content != string.Empty) { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(response.RestResponse.Content); var points = htmlDoc.DocumentNode.SelectSingleNode("//a[@href='/account']/span[1]"); var level = htmlDoc.DocumentNode.SelectSingleNode("//a[@href='/account']/span[2]"); var username = htmlDoc.DocumentNode.SelectSingleNode("//a[@class='nav__avatar-outer-wrap']"); if (points != null && level != null && username != null) { Points = int.Parse(points.InnerText); Level = int.Parse(level.InnerText.Split(' ')[1]); task.SetResult(Messages.ParseProfile("SteamGifts", Points, Level, username.Attributes["href"].Value.Split('/')[2])); } var error = htmlDoc.DocumentNode.SelectSingleNode("//div[@class='notification notification--warning']"); if (error != null) { Enabled = false; task.SetResult(Messages.ParseProfileFailed("SteamGifts", error.InnerText)); } } else { task.SetResult(Messages.ParseProfileFailed("SteamGifts")); } }); return(task.Task.Result); }
public async Task <Dictionary <int, string> > GetBlaclList() { var task = new TaskCompletionSource <Dictionary <int, string> >(); await Task.Run(() => { var response = Web.Get(Links.SteamGiftsBlackList, Cookies.Generate(), UserAgent); if (response.RestResponse.Content != string.Empty) { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(response.RestResponse.Content); var nodes = htmlDoc.DocumentNode.SelectNodes("//div[@class='table__row-outer-wrap']"); Dictionary <int, string> gameList = new Dictionary <int, string>(); if (nodes.Count > 0) { foreach (var game in nodes) { var name = game.SelectSingleNode(".//p[@class='table__column__heading']"); var id = game.SelectSingleNode(".//a[@class='table__column__secondary-link']"); if (name != null && id != null) { gameList.Add(int.Parse(id.InnerText.Split('/')[4].Split('/')[0]), name.InnerText); } } } task.SetResult(gameList); } else { task.SetResult(null); } }); return(task.Task.Result); }
private async Task <Log> LoadGiveawaysAsync(Blacklist blackList) { var task = new TaskCompletionSource <Log>(); await Task.Run(() => { Giveaways?.Clear(); var response = Web.Post(Links.PlayBlink, GenerateParsData(), Cookies.Generate()); if (response.RestResponse.Content != string.Empty) { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(response.RestResponse.Content); var nodes = htmlDoc.DocumentNode.SelectNodes("//div[@id='games_free']/div[@class='game_box']"); if (nodes != null) { AddGiveaways(nodes); } if (Giveaways == null) { task.SetResult(Messages.ParseGiveawaysEmpty("PlayBlink")); } else { blackList.RemoveGames(Giveaways); task.SetResult(Messages.ParseGiveawaysFoundMatchGiveaways("PlayBlink", Giveaways?.Count.ToString())); } } else { task.SetResult(Messages.ParseGiveawaysEmpty("PlayBlink")); } }); return(task.Task.Result); }
public async Task <Log> CheckWon() { var task = new TaskCompletionSource <Log>(); await Task.Run(() => { var response = Web.Get(Links.SteamPortalWon, Cookies.Generate()); if (response.RestResponse.Content != string.Empty) { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(response.RestResponse.Content); var nodes = htmlDoc.DocumentNode.SelectNodes("//tr[@class='gray']"); if (nodes != null) { for (var i = 0; i < nodes.Count; i++) { var content = nodes[i].SelectSingleNode("//tr/td[2]").InnerText; if (!content.Contains("you've won the Giveaway")) { nodes.Remove(nodes[i]); i--; } } task.SetResult(Messages.GiveawayHaveWon("SteamPortal", nodes.Count, Links.SteamPortalWon)); } else { task.SetResult(null); } } else { task.SetResult(null); } }); return(task.Task.Result); }