本文整理汇总了Python中r2.models.PromotionWeights.reschedule方法的典型用法代码示例。如果您正苦于以下问题:Python PromotionWeights.reschedule方法的具体用法?Python PromotionWeights.reschedule怎么用?Python PromotionWeights.reschedule使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类r2.models.PromotionWeights
的用法示例。
在下文中一共展示了PromotionWeights.reschedule方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: edit_campaign
# 需要导入模块: from r2.models import PromotionWeights [as 别名]
# 或者: from r2.models.PromotionWeights import reschedule [as 别名]
def edit_campaign(link, campaign, dates, bid, sr):
sr_name = sr.name if sr else '' # empty string means target to all
try:
# if the bid amount changed, cancel any pending transactions
if campaign.bid != bid:
void_campaign(link, campaign)
# update the schedule
PromotionWeights.reschedule(link, campaign._id, sr_name,
dates[0], dates[1], bid)
# update values in the db
campaign.update(dates[0], dates[1], bid, sr_name, campaign.trans_id, commit=True)
# record the transaction
text = 'updated campaign %s. (bid: %0.2f)' % (campaign._id, bid)
PromotionLog.add(link, text)
# make it a freebie, if applicable
author = Account._byID(link.author_id, True)
if getattr(author, "complimentary_promos", False):
free_campaign(link, campaign, c.user)
except Exception, e: # record error and rethrow
g.log.error("Failed to update PromoCampaign %s on link %d. Error was: %r" %
(campaign._id, link._id, e))
try: # wrapped in try/except so orig error won't be lost if commit fails
text = 'update FAILED. (campaign: %s, bid: %.2f)' % (campaign._id,
bid)
PromotionLog.add(link, text)
except:
pass
raise e
示例2: edit_campaign
# 需要导入模块: from r2.models import PromotionWeights [as 别名]
# 或者: from r2.models.PromotionWeights import reschedule [as 别名]
def edit_campaign(link, campaign, dates, bid, cpm, sr, priority):
sr_name = sr.name if sr else '' # empty string means target to all
# if the bid amount changed, cancel any pending transactions
if campaign.bid != bid:
void_campaign(link, campaign)
# update the schedule
PromotionWeights.reschedule(link, campaign._id, sr_name,
dates[0], dates[1], bid)
# update values in the db
campaign.update(dates[0], dates[1], bid, cpm, sr_name,
campaign.trans_id, priority, commit=True)
if campaign.priority.cpm:
# record the transaction
text = 'updated campaign %s. (bid: %0.2f)' % (campaign._id, bid)
PromotionLog.add(link, text)
# make it a freebie, if applicable
author = Account._byID(link.author_id, True)
if getattr(author, "complimentary_promos", False):
free_campaign(link, campaign, c.user)
hooks.get_hook('promote.edit_campaign').call(link=link, campaign=campaign)
示例3: edit_campaign
# 需要导入模块: from r2.models import PromotionWeights [as 别名]
# 或者: from r2.models.PromotionWeights import reschedule [as 别名]
def edit_campaign(link, campaign, dates, bid, cpm, target, priority, location,
platform='desktop', mobile_os=None):
changed = {}
if bid != campaign.bid:
# if the bid amount changed, cancel any pending transactions
void_campaign(link, campaign, reason='changed_bid')
changed['bid'] = ("$%0.2f" % campaign.bid, "$%0.2f" % bid)
hooks.get_hook('promote.edit_bid').call(
link=link,campaign=campaign, previous=campaign.bid, current=bid)
campaign.bid = bid
if dates[0] != campaign.start_date or dates[1] != campaign.end_date:
original = '%s to %s' % (campaign.start_date, campaign.end_date)
edited = '%s to %s' % (dates[0], dates[1])
changed['dates'] = (original, edited)
campaign.start_date = dates[0]
campaign.end_date = dates[1]
if cpm != campaign.cpm:
changed['cpm'] = (campaign.cpm, cpm)
campaign.cpm = cpm
if target != campaign.target:
changed['target'] = (campaign.target, target)
campaign.target = target
if priority != campaign.priority:
changed['priority'] = (campaign.priority.name, priority.name)
campaign.priority = priority
if location != campaign.location:
changed['location'] = (campaign.location, location)
campaign.location = location
if platform != campaign.platform:
changed["platform"] = (campaign.platform, platform)
campaign.platform = platform
if mobile_os != campaign.mobile_os:
changed["mobile_os"] = (campaign.mobile_os, mobile_os)
campaign.mobile_os = mobile_os
change_strs = map(lambda t: '%s: %s -> %s' % (t[0], t[1][0], t[1][1]),
changed.iteritems())
change_text = ', '.join(change_strs)
campaign._commit()
# update the index
PromotionWeights.reschedule(link, campaign)
if campaign.priority.cpm:
# make it a freebie, if applicable
author = Account._byID(link.author_id, True)
if getattr(author, "complimentary_promos", False):
free_campaign(link, campaign, c.user)
# record the changes
if change_text:
PromotionLog.add(link, 'edited %s: %s' % (campaign, change_text))
hooks.get_hook('promote.edit_campaign').call(link=link, campaign=campaign)
示例4: edit_campaign
# 需要导入模块: from r2.models import PromotionWeights [as 别名]
# 或者: from r2.models.PromotionWeights import reschedule [as 别名]
def edit_campaign(link, campaign, dates, bid, cpm, sr, priority, location):
sr_name = sr.name if sr else '' # empty string means target to all
changed = {}
if bid != campaign.bid:
changed['bid'] = ("$%0.2f" % campaign.bid, "$%0.2f" % bid)
if dates[0] != campaign.start_date or dates[1] != campaign.end_date:
original = '%s to %s' % (campaign.start_date, campaign.end_date)
edited = '%s to %s' % (dates[0], dates[1])
changed['dates'] = (original, edited)
if cpm != campaign.cpm:
changed['cpm'] = (campaign.cpm, cpm)
if sr_name != campaign.sr_name:
format_sr_name = (lambda sr_name: '/r/%s' % sr_name if sr_name
else '<frontpage>')
changed['sr_name'] = map(format_sr_name, (campaign.sr_name, sr_name))
if priority != campaign.priority:
changed['priority'] = (campaign.priority.name, priority.name)
change_strs = map(lambda t: '%s: %s -> %s' % (t[0], t[1][0], t[1][1]),
changed.iteritems())
change_text = ', '.join(change_strs)
# if the bid amount changed, cancel any pending transactions
if campaign.bid != bid:
void_campaign(link, campaign, reason='changed_bid')
# update the schedule
PromotionWeights.reschedule(link, campaign._id, sr_name,
dates[0], dates[1], bid)
# update values in the db
campaign.update(dates[0], dates[1], bid, cpm, sr_name,
campaign.trans_id, priority, location, commit=True)
if campaign.priority.cpm:
# make it a freebie, if applicable
author = Account._byID(link.author_id, True)
if getattr(author, "complimentary_promos", False):
free_campaign(link, campaign, c.user)
# record the changes
if change_text:
PromotionLog.add(link, 'edited %s: %s' % (campaign, change_text))
hooks.get_hook('promote.edit_campaign').call(link=link, campaign=campaign)
示例5: edit_campaign
# 需要导入模块: from r2.models import PromotionWeights [as 别名]
# 或者: from r2.models.PromotionWeights import reschedule [as 别名]
def edit_campaign(link, campaign, dates, bid, cpm, target, priority, location):
changed = {}
if bid != campaign.bid:
# if the bid amount changed, cancel any pending transactions
void_campaign(link, campaign, reason="changed_bid")
changed["bid"] = ("$%0.2f" % campaign.bid, "$%0.2f" % bid)
hooks.get_hook("promote.edit_bid").call(link=link, campaign=campaign, previous=campaign.bid, current=bid)
campaign.bid = bid
if dates[0] != campaign.start_date or dates[1] != campaign.end_date:
original = "%s to %s" % (campaign.start_date, campaign.end_date)
edited = "%s to %s" % (dates[0], dates[1])
changed["dates"] = (original, edited)
campaign.start_date = dates[0]
campaign.end_date = dates[1]
if cpm != campaign.cpm:
changed["cpm"] = (campaign.cpm, cpm)
campaign.cpm = cpm
if target != campaign.target:
changed["target"] = (campaign.target, target)
campaign.target = target
if priority != campaign.priority:
changed["priority"] = (campaign.priority.name, priority.name)
campaign.priority = priority
if location != campaign.location:
changed["location"] = (campaign.location, location)
campaign.location = location
change_strs = map(lambda t: "%s: %s -> %s" % (t[0], t[1][0], t[1][1]), changed.iteritems())
change_text = ", ".join(change_strs)
campaign._commit()
# update the index
PromotionWeights.reschedule(link, campaign)
if campaign.priority.cpm:
# make it a freebie, if applicable
author = Account._byID(link.author_id, True)
if getattr(author, "complimentary_promos", False):
free_campaign(link, campaign, c.user)
# record the changes
if change_text:
PromotionLog.add(link, "edited %s: %s" % (campaign, change_text))
hooks.get_hook("promote.edit_campaign").call(link=link, campaign=campaign)
示例6: edit_campaign
# 需要导入模块: from r2.models import PromotionWeights [as 别名]
# 或者: from r2.models.PromotionWeights import reschedule [as 别名]
def edit_campaign(link, campaign, dates, target, frequency_cap,
priority, location,
total_budget_pennies, cost_basis, bid_pennies,
platform='desktop', mobile_os=None, ios_devices=None,
ios_version_range=None, android_devices=None,
android_version_range=None):
changed = {}
if dates[0] != campaign.start_date or dates[1] != campaign.end_date:
original = '%s to %s' % (campaign.start_date, campaign.end_date)
edited = '%s to %s' % (dates[0], dates[1])
changed['dates'] = (original, edited)
campaign.start_date = dates[0]
campaign.end_date = dates[1]
if target != campaign.target:
changed['target'] = (campaign.target, target)
campaign.target = target
if frequency_cap != campaign.frequency_cap:
changed['frequency_cap'] = (campaign.frequency_cap, frequency_cap)
campaign.frequency_cap = frequency_cap
if priority != campaign.priority:
changed['priority'] = (campaign.priority.name, priority.name)
campaign.priority = priority
if location != campaign.location:
changed['location'] = (campaign.location, location)
campaign.location = location
if platform != campaign.platform:
changed["platform"] = (campaign.platform, platform)
campaign.platform = platform
if mobile_os != campaign.mobile_os:
changed["mobile_os"] = (campaign.mobile_os, mobile_os)
campaign.mobile_os = mobile_os
if ios_devices != campaign.ios_devices:
changed['ios_devices'] = (campaign.ios_devices, ios_devices)
campaign.ios_devices = ios_devices
if android_devices != campaign.android_devices:
changed['android_devices'] = (campaign.android_devices, android_devices)
campaign.android_devices = android_devices
if ios_version_range != campaign.ios_version_range:
changed['ios_version_range'] = (campaign.ios_version_range,
ios_version_range)
campaign.ios_version_range = ios_version_range
if android_version_range != campaign.android_version_range:
changed['android_version_range'] = (campaign.android_version_range,
android_version_range)
campaign.android_version_range = android_version_range
if total_budget_pennies != campaign.total_budget_pennies:
void_campaign(link, campaign, reason='changed_budget')
campaign.total_budget_pennies = total_budget_pennies
if cost_basis != campaign.cost_basis:
changed['cost_basis'] = (campaign.cost_basis, cost_basis)
campaign.cost_basis = cost_basis
if bid_pennies != campaign.bid_pennies:
changed['bid_pennies'] = (campaign.bid_pennies,
bid_pennies)
campaign.bid_pennies = bid_pennies
change_strs = map(lambda t: '%s: %s -> %s' % (t[0], t[1][0], t[1][1]),
changed.iteritems())
change_text = ', '.join(change_strs)
campaign._commit()
# update the index
PromotionWeights.reschedule(link, campaign)
if not campaign.is_house:
# make it a freebie, if applicable
author = Account._byID(link.author_id, True)
if getattr(author, "complimentary_promos", False):
free_campaign(link, campaign, c.user)
# record the changes
if change_text:
PromotionLog.add(link, 'edited %s: %s' % (campaign, change_text))
hooks.get_hook('promote.edit_campaign').call(link=link, campaign=campaign)
示例7: edit_campaign
# 需要导入模块: from r2.models import PromotionWeights [as 别名]
# 或者: from r2.models.PromotionWeights import reschedule [as 别名]
def edit_campaign(
link,
campaign,
dates,
bid,
cpm,
target,
frequency_cap,
frequency_cap_duration,
priority,
location,
platform="desktop",
mobile_os=None,
ios_devices=None,
ios_version_range=None,
android_devices=None,
android_version_range=None,
):
changed = {}
if bid != campaign.bid:
# if the bid amount changed, cancel any pending transactions
void_campaign(link, campaign, reason="changed_bid")
changed["bid"] = ("$%0.2f" % campaign.bid, "$%0.2f" % bid)
hooks.get_hook("promote.edit_bid").call(link=link, campaign=campaign, previous=campaign.bid, current=bid)
campaign.bid = bid
if dates[0] != campaign.start_date or dates[1] != campaign.end_date:
original = "%s to %s" % (campaign.start_date, campaign.end_date)
edited = "%s to %s" % (dates[0], dates[1])
changed["dates"] = (original, edited)
campaign.start_date = dates[0]
campaign.end_date = dates[1]
if cpm != campaign.cpm:
changed["cpm"] = (campaign.cpm, cpm)
campaign.cpm = cpm
if target != campaign.target:
changed["target"] = (campaign.target, target)
campaign.target = target
if frequency_cap != campaign.frequency_cap:
changed["frequency_cap"] = (campaign.frequency_cap, frequency_cap)
campaign.frequency_cap = frequency_cap
if frequency_cap_duration != campaign.frequency_cap_duration:
changed["frequency_cap_duration"] = (campaign.frequency_cap_duration, frequency_cap_duration)
campaign.frequency_cap_duration = frequency_cap_duration
if priority != campaign.priority:
changed["priority"] = (campaign.priority.name, priority.name)
campaign.priority = priority
if location != campaign.location:
changed["location"] = (campaign.location, location)
campaign.location = location
if platform != campaign.platform:
changed["platform"] = (campaign.platform, platform)
campaign.platform = platform
if mobile_os != campaign.mobile_os:
changed["mobile_os"] = (campaign.mobile_os, mobile_os)
campaign.mobile_os = mobile_os
if ios_devices != campaign.ios_devices:
changed["ios_devices"] = (campaign.ios_devices, ios_devices)
campaign.ios_devices = ios_devices
if android_devices != campaign.android_devices:
changed["android_devices"] = (campaign.android_devices, android_devices)
campaign.android_devices = android_devices
if ios_version_range != campaign.ios_version_range:
changed["ios_version_range"] = (campaign.ios_version_range, ios_version_range)
campaign.ios_version_range = ios_version_range
if android_version_range != campaign.android_version_range:
changed["android_version_range"] = (campaign.android_version_range, android_version_range)
campaign.android_version_range = android_version_range
change_strs = map(lambda t: "%s: %s -> %s" % (t[0], t[1][0], t[1][1]), changed.iteritems())
change_text = ", ".join(change_strs)
campaign._commit()
# update the index
PromotionWeights.reschedule(link, campaign)
if campaign.priority.cpm:
# make it a freebie, if applicable
author = Account._byID(link.author_id, True)
if getattr(author, "complimentary_promos", False):
free_campaign(link, campaign, c.user)
# record the changes
if change_text:
PromotionLog.add(link, "edited %s: %s" % (campaign, change_text))
hooks.get_hook("promote.edit_campaign").call(link=link, campaign=campaign)