Esempio n. 1
0
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)
Esempio n. 2
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
Esempio n. 3
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
Esempio n. 4
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:
         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
Esempio n. 5
0
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)