Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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))})
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
    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]
Ejemplo n.º 6
0
    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]