Ejemplo n.º 1
0
        public async Task DailyOffers()
        {
            using (var driver = await _driverFactory.GetDriver(UserAgent.Desktop))
            {
                await DoLogin(driver);

                Log.Info("Proecessing daily offers");
                var rewardDashboard = RewardDashboardPage.NavigateTo(driver);
                rewardDashboard.SignInIfRequired();
                var openOfferLinks = rewardDashboard.GetOpenOffers();

                Log.Info("There are {count} offer(s)", openOfferLinks.Count);
                foreach (var link in openOfferLinks)
                {
                    driver.DoWait(3);
                    var offerPage = link.Click();
                    offerPage
                    ?.AcceptCookies()
                    ?.EnsureLoggedIn()
                    ?.AcceptCookies()
                    .CompleteOffer()
                    .Close();

                    rewardDashboard.SwitchTo();
                }
//#here -> line ~593 in https://github.com/LjMario007/Microsoft-Rewards-Bot/blob/master/ms_rewards.py

                driver.Close();
            }
        }
Ejemplo n.º 2
0
        private async Task DoSearches(string userAgent)
        {
            var isMobile = userAgent == UserAgent.Mobile;

            using (var driver = await _driverFactory.GetDriver(userAgent))
            {
                var loginTask       = DoLogin(driver);
                var searchTermsTask = _searchTermProvider.GetTerms();

                await Task.WhenAll(loginTask, searchTermsTask);

                Log.Info("Processing Searches");

                var searchTerms = searchTermsTask.Result.ToList();
                searchTerms.Shuffle();

                var searchPage = BingSearchPage.NavigateTo(driver);
                searchPage = searchPage
                             .EnsureLoggedIn()
                             .AcceptCookies();

                var maxSearches = isMobile ? 20 : 30;
                maxSearches += 15;  // add some "padding" in case some searches don't register

                bool?isLevelOne = null;

                foreach (var searchTerm in searchTerms)
                {
                    searchPage.Search(searchTerm);

                    var tallyPage = RewardStatusPage.NavigateTo(driver);
                    if (isLevelOne == null)
                    {
                        isLevelOne = tallyPage.IsLevelOne();
                    }

                    bool complete;
                    if (isLevelOne.Value)
                    {
                        complete = tallyPage.AllSearchComplete();
                    }
                    else
                    {
                        complete = isMobile ? tallyPage.MobileSearchComplete() : tallyPage.PcSearchComplete();
                    }

                    if (--maxSearches < 0 || complete)
                    {
                        Log.Info("Stopped searching");
                        break;
                    }
                }

                driver.Close();
            }
        }