Beispiel #1
0
        private int AddGiveaways(JsonRootObject json)
        {
            var count = 0;

            if (json != null)
            {
                foreach (var giveaway in json.Giveaways)
                {
                    var lot = new GameMinerGiveaway();
                    if (giveaway.Golden && giveaway.Price != 0)
                    {
                        break;
                    }

                    if (lot.Price > Points)
                    {
                        break;
                    }

                    if (lot.Price >= JoinPointsLimit)
                    {
                        break;
                    }

                    if (lot.Price > PointsReserv)
                    {
                        break;
                    }

                    lot.Name      = giveaway.Game.Name;
                    lot.Id        = giveaway.Code;
                    lot.IsRegular = giveaway.Sandbox == null;
                    lot.IsSandbox = giveaway.Sandbox != null;
                    lot.IsGolden  = giveaway.Golden;
                    lot.Page      = json.Page;
                    lot.Price     = giveaway.Price;

                    if (giveaway.RegionlockTypeId != null)
                    {
                        lot.Region = giveaway.RegionlockTypeId;
                    }

                    if (giveaway.Game.Url != "javascript:void(0);")
                    {
                        lot.StoreId = giveaway.Game.Url.Split('/')[4];
                    }
                    else
                    {
                        break;
                    }

                    Giveaways?.Add(lot);
                    count++;
                }
            }

            return(count);
        }
Beispiel #2
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);
        }