コード例 #1
0
ファイル: SteamGifts.cs プロジェクト: finalcd/KryBot
        private async Task <Log> LoadGiveawaysAsync(Blacklist blackList)
        {
            var task = new TaskCompletionSource <Log>();
            await Task.Run(() =>
            {
                var content = string.Empty;
                Giveaways?.Clear();
                WishlistGiveaways?.Clear();

                if (WishList)
                {
                    content += LoadGiveawaysByUrl(
                        $"{Links.SteamGiftsSearch}?type=wishlist",
                        strings.ParseLoadGiveaways_WishListGiveAwaysIn,
                        WishlistGiveaways);
                }

                if (Group)
                {
                    content += LoadGiveawaysByUrl(
                        $"{Links.SteamGiftsSearch}?type=group",
                        strings.ParseLoadGiveaways_GroupGiveAwaysIn,
                        Giveaways);
                }

                if (Regular)
                {
                    content += LoadGiveawaysByUrl(
                        $"{Links.SteamGiftsSearch}",
                        strings.ParseLoadGiveaways_RegularGiveawaysIn,
                        Giveaways);
                }

                if (Giveaways?.Count == 0 && WishlistGiveaways?.Count == 0)
                {
                    task.SetResult(Messages.ParseGiveawaysEmpty(content, "SteamGifts"));
                }
                else
                {
                    blackList.RemoveGames(Giveaways);
                    blackList.RemoveGames(WishlistGiveaways);
                    task.SetResult(Messages.ParseGiveawaysFoundMatchGiveaways(content, "SteamGifts",
                                                                              (Giveaways?.Count + WishlistGiveaways?.Count).ToString()));
                }
            });

            return(task.Task.Result);
        }
コード例 #2
0
ファイル: SteamGifts.cs プロジェクト: finalcd/KryBot
        public async Task Join(Blacklist blacklist, bool sort, bool sortToMore, bool wishlistNotSort)
        {
            LogMessage.Instance.AddMessage(await LoadGiveawaysAsync(blacklist));

            if (Giveaways?.Count > 0)
            {
                if (sort)
                {
                    if (sortToMore)
                    {
                        Giveaways.Sort((a, b) => b.Price.CompareTo(a.Price));
                    }
                    else
                    {
                        Giveaways.Sort((a, b) => a.Price.CompareTo(b.Price));
                    }
                }

                if (SortToLessLevel)
                {
                    Giveaways.Sort((a, b) => b.Level.CompareTo(a.Level));
                }
                else if (SortToMoreCopies)
                {
                    Giveaways.Sort((a, b) => a.Copies.CompareTo(b.Copies));
                }

                foreach (var giveaway in Giveaways)
                {
                    if (giveaway.Price <= Points && PointsReserv <= Points - giveaway.Price)
                    {
                        LogMessage.Instance.AddMessage(await JoinGiveaway(giveaway));
                    }
                }
            }

            if (WishlistGiveaways?.Count > 0)
            {
                if (sort)
                {
                    if (sortToMore)
                    {
                        if (!wishlistNotSort)
                        {
                            WishlistGiveaways.Sort((a, b) => b.Price.CompareTo(a.Price));
                        }
                    }
                    else
                    {
                        if (!wishlistNotSort)
                        {
                            WishlistGiveaways.Sort((a, b) => a.Price.CompareTo(b.Price));
                        }
                    }
                }

                if (SortToLessLevel)
                {
                    if (!wishlistNotSort)
                    {
                        WishlistGiveaways.Sort((a, b) => b.Level.CompareTo(a.Level));
                    }
                }

                foreach (var giveaway in WishlistGiveaways)
                {
                    if (giveaway.Price <= Points && PointsReserv <= Points - giveaway.Price)
                    {
                        LogMessage.Instance.AddMessage(await JoinGiveaway(giveaway));
                    }
                }
            }
        }