示例#1
0
 def activity_notify(self):
     targets = [feed_manager.get_news_feeds(self.user_id)['flat']]
     for hashtag in self.parse_hashtags():
         targets.append(feed_manager.get_feed('user', 'hash_%s' % hashtag))
     for user in self.parse_mentions():
         targets.append(feed_manager.get_news_feeds(user.id)['flat'])
     return targets
示例#2
0
 def activity_notify(self):
     targets = [feed_manager.get_news_feeds(self.user_id)['flat']]
     for hashtag in self.parse_hashtags():
         targets.append(feed_manager.get_feed('user', 'hash_%s' % hashtag))
     for user in self.parse_mentions():
         targets.append(feed_manager.get_news_feeds(user.id)['flat'])
     return targets
示例#3
0
 def activity_notify(self):
     targets = [feed_manager.get_news_feeds(self.user_id)["flat"]]
     for hashtag in self.parse_hashtags():
         targets.append(feed_manager.get_feed("user", "hash_%s" % hashtag))
     for user in self.parse_mentions():
         targets.append(feed_manager.get_news_feeds(user.id)["flat"])
     return targets
示例#4
0
	def get_queryset(self):
		feeds = feed_manager.get_news_feeds(self.request.user.id)
		activities = feeds.get('flat').get()['results']
		id_list = [a['object'].split(':')[1] for a in activities]
		id_list = [int(id) for id in id_list]
		queryset = Catch.objects.filter(id__in=id_list)
		return queryset
示例#5
0
 def activivty_notify(self):
     targets = []
     for user in self.parse_mentions():
         targets.append(feed_manager.get_news_feeds(user.id)['flat'])
     for hashtag in self.parse_hashtags():
         targets.append(feed_manager.get_feed('hashtag', hashtag))
     return targets
示例#6
0
 def test_get_news_feeds(self):
     feeds = feed_manager.get_news_feeds(42)
     self.assertIn('timeline', feeds)
     self.assertIn('timeline_aggregated', feeds)
     self.assertEqual(feeds['timeline'].id, 'timeline:42')
     self.assertEqual(feeds['timeline_aggregated'].id,
                      'timeline_aggregated:42')
示例#7
0
 def test_get_news_feeds(self):
     feeds = feed_manager.get_news_feeds(42)
     self.assertIn("timeline", feeds)
     self.assertIn("timeline_aggregated", feeds)
     self.assertEqual(feeds["timeline"].id, "timeline:42")
     self.assertEqual(feeds["timeline_aggregated"].id,
                      "timeline_aggregated:42")
示例#8
0
def timeline(request):
	feed = feed_manager.get_news_feeds(reqeust.user.id)['flat']
	activities = feed.get(limit=25)['results']
	enricher.enrich_activities(activities)
	context = {
		'activities': activities
	}
	return render(request, 'timeline.html', context)
示例#9
0
 def activity_notify(self):
     targets = [feed_manager.get_news_feeds(self.author_id)['timeline']]
     # TODO: maybe add this
     # for hashtag in self.parse_hashtags():
     # targets.append(feed_manager.get_feed('user', 'hash_%s' % hashtag))
     # for user in self.parse_mentions():
     # targets.append(feed_manager.get_news_feeds(user.id)['timeline'])
     return targets
示例#10
0
def timeline(request, username):
    """Returns the timeline from getstream"""
    print "USERNAME FOR TIMELINE FEED: %s" % username
    user_obj = user_model.objects.get(username=username)
    timeline_feed = feed_manager.get_news_feeds(user_obj.id)['timeline']
    activities = timeline_feed.get(limit=25)['results']
    enriched_activities = enricher.enrich_activities(activities)
    serialized_activities = serialize_activities(enriched_activities, request)
    return Response(serialized_activities, status=status.HTTP_200_OK)
示例#11
0
 def get(self, request):
     feeds = feed_manager.get_news_feeds(self.request.user.id)
     activities = feeds.get('timeline').get()['results']
     enriched_activities = enricher.enrich_activities(activities)
     serializer = get_activity_serializer(enriched_activities,
                                          TweetSerializer,
                                          None,
                                          many=True)
     return Response(serializer.data)
示例#12
0
def feed(request):
    '''
    Items pinned by the people you follow
    '''
    enricher = Enrich(request.user)
    context = {}
    feed = feed_manager.get_news_feeds(request.user.id)['timeline']
    activities = feed.get(limit=25)['results']
    context['activities'] = enricher.enrich_activities(activities)
    response = render(request, 'core/feed.html', context)
    return response
示例#13
0
def aggregated_feed(request):
    '''
    Items pinned by the people you follow
    '''
    enricher = Enrich(request.user)
    context = RequestContext(request)
    feed = feed_manager.get_news_feeds(request.user.id)['aggregated']
    activities = feed.get(limit=25)['results']
    context['activities'] = enricher.enrich_aggregated_activities(activities)
    response = render_to_response('core/aggregated_feed.html', context)
    return response
示例#14
0
def aggregated_feed(request):
    """
    Items pinned by the people you follow
    """
    enricher = Enrich(request.user)
    context = RequestContext(request)
    feed = feed_manager.get_news_feeds(request.user.id)["aggregated"]
    activities = feed.get(limit=25)["results"]
    context["activities"] = enricher.enrich_aggregated_activities(activities)
    response = render_to_response("core/aggregated_feed.html", context)
    return response
示例#15
0
 def get(self, request):
     feeds = feed_manager.get_news_feeds(
         request.user.id
     )  # can change this to pull posts based on some other qualifier
     activities = feeds.get('timeline').get()['results']
     activities = enricher.enrich_activities(activities)
     activity = random.SystemRandom().choice(
         activities
     )  #SystemRandom is for cryptographically secure randomness
     context = {'activity': activity, 'login_user': request.user}
     return render(request, 'stream_twitter/singlepost.html', context)
示例#16
0
def aggregated_feed(request):
    '''
    Items pinned by the people you follow
    '''
    enricher = Enrich(request.user)
    context = {}
    feed = feed_manager.get_news_feeds(request.user.id)['timeline_aggregated']
    activities = feed.get(limit=25)['results']
    context['activities'] = enricher.enrich_aggregated_activities(activities)
    response = render(request, 'core/aggregated_feed.html', context)
    return response
示例#17
0
 def get(self, request):
     feeds = feed_manager.get_news_feeds(request.user.id)
     activities = feeds.get("flat").get()["results"]
     activities = enricher.enrich_activities(activities)
     hashtags = Hashtag.objects.order_by("-occurrences")
     context = {
         "activities": activities,
         "form": self.get_form_class(),
         "login_user": request.user,
         "hashtags": hashtags,
     }
     return render(request, "stream_twitter/timeline.html", context)
示例#18
0
 class Meta:
     exclude = set()
     model = Follow
     feeds = feed_manager.get_news_feeds(request.user.id)
     activities = feeds.get('timeline').get()['results']
     activities = enricher.enrich_activities(activities)
     context = {
         'activities': activities,
         'form': self.get_form_class(),
         'login_user': request.user
     }
     return render(request, 'mentorearth/timeline.html', context)
示例#19
0
    def get_context_data(self, form=None):
        context = super(TimelineView, self).get_context_data()

        feeds = feed_manager.get_news_feeds(self.request.user.id)
        activities = feeds.get('timeline').get()['results']
        enriched_activities = enricher.enrich_activities(activities)

        context['activities'] = enriched_activities
        context['login_user'] = self.request.user
        context['hashtags'] = Hashtag.objects.order_by('-occurrences')

        return context
示例#20
0
 def get(self, request):
     feeds = feed_manager.get_news_feeds(request.user.id)
     activities = feeds.get('flat').get()['results']
     activities = enricher.enrich_activities(activities)
     hashtags = Hashtag.objects.order_by('-occurrences')
     context = {
         'activities': activities,
         'form': self.get_form_class(),
         'login_user': request.user,
         'hashtags': hashtags
     }
     return render(request, 'stream_twitter/timeline.html', context)
示例#21
0
 def get(self, request):
     feeds = feed_manager.get_news_feeds(request.user.id)
     activities = feeds.get('timeline').get()['results']
     activities = enricher.enrich_activities(activities)
     hashtags = Hashtag.objects.order_by('-occurrences')
     context = {
         'activities': activities,
         'form': self.get_form_class(),
         'login_user': request.user,
         'hashtags': hashtags
     }
     return render(request, 'stream_twitter/timeline.html', context)
示例#22
0
def user(request, user_name):
    user = get_object_or_404(User, username=user_name)
    print(user)
    print(user.id)
    if user.groups.filter(name="offender").exists():
        feeds = feed_manager.get_news_feeds(user.id)
        activities = feeds.get("flat").get()["results"]
    else:
        user = get_object_or_404(User, username=user_name)
        feeds = feed_manager.get_user_feed(user.id)
        activities = feeds.get()["results"]
    activities = enricher.enrich_activities(activities)
    context = {"activities": activities, "user": user, "login_user": request.user}
    return render(request, "stream_twitter/user.html", context)
示例#23
0
    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
示例#24
0
 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 = {}
                 feed = feed_manager.get_news_feeds(request.data['profileid'])['timeline_aggregated']
                 activities = feed.get(limit=25)['results']
                 context['activities'] = enricher.enrich_aggregated_activities(activities)
                 return Response({'status':"success",'feed':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)
示例#25
0
def user(request, user_name):
    user = get_object_or_404(User, username=user_name)
    print(user)
    print(user.id)
    if user.groups.filter(name='offender').exists():
      feeds = feed_manager.get_news_feeds(user.id)
      activities = feeds.get('flat').get()['results']
    else:
      user = get_object_or_404(User, username=user_name)
      feeds = feed_manager.get_user_feed(user.id)
      activities = feeds.get()['results']
    activities = enricher.enrich_activities(activities)
    context = {
        'activities': activities,
        'user': user,
        'login_user': request.user
    }
    return render(request, 'stream_twitter/user.html', context)
示例#26
0
 def get(self, request, page=0, format=None):
     page = self.kwargs['page']
     if not page:
         page_num = 0
     else:
         page_num = int(page) * 24
     feeds = feed_manager.get_news_feeds(request.user.id)
     activities = feeds.get('timeline').get(limit=24,
                                            offset=page_num)['results']
     activities = enricher.enrich_activities(activities)
     feed = []
     for activity in activities:
         outfit_instance = activity.__dict__.get('activity_data').get(
             'object')
         if outfit_instance:
             data = OutfitDetailFeedSerializer(outfit_instance,
                                               context={
                                                   'request': request
                                               }).data
             feed.append(data)
     json_output = feed
     return Response(json_output, status=status.HTTP_200_OK)
示例#27
0
 def test_get_news_feeds(self):
     feeds = feed_manager.get_news_feeds(42)
     self.assertIn('timeline', feeds)
     self.assertIn('timeline_aggregated', feeds)
     self.assertEqual(feeds['timeline'].id, 'timeline:42')
     self.assertEqual(feeds['timeline_aggregated'].id, 'timeline_aggregated:42')
 def test_get_news_feeds(self):
     feeds = feed_manager.get_news_feeds(42)
     self.assertIn('flat', feeds)
     self.assertIn('aggregated', feeds)
     self.assertEqual(feeds['flat'].feed_id, 'flat:42')
     self.assertEqual(feeds['aggregated'].feed_id, 'aggregated:42')
示例#29
0
 def test_get_news_feeds(self):
     feeds = feed_manager.get_news_feeds(42)
     self.assertIn('flat', feeds)
     self.assertIn('aggregated', feeds)
     self.assertEqual(feeds['flat'].id, 'flat:42')
     self.assertEqual(feeds['aggregated'].id, 'aggregated:42')