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))
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)
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())