def load_microblogging_from_user(request, name): """ Use this function to get the posts for the given user. """ named_user = assert_active_user(name) query = get_microblogging_from_user_query(named_user) return microblogging_response(query, request.GET)
def load_microblogging_mentions(request, name): """ Use this function to get the timeline of mentions of the given user. """ named_user = assert_active_user(name) query = get_mentions_query(named_user) return microblogging_response(query, request.GET)
def load_timeline(request, name, select_id, microblogging_load_type): """ Use this function to get the timeline for the given user. Referenced posts will show up in the timeline as the originals do. Hiding of the original posts for a tidy timeline should be done in the frontend due to performance resons. """ named_user = assert_active_user(name) if named_user == request.user: followed = Q(author__profile__followers=request.user) else: followed = Q(author=named_user) own = Q(author=named_user) if not select_id: # Get latest posts feed = Post.objects.filter(followed | own).\ order_by('-time').prefetch_related('author', 'is_reference_to')[:20] return json_response({ 'loadMicrobloggingResponse': convert_response_list(feed)}) else: if microblogging_load_type == "newer": startpoint = Q(id__gt=select_id) else: # older startpoint = Q(id__lt=select_id) feed = Post.objects.filter(followed | own) feed = feed.filter(startpoint).order_by('time') feed = feed.prefetch_related('author', 'is_reference_to')[:20] return json_response({ 'loadMicrobloggingResponse': convert_response_list(reversed(feed))})
def load_microblogging_for_authored_nodes(request, name): """ Use this function to get a collection of blogposts regarding nodes which are followed by the user. """ named_user = assert_active_user(name) query = get_microblogging_for_authored_nodes_query(named_user) return microblogging_response(query, request.GET)
def get_object(self, request, rsstype , rsskey , name): self.rsstype = rsstype if rsskey_is_valid(rsskey, name): self.link = FINDECO_BASE_URL + "/feeds/rss/timeline/" + name + "/rsskey/" self.feed_url = self.link self.feed_guid = hashlib.md5(self.link) options = {} user = assert_active_user(name) if rsstype == "timeline": self.title = "Findeco - Timeline" self.description = "Deine Findeco Timeline" return get_posts(get_timeline_query(user), options) if rsstype == "mention": self.title = "Findeco - Mentions" self.description = "Posts in denen @%s erwähnt wird." % name return get_posts(get_mentions_query(user), options) if rsstype == "news": self.title = "Findeco - News" self.description = "Deine Findeco News" return get_posts(Q(), options) if rsstype == "newsAuthor": self.title = "Findeco - Autor News" self.description = "Posts von @%s." % name return get_posts(get_microblogging_from_user_query(user), options) if rsstype == "newsFollow": self.title = "Findeco - Folge News" self.description = "News zu Vorschlägen denen @%s folgt." % name return get_posts( get_microblogging_for_followed_nodes_query(user), options) else: err = Post() err.title = "Non Matching Path" err.author.username = "******" return [err]
def get_object(self, request, rsstype, rsskey, name): self.rsstype = rsstype if rsskey_is_valid(rsskey, name): self.link = FINDECO_BASE_URL + "/feeds/rss/timeline/" + name + "/rsskey/" self.feed_url = self.link self.feed_guid = hashlib.md5(self.link) options = {} user = assert_active_user(name) if rsstype == "timeline": self.title = "Findeco - Timeline" self.description = "Deine Findeco Timeline" return get_posts(get_timeline_query(user), options) if rsstype == "mention": self.title = "Findeco - Mentions" self.description = "Posts in denen @%s erwähnt wird." % name return get_posts(get_mentions_query(user), options) if rsstype == "news": self.title = "Findeco - News" self.description = "Deine Findeco News" return get_posts(Q(), options) if rsstype == "newsAuthor": self.title = "Findeco - Autor News" self.description = "Posts von @%s." % name return get_posts(get_microblogging_from_user_query(user), options) if rsstype == "newsFollow": self.title = "Findeco - Folge News" self.description = "News zu Vorschlägen denen @%s folgt." % name return get_posts( get_microblogging_for_followed_nodes_query(user), options) else: err = Post() err.title = "Non Matching Path" err.author.username = "******" return [err]