'Build the Spotlight.
The frontpage gets a Spotlight box that contains promoted and organic
links from the user\'s subscribed subreddits and promoted links targeted
to the frontpage. If the user has disabled ads promoted links will not
be shown. Promoted links are requested from the adserver client-side.'

def make_spotlight(self):

    organic_fullnames = organic.organic_links(c.user)
    promoted_links = []
    show_promo = False
    keywords = []
    can_show_promo = ((not c.user.pref_hide_ads) or ((not c.user.gold) and c.site.allow_ads))
    try_show_promo = ((c.user_is_loggedin and (random.random() > 0.5)) or (not c.user_is_loggedin))
    if (can_show_promo and try_show_promo):
        keywords = promote.keywords_from_context(c.user, c.site)
        if keywords:
            show_promo = True
    def organic_keep_fn(item):
        base_keep_fn = super(ListingWithPromos, self).keep_fn()
        would_keep = base_keep_fn(item)
        return (would_keep and item.fresh)
    random.shuffle(organic_fullnames)
    organic_fullnames = organic_fullnames[:10]
    b = IDBuilder(organic_fullnames, wrap=self.builder_wrapper, keep_fn=organic_keep_fn, skip=True)
    organic_links = b.get_items()[0]
    has_subscribed = c.user.has_subscribed
    interestbar_prob = g.live_config[('spotlight_interest_sub_p' if has_subscribed else 'spotlight_interest_nosub_p')]
    interestbar = InterestBar(has_subscribed)
    s = SpotlightListing(organic_links=organic_links, interestbar=interestbar, interestbar_prob=interestbar_prob, show_promo=show_promo, keywords=keywords, max_num=self.listing_obj.max_num, max_score=self.listing_obj.max_score).listing()
    return s
