def activity_notify(self): """Notify everyone who the author has shared with""" feeds = [ feed_manager.get_notification_feed(u.id) for u in self.shared_with_users.all() ] return feeds
def _load_feed(self, request): """ Format: user:current:notification <model>:<id>:<feed_name> :param request: :return: """ raw_feed = request.query_params.get('feed', None) if raw_feed is None: return None elements = raw_feed.split(':') if len(elements) != 3: return None # # Real shoddy logic here. # Current user notification feed. if elements[0] == 'user' and elements[1] == 'current' and \ elements[2] == 'notification': return feed_manager.get_notification_feed(request.user.id) # Group feed if elements[0] == 'group' and elements[1] and elements[2] == 'timeline': return feed_manager.get_group_feed(elements[1]) return None
def activity_notify(self): # Here we add the follow activity to the notification feed of the bet_group's owner # to notify him about his new subscriber. # Then you can define an aggregation statement for the notification feed and you are done. return [ feed_manager.get_notification_feed(self.follow_object.owner.id) ]
def notification_feed(request): enricher = Enrich(request.user) context = {} feed = feed_manager.get_notification_feed(request.user.id) activities = feed.get(limit=25, mark_seen='all')['results'] context['activities'] = enricher.enrich_aggregated_activities(activities) response = render(request, 'core/notification_feed.html', context) return response
def activity_notify(self): # get liked object # content_type, object_id following_instance = self.target if following_instance: # Notify to following user target_feed = feed_manager.get_notification_feed(following_instance.id) return [target_feed]
def notification_feed(request): enricher = Enrich(request.user) context = RequestContext(request) feed = feed_manager.get_notification_feed(request.user.id) activities = feed.get(limit=25, mark_seen='all')['results'] context['activities'] = enricher.enrich_aggregated_activities(activities) response = render_to_response('core/notification_feed.html', context) return response
def notification_feed(request): enricher = Enrich(request.user) context = RequestContext(request) feed = feed_manager.get_notification_feed(request.user.id) activities = feed.get(limit=25, mark_seen="all")["results"] context["activities"] = enricher.enrich_aggregated_activities(activities) response = render_to_response("core/notification_feed.html", context) return response
def stream_token(request): if request.user.is_authenticated: stream_token = feed_manager.get_notification_feed( request.user.id).get_readonly_token() else: stream_token = None return {'stream_token': stream_token}
def notifications(request): user = request.user notification_feed = feed_manager.get_notification_feed(user.id) notification_stats = notification_feed.get(limit=10, mark_seen=True) enricher = Enrich() notifications = enricher.enrich_aggregated_activities( notification_stats['results']) return render(request, 'activity/aggregated/report.html', {'notifications': notifications})
def activity_notify(self): target_feed = [] # 해당 hashtag(#) 키워드의 피드(e.g. hashtag:패션)에 activity 추가 for keyword in self.parse_hashtags(): target_feed.append(feed_manager.get_feed('hashtag', keyword)) for user in self.parse_mentions(): # mention(@)한 유저의 타임라인 피드에 activity 추가 # get_news_feeds는 기본으로 인자로 받은 user의 1) timeline, 2) timeline_aggregated # 피드를 가져옴 target_feed.append( feed_manager.get_news_feeds(user.id)['timeline']) # mention(@)한 유저의 notification 피드에 activity 추가 target_feed.append(feed_manager.get_notification_feed(user.id)) return target_feed
def activity_notify(self): SomeModel = self.content_type.model_class() object_id = self.object_id qs = SomeModel.objects.filter(id=self.object_id) if qs.exists(): target_instance = SomeModel.objects.filter( id=self.object_id).first() if target_instance: user_object = target_instance.user if user_object: user_id = user_object.id author_id = self.user.id if user_id != author_id: # notify target_feed = feed_manager.get_notification_feed( user_id) return [target_feed] return []
def post(self, request, format = None): try: if request.META.get('CONTENT_TYPE') == "application/json": if "userid" in request.data and "profileid" in request.data: enricher = Enrich(User.objects.get(pk=request.data['userid'])) context = {} notifications = feed_manager.get_notification_feed(request.data['userid']) activities = notifications.get(limit=25)['results'] print (activities) activities = serializers.serialize('json', activities) #context['activities'] = enricher.enrich_aggregated_activities(activities) return Response({'status':"success",'notifications':context}, status=status.HTTP_200_OK) else: return Response({'status':"missing_params"}, status=400) else: return Response(status=status.HTTP_400_BAD_REQUEST) except Exception as e: print(e) return Response({'status':"server_exception",'details':str(e)}, status=501)
def test_get_notification_feed(self): feed = feed_manager.get_notification_feed(42) self.assertEqual(feed.id, 'notification:42')
def test_get_notification_feed(self): feed = feed_manager.get_notification_feed(42) self.assertEqual(feed.feed_id, 'notification:42')
def activity_notify(self): target_feed = feed_manager.get_notification_feed(self.friend_id) return [target_feed]
def list(self, request): feed = feed_manager.get_notification_feed(self.request.user.id) activities = feed.get()['results'] enriched_activities = enricher.enrich_aggregated_activities(activities) serializer = get_activity_serializer(enriched_activities, SnippetSerializer, None, many=True, context={'request': request}) return Response(serializer.data)
def activity_notify(self): target_feed = feed_manager.get_notification_feed(self.target_id) return [target_feed]
def activity_notify(self): return [feed_manager.get_notification_feed(self.owner_id)]
def get(self, request, page=0, format=None): page = self.kwargs['page'] if not page: page_num = 0 else: page_num = int(page) * 12 feeds = feed_manager.get_notification_feed(request.user.id) notifications = feeds.get(limit=12, offset=page_num, mark_seen='all')['results'] enriched_activities = enricher.enrich_aggregated_activities( notifications) feed = [] for activity in enriched_activities: activity_type = activity.get('verb') activity_actor_count = activity.get('actor_count') activity_time = activity.get('updated_at') activity_activities = activity.get('activities') feed_object = None if activity_type == 'comment': user_list = [] target_content_type = None target_content_id = None for small_activity in activity_activities[:2]: actor_instance = small_activity.get('actor') target_address = small_activity.get('target_address') if not target_content_id and target_address: target_content_type, target_content_id = target_address.split( ':') if actor_instance: user_data = UserRowSerializer(actor_instance, context={ 'request': request }).data user_list.append(user_data) feed_object = { 'users': user_list, 'updated_at': activity_time, 'target_type': target_content_type, 'target_id': target_content_id, 'actor_count': activity_actor_count, 'activity_type': activity_type } feed.append(feed_object) elif activity_type == 'like': user_list = [] target_content_type = None target_content_id = None for small_activity in activity_activities[:2]: actor_instance = small_activity.get('actor') target_address = small_activity.get('target_address') if not target_content_id and target_address: target_content_type, target_content_id = target_address.split( ':') if actor_instance: user_data = UserRowSerializer(actor_instance, context={ 'request': request }).data user_list.append(user_data) feed_object = { 'users': user_list, 'updated_at': activity_time, 'target_type': target_content_type, 'target_id': target_content_id, 'actor_count': activity_actor_count, 'activity_type': activity_type } feed.append(feed_object) elif activity_type == 'follow': user_list = [] target_content_type = None target_content_id = None for small_activity in activity_activities[:2]: actor_instance = small_activity.get( 'actor') #serialize it! target_address = small_activity.get('target_address') target_address = small_activity.get('target_address') if not target_content_id and target_address: target_content_type, target_content_id = target_address.split( ':') if actor_instance: user_data = UserRowSerializer(actor_instance, context={ 'request': request }).data user_list.append(user_data) feed_object = { 'users': user_list, 'updated_at': activity_time, 'actor_count': activity_actor_count, 'activity_type': activity_type } feed.append(feed_object) else: # possible exception pass json_output = feed return Response(json_output, status=status.HTTP_200_OK)
def activity_notify(self): from stream_django.feed_manager import feed_manager return [feed_manager.get_notification_feed('thierry')]
def activity_notify(self): # Here we add the follow activity to the notification feed of the target user # to notify him about his new follower. # Then you can define an aggregation statement for the notification feed and you are done. return [feed_manager.get_notification_feed(self.target_user.id)]
def activity_notify(self): from stream_django.feed_manager import feed_manager return [feed_manager.get_notification_feed("thierry")]
def activity_notify(self): # access the followup attr of comment_xtd and notify if True obj = self.get_object() if isinstance(obj, games.models.TotalBet): return [feed_manager.get_notification_feed(obj.user.id)]