def api_browse_monsters(request, payload=None): """ accepts posted json in the following format {'offset': 0, 'count': 9} returns client sanitized comment details """ if not payload: payload = {'offset':0, 'count':9} offset = payload['offset'] count = 9 category = Category.get(name=MONSTER_GROUP) sort = 'new' nav = browse.Navigation.load_json_or_404( payload, sort=sort, category=category, mobile=request.is_mobile, replies_only=True, public_only=True, offset=payload['offset'], count=payload['count'], ) data = { 'monsters': mobile_details_from_queryset(browse.get_front_comments(request.user, nav)), } return data
def suggested_threads(): spotlighted_ids = SpotlightedThread.objects.all().values_list("comment_id", flat=True) nav = browse.Navigation(sort="hot", hot_sort_type="order_by_image_replies") ops = list(browse.get_front_comments(AnonymousUser(), nav)) ops = [op for op in ops if op.id not in spotlighted_ids] ops = ops[:300] return [ThreadPreview.get_from_comment(op) for op in ops]
def public_posts(self): nav = browse.Navigation.load_json_or_404({ 'category': self.group, 'offset': self.skip, 'public_api': True, 'sort': 'new', }) posts = browse.get_front_comments(AnonymousUser(), nav) return [BriefPublicAPICommentDetails(x.details().to_dict()).to_client() for x in posts]
def suggested_threads(): spotlighted_ids = SpotlightedThread.objects.all().values_list('comment_id', flat=True) nav = browse.Navigation(sort='hot', hot_sort_type='order_by_image_replies') ops = list(browse.get_front_comments(AnonymousUser(), nav)) ops = [op for op in ops if op.id not in spotlighted_ids] ops = ops[:300] return [ThreadPreview.get_from_comment(op) for op in ops]
def test_logged_out_best_everything_returns_enough_comments(self): with override_service('time', FakeTimeProvider): Services.time.t = time.mktime(self.TODAY.timetuple()) for category in [Category.ALL] + list(Category.objects.all()): category.merge_top_scores() cmts = get_front_comments(AnonymousUser(), Navigation(sort='best', offset=0, year=2011, category=Category.ALL)) self.assertEqual(len(cmts), self.COMMENT_COUNT)
def public_posts(self): nav = browse.Navigation.load_json_or_404({ 'category': self.group, 'offset': self.skip, 'public_api': True, 'sort': 'new', }) posts = browse.get_front_comments(AnonymousUser(), nav) return [ BriefPublicAPICommentDetails(x.details().to_dict()).to_client() for x in posts ]
def _digest_extra_context(self, notification): recipient = notification.recipient from canvas.models import Comment, Category from canvas.browse import get_front_comments, Navigation now = Services.time.today() nav = Navigation(category=Category.ALL, sort="top", offset=0, month=now.month, year=now.year) featured_comments = get_front_comments(recipient, nav)[: knobs.TWENTYFOUR_HOUR_EMAIL_COMMENT_COUNT] featured_comments = [cmt.details() for cmt in featured_comments] return {"recipient": recipient, "featured_comments": featured_comments}
def test_logged_out_best_everything_returns_enough_comments(self): with override_service('time', FakeTimeProvider): Services.time.t = time.mktime(self.TODAY.timetuple()) for category in [Category.ALL] + list(Category.objects.all()): category.merge_top_scores() cmts = get_front_comments( AnonymousUser(), Navigation(sort='best', offset=0, year=2011, category=Category.ALL)) self.assertEqual(len(cmts), self.COMMENT_COUNT)
def _digest_extra_context(self, notification): recipient = notification.recipient from canvas.models import Comment, Category from canvas.browse import get_front_comments, Navigation now = Services.time.today() nav = Navigation( category=Category.ALL, sort='top', offset=0, month=now.month, year=now.year, ) featured_comments = get_front_comments( recipient, nav)[:knobs.TWENTYFOUR_HOUR_EMAIL_COMMENT_COUNT] featured_comments = [cmt.details() for cmt in featured_comments] return { 'recipient': recipient, 'featured_comments': featured_comments, }