def charge_campaign(link, campaign): if charged_or_not_needed(campaign): return user = Account._byID(link.author_id) success, reason = authorize.charge_transaction(user, campaign.trans_id, campaign._id) if not success: if reason == authorize.TRANSACTION_NOT_FOUND: # authorization hold has expired original_trans_id = campaign.trans_id campaign.trans_id = NO_TRANSACTION campaign._commit() text = ('voided expired transaction for %s: (trans_id: %d)' % (campaign, original_trans_id)) PromotionLog.add(link, text) return hooks.get_hook('promote.edit_campaign').call(link=link, campaign=campaign) if not is_promoted(link): update_promote_status(link, PROMOTE_STATUS.pending) emailer.queue_promo(link, campaign.bid, campaign.trans_id) text = ('auth charge for campaign %s, trans_id: %d' % (campaign._id, campaign.trans_id)) PromotionLog.add(link, text)
def charge_pending(offset=1): for l, camp, weight in accepted_campaigns(offset=offset): user = Account._byID(l.author_id) try: if charged_or_not_needed(camp): continue charge_succeeded = authorize.charge_transaction(user, camp.trans_id, camp._id) if not charge_succeeded: continue hooks.get_hook('promote.new_charge').call(link=l, campaign=camp) if is_promoted(l): emailer.queue_promo(l, camp.bid, camp.trans_id) else: set_promote_status(l, PROMOTE_STATUS.pending) emailer.queue_promo(l, camp.bid, camp.trans_id) text = ('auth charge for campaign %s, trans_id: %d' % (camp._id, camp.trans_id)) PromotionLog.add(l, text) except: print "Error on %s, campaign %s" % (l, camp._id)
def charge_pending(offset=1): for l, camp, weight in accepted_campaigns(offset=offset): user = Account._byID(l.author_id) try: if authorize.is_charged_transaction(camp.trans_id, camp._id): # already charged continue charge_succeeded = authorize.charge_transaction(user, camp.trans_id, camp._id) if not charge_succeeded: continue hooks.get_hook('promote.new_charge').call(link=l, campaign=camp) if is_promoted(l): emailer.queue_promo(l, camp.bid, camp.trans_id) else: set_promote_status(l, PROMOTE_STATUS.pending) emailer.queue_promo(l, camp.bid, camp.trans_id) text = ('auth charge for campaign %s, trans_id: %d' % (camp._id, camp.trans_id)) PromotionLog.add(l, text) except: print "Error on %s, campaign %s" % (l, camp._id)
def _charge(l, camp, indx, weight): user = Account._byID(l.author_id) sd, ed, bid, sr, trans_id = camp try: if (not authorize.is_charged_transaction(trans_id, indx) and authorize.charge_transaction(user, trans_id, indx)): # update the query queue if is_promoted(l): emailer.queue_promo(l, bid, trans_id) else: set_status(l, STATUS.pending, onchange = lambda: emailer.queue_promo(l, bid, trans_id) ) promotion_log(l, "auth charge for campaign %s, trans_id: %d" % (indx, trans_id), True) except: print "Error on %s, campaign %s" % (l, indx)
def _charge(l, camp, indx, weight): user = Account._byID(l.author_id) sd, ed, bid, sr, trans_id = camp try: if (not authorize.is_charged_transaction(trans_id, indx) and authorize.charge_transaction(user, trans_id, indx)): # TODO: probably not absolutely necessary promotion_log(l, "status update: pending") # update the query queue if is_promoted(l): emailer.queue_promo(l, bid, trans_id) else: set_status(l, STATUS.pending, onchange = lambda: emailer.queue_promo(l, bid, trans_id) ) except: print "Error on %s, campaign %s" % (l, indx)
def charge_pending(offset=1): for l, camp, weight in accepted_campaigns(offset=offset): user = Account._byID(l.author_id) try: if authorize.is_charged_transaction(camp.trans_id, camp._id) or not authorize.charge_transaction( user, camp.trans_id, camp._id ): continue if is_promoted(l): emailer.queue_promo(l, camp.bid, camp.trans_id) else: set_status(l, STATUS.pending, onchange=lambda: emailer.queue_promo(l, camp.bid, camp.trans_id)) promotion_log(l, "auth charge for campaign %s, trans_id: %d" % (camp._id, camp.trans_id), commit=True) except: print "Error on %s, campaign %s" % (l, camp._id)
def pending_promo(thing): """ For an accepted promotion within the proper time interval, charge the account of the user and set the new status as pending. """ if thing.promote_status == STATUS.accepted and thing.promote_trans_id: user = Account._byID(thing.author_id) # TODO: check for charge failures/recharges, etc if authorize.charge_transaction(user, thing.promote_trans_id): promotion_log(thing, "status update: pending") thing.promote_status = STATUS.pending thing.promote_paid = thing.promote_bid thing._commit() emailer.queue_promo(thing) else: promotion_log(thing, "status update: charge failure") thing._commit()
def charge_pending(offset=1): for l, index, camp in accepted_campaigns(offset=offset): user = Account._byID(l.author_id) sd, ed, bid, sr, trans_id = camp try: if (authorize.is_charged_transaction(trans_id, index) or not authorize.charge_transaction(user, trans_id, index)): continue if is_promoted(l): emailer.queue_promo(l, bid, trans_id) else: set_status(l, STATUS.pending, onchange=lambda: emailer.queue_promo(l, bid, trans_id)) promotion_log(l, "auth charge for campaign %s, trans_id: %d" % (index, trans_id), True) except: print "Error on %s, campaign %s" % (l, index)
def charge_pending(offset=1): for l, camp, weight in accepted_campaigns(offset=offset): user = Account._byID(l.author_id) try: if (authorize.is_charged_transaction(camp.trans_id, camp._id) or not authorize.charge_transaction(user, camp.trans_id, camp._id)): continue if is_promoted(l): emailer.queue_promo(l, camp.bid, camp.trans_id) else: set_promote_status(l, PROMOTE_STATUS.pending) emailer.queue_promo(l, camp.bid, camp.trans_id) text = ('auth charge for campaign %s, trans_id: %d' % (camp._id, camp.trans_id)) PromotionLog.add(l, text) except: print "Error on %s, campaign %s" % (l, camp._id)
def charge_campaign(link, campaign): if charged_or_not_needed(campaign): return user = Account._byID(link.author_id) charge_succeeded = authorize.charge_transaction(user, campaign.trans_id, campaign._id) if not charge_succeeded: return hooks.get_hook("promote.edit_campaign").call(link=link, campaign=campaign) if not is_promoted(link): update_promote_status(link, PROMOTE_STATUS.pending) emailer.queue_promo(link, campaign.bid, campaign.trans_id) text = "auth charge for campaign %s, trans_id: %d" % (campaign._id, campaign.trans_id) PromotionLog.add(link, text)
def _charge(l, camp, indx, weight): user = Account._byID(l.author_id) sd, ed, bid, sr, trans_id = camp try: if (not authorize.is_charged_transaction(trans_id, indx) and authorize.charge_transaction(user, trans_id, indx)): # TODO: probably not absolutely necessary promotion_log(l, "status update: pending") # update the query queue if is_promoted(l): emailer.queue_promo(l, bid, trans_id) else: set_status( l, STATUS.pending, onchange=lambda: emailer.queue_promo(l, bid, trans_id)) except: print "Error on %s, campaign %s" % (l, indx)
def _charge(l, camp, indx, weight): user = Account._byID(l.author_id) sd, ed, bid, sr, trans_id = camp try: if (not authorize.is_charged_transaction(trans_id, indx) and authorize.charge_transaction(user, trans_id, indx)): # update the query queue if is_promoted(l): emailer.queue_promo(l, bid, trans_id) else: set_status( l, STATUS.pending, onchange=lambda: emailer.queue_promo(l, bid, trans_id)) promotion_log( l, "auth charge for campaign %s, trans_id: %d" % (indx, trans_id), True) except: print "Error on %s, campaign %s" % (l, indx)
def charge_campaign(link, campaign): if charged_or_not_needed(campaign): return user = Account._byID(link.author_id) charge_succeeded = authorize.charge_transaction(user, campaign.trans_id, campaign._id) if not charge_succeeded: return hooks.get_hook('promote.edit_campaign').call(link=link, campaign=campaign) if not is_promoted(link): update_promote_status(link, PROMOTE_STATUS.pending) emailer.queue_promo(link, campaign.bid, campaign.trans_id) text = ('auth charge for campaign %s, trans_id: %d' % (campaign._id, campaign.trans_id)) PromotionLog.add(link, text)
def charge_pending(offset=1): for l, camp, weight in accepted_campaigns(offset=offset): user = Account._byID(l.author_id) try: if (authorize.is_charged_transaction(camp.trans_id, camp._id) or not authorize.charge_transaction( user, camp.trans_id, camp._id)): continue if is_promoted(l): emailer.queue_promo(l, camp.bid, camp.trans_id) else: set_status(l, STATUS.pending, onchange=lambda: emailer.queue_promo( l, camp.bid, camp.trans_id)) promotion_log(l, "auth charge for campaign %s, trans_id: %d" % (camp._id, camp.trans_id), commit=True) except: print "Error on %s, campaign %s" % (l, camp._id)