Exemple #1
0
def order_by_time_plus_log_stickers_and_replies():
    comments = list(
        Comment.public
            .filter(timestamp__gte=time.time() - 24*60*60)
            .filter(category__in=Category.get_whitelisted())
            .exclude(reply_content=None)
    )
    return sorted(comments, key=lambda comment: _log_key(comment, s=1, r=1))
Exemple #2
0
def _get_from_redis(viewer, nav):
    manager = Comment.browse_objects

    if nav.sort == 'pinned':
        if not viewer.is_authenticated():
            raise PermissionDenied()
        rlbb = viewer.redis.pinned_bump_buffer
    else:
        # The 'curated' visibility is used to curate the sections of everything.
        if nav.category == Category.ALL:
            manager = Comment.curated_browse_objects

        if nav.category == Category.MY:
            if not viewer.is_authenticated():
                raise PermissionDenied()
            following = Category.objects.filter(followers__user=viewer)
            rlbb = _get_aggregate_rlbb(following, nav)
        elif not viewer.is_authenticated() and nav.category == Category.ALL:
            # Implicitly whitelisted groups
            rlbb = _get_aggregate_rlbb(Category.objects.in_bulk_list(Category.get_whitelisted()), nav)
        else:
            rlbb = _get_buffer(nav.category, nav)

    if nav.sort != 'hot':
        ids = rlbb[nav.slice]
    elif nav.hot_sort_type:
        ids = frontpage_algorithms.get_slice(nav.hot_sort_type, nav.slice)
    else:
        ids = _get_hot_slice_by_threads(rlbb, nav.slice)

    qs = manager
    if nav.sort not in ['active']:
        qs = qs.exclude(reply_content=None)

    # Remove user-hidden comments.
    ids = remove_hidden_comment_ids(viewer, ids)

    return qs.in_bulk_list(ids)
Exemple #3
0
 def test_whitelisted_categories(self):
     group = create_group(name=Config['featured_groups'][0])
     group2 = create_group(name='foobar')
     self.assertTrue(group.id in Category.get_whitelisted())
     self.assertFalse(group2.id in Category.get_whitelisted())
Exemple #4
0
 def test_whitelisted_categories(self):
     group = create_group(name=Config['featured_groups'][0])
     group2 = create_group(name='foobar')
     self.assertTrue(group.id in Category.get_whitelisted())
     self.assertFalse(group2.id in Category.get_whitelisted())