def make_daily_promotions(): # charge campaigns so they can go live charge_pending(offset=0) charge_pending(offset=1) # promote links and record ids of promoted links link_ids = set() for campaign, link in get_scheduled_promos(offset=0): link_ids.add(link._id) promote_link(link, campaign) # expire finished links q = Link._query(Link.c.promote_status == PROMOTE_STATUS.promoted, data=True) q = q._filter(not_(Link.c._id.in_(link_ids))) for link in q: update_promote_status(link, PROMOTE_STATUS.finished) emailer.finished_promo(link) # update subreddits with promos all_live_promo_srnames(_update=True) _mark_promos_updated() finalize_completed_campaigns(daysago=1) hooks.get_hook('promote.make_daily_promotions').call(offset=0)
def get_links(self, sort, time): from r2.models import Link from r2.lib.db.operators import not_ q = AllSR.get_links(self, sort, time) if c.user.gold: q._filter(not_(Link.c.sr_id.in_(self.sr_ids))) return q
def get_links(self, sort, time): from r2.models import Link from r2.lib.db.operators import not_ q = AllSR.get_links(self, sort, time) if c.user.gold: excluded_ids = self.random_reddits(c.user.name, self.sr_ids, self.gold_limit) q._filter(not_(Link.c.sr_id.in_(excluded_ids))) return q