def earnRewards(config, httpHeaders, userAgents, reportItem, password): """Earns Bing reward points and populates reportItem""" noException = False try: if reportItem is None: raise ValueError("reportItem is None") if reportItem.accountType is None: raise ValueError("reportItem.accountType is None") if reportItem.accountLogin is None: raise ValueError("reportItem.accountLogin is None") if password is None: raise ValueError("password is None") del reportItem.error reportItem.error = None reportItem.pointsEarned = 0 bingRewards = BingRewards(httpHeaders, userAgents, config) bingAuth = BingAuth(httpHeaders, bingRewards.opener) bingAuth.authenticate(reportItem.accountType, reportItem.accountLogin, password) reportItem.oldPoints = bingRewards.getRewardsPoints() rewards = bdp.parseDashboardPage(bingRewards.getDashboardPage(), bingCommon.ACCOUNT_URL) if verbose: bingRewards.printRewards(rewards) print("%s - %s" % (reportItem.accountType, reportItem.accountLogin)) results = bingRewards.process(rewards, verbose) if verbose: print print "-" * 80 print bingRewards.printResults(results, verbose) reportItem.newPoints = bingRewards.getRewardsPoints() reportItem.lifetimeCredits = bingRewards.getLifetimeCredits() reportItem.pointsEarned = reportItem.newPoints - reportItem.oldPoints reportItem.pointsEarnedRetrying += reportItem.pointsEarned print print "%s - %s" % (reportItem.accountType, reportItem.accountLogin) print print "Points before: %6d" % reportItem.oldPoints print "Points after: %6d" % reportItem.newPoints print "Points earned: %6d" % reportItem.pointsEarned print "Lifetime Credits: %6d" % reportItem.lifetimeCredits print print "-" * 80 noException = True except IOError, e: reportItem.error = e print "IOError: %s" % e
def earnRewards(config, httpHeaders, userAgents, reportItem, password): """Earns Bing reward points and populates reportItem""" noException = False try: if reportItem is None: raise ValueError("reportItem is None") if reportItem.accountType is None: raise ValueError("reportItem.accountType is None") if reportItem.accountLogin is None: raise ValueError("reportItem.accountLogin is None") if password is None: raise ValueError("password is None") del reportItem.error reportItem.error = None reportItem.pointsEarned = 0 bingRewards = BingRewards(httpHeaders, userAgents, config) bingAuth = BingAuth(httpHeaders, bingRewards.opener) bingAuth.authenticate(reportItem.accountType, reportItem.accountLogin, password) reportItem.oldPoints = bingRewards.getRewardsPoints() rewards = bdp.parseDashboardPage(bingRewards.getDashboardPage(), bingCommon.ACCOUNT_URL) if verbose: bingRewards.printRewards(rewards) print ("%s - %s" % (reportItem.accountType, reportItem.accountLogin)) results = bingRewards.process(rewards, verbose) if verbose: print print "-" * 80 print bingRewards.printResults(results, verbose) reportItem.newPoints = bingRewards.getRewardsPoints() reportItem.lifetimeCredits = bingRewards.getLifetimeCredits() reportItem.pointsEarned = reportItem.newPoints - reportItem.oldPoints reportItem.pointsEarnedRetrying += reportItem.pointsEarned print print "%s - %s" % (reportItem.accountType, reportItem.accountLogin) print print "Points before: %6d" % reportItem.oldPoints print "Points after: %6d" % reportItem.newPoints print "Points earned: %6d" % reportItem.pointsEarned print "Lifetime Credits: %6d" % reportItem.lifetimeCredits print print "-" * 80 noException = True except IOError, e: reportItem.error = e print "IOError: %s" % e
def _bp(self, classobj): """ test reward parser :return: """ self.assertIsNotNone(classobj.isAchieved(), "should not be None") classobj.progressCurrent = 1 classobj.progressMax = 100 self.assertIsNotNone(classobj.progressPercentage(), "should not be None") page = '<div id="messageContainer"></div>' page += '<div id="bottomContainer"></div>' if isinstance(classobj, bdp.Reward): with open("test/dashhtml", "r") as fd: DASHPG = fd.readlines() DASHPG = "".join(DASHPG) self.assertIsNotNone(bdp.parseDashboardPage(DASHPG, bingCommon.ACCOUNT_URL), "should see rewards") if isinstance(classobj, bfp.RewardV1): self.assertIsNotNone(bfp.parseFlyoutPage(page, "http://bing"), "should not be None") self.assertIsNotNone(classobj.Type.Action.toStr(classobj.Type.Action.PASS), "should not be None") classobj.progressCurrent = 1 classobj.progressMax = 0 self.assertIsNotNone(classobj.progressPercentage(), "should not be None")