Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
0
        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");
        }
Ejemplo n.º 12
0
        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");
        }
Ejemplo n.º 13
0
        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);
        }
Ejemplo n.º 14
0
        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);
        }
Ejemplo n.º 15
0
        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"));
        }
Ejemplo n.º 16
0
        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);
        }
Ejemplo n.º 17
0
        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);
        }
Ejemplo n.º 18
0
        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);
        }
Ejemplo n.º 19
0
        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);
        }
Ejemplo n.º 20
0
        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);
        }
Ejemplo n.º 21
0
        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);
        }
Ejemplo n.º 22
0
        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);
        }
Ejemplo n.º 23
0
        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);
        }
Ejemplo n.º 24
0
        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);
        }
Ejemplo n.º 25
0
        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");
        }
Ejemplo n.º 26
0
        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);
        }
Ejemplo n.º 27
0
        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);
        }
Ejemplo n.º 28
0
        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);
        }
Ejemplo n.º 29
0
        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);
        }
Ejemplo n.º 30
0
        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);
        }