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(); } }
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(); } }