Ejemplo n.º 1
0
 def get(self, post_id):
     username = self.isLoggedIn()
     key = db.Key.from_path('Post', int(post_id), parent=blog_key())
     post = db.get(key)
     if username and post:
         if self.user and self.user.key().id() == post.user_id:
             self.render("error.html",
                         error="You cannot like your own post!")
         else:
             l = Like.all().filter('user_id =',
                                   self.user.key().id()).filter(
                                       'post_id =',
                                       post.key().id()).get()
             if l:
                 self.redirect('/blog/' + str(post.key().id()))
             else:
                 like = Like(parent=key,
                             user_id=self.user.key().id(),
                             post_id=post.key().id())
                 post.likes += 1
                 like.put()
                 post.put()
                 self.redirect('/blog/' + str(post.key().id()))
     else:
         self.render("error.html",
                     error="You must be logged in to 'like' a post.")
Ejemplo n.º 2
0
    def post(self, post_id):
        key = db.Key.from_path('Post', int(post_id), parent=blog_key())
        post = db.get(key)

        if not post:
            self.error(404)
            return
        c = ""
        if (self.user):
            # post-like value increases by clicking like.
            if (self.request.get('like')
                    and self.request.get('like') == "update"):
                likes = db.GqlQuery("select * from Like where post_id = " +
                                    post_id + " and user_id = " +
                                    str(self.user.key().id()))

                if self.user.key().id() == post.user_id:
                    self.redirect("/blog/" + post_id +
                                  "?error=You cannot like your  " +
                                  "own post!")
                    return
                elif likes.count() == 0:
                    like = Like(parent=blog_key(),
                                user_id=self.user.key().id(),
                                post_id=int(post_id))
                    like.put()
                    self.redirect("/blog/" + post_id +
                                  "?error=You can like your  " +
                                  "post once.!!!!")
                    return

            comment = self.request.get('comment')
            if comment:
                c = Comment(parent=blog_key(),
                            user_id=self.user.key().id(),
                            post_id=int(post_id),
                            comment=comment)
                c.put()
            else:
                self.redirect("/blog/" + post_id +
                              "?error=You need to type your  " +
                              "comment.!!!!")
                return
        else:
            self.redirect("/login?error=First login and then " +
                          "try to edit, comment or like.!!")
            return

        comments = db.GqlQuery("select * from Comment where post_id = " +
                               post_id + "order by created desc")

        likes = db.GqlQuery("select * from Like where post_id=" + post_id)

        self.render("permalink.html",
                    post=post,
                    comments=comments,
                    likeCount=likes.count(),
                    new=c)
Ejemplo n.º 3
0
    def post(self, post_id):

        key = db.Key.from_path('Post', int(post_id), parent=blog_key())
        post = db.get(key)

        if not post:
            self.error(404)
            return
        """
            On posting comment, new comment tuple is created and stored,
            with relationship data of user and post.
        """
        c = ""
        if (self.user):
            # On clicking like, post-like value increases.
            if (self.request.get('like')
                    and self.request.get('like') == "update"):
                likes = db.GqlQuery("select * from Like where post_id = " +
                                    post_id + " and user_id = " +
                                    str(self.user.key().id()))

                if self.user.key().id() == post.user_id:
                    self.redirect("/blog/" + post_id +
                                  "?error=You cannot like your " + "post.!!")
                    return
                elif likes.count() == 0:
                    l = Like(parent=blog_key(),
                             user_id=self.user.key().id(),
                             post_id=int(post_id))
                    l.put()

            # On commenting, it creates new comment tuple
            if (self.request.get('comment')):
                c = Comment(parent=blog_key(),
                            user_id=self.user.key().id(),
                            post_id=int(post_id),
                            comment=self.request.get('comment'))
                c.put()
        else:
            self.redirect("/login?error=You need to login before " +
                          "performing edit, like or commenting.!!")
            return

        comments = db.GqlQuery("select * from Comment where post_id = " +
                               post_id + "order by created desc")

        likes = db.GqlQuery("select * from Like where post_id=" + post_id)

        self.render("permalink.html",
                    post=post,
                    comments=comments,
                    noOfLikes=likes.count(),
                    new=c)
    def post(self, post_id):
        key = db.Key.from_path('Post', int(post_id), parent=blog_key())
        post = db.get(key)

        if not post:
            self.error(404)
            return

        c = ''
        if self.user:

            # On clicking like, post-like value increases.

            if self.request.get('like') and self.request.get('like') \
                == 'update':
                likes = \
                    db.GqlQuery('select * from Like where post_id = '
                                + post_id + ' and user_id = '
                                + str(self.user.key().id()))

                if self.user.key().id() == post.user_id:
                    self.redirect('/blog/' + post_id
                                  + '?error=You cannot like your '
                                  + 'post.!!')
                    return
                elif likes.count() == 0:
                    l = Like(parent=blog_key(),
                             user_id=self.user.key().id(),
                             post_id=int(post_id))
                    l.put()

            # On commenting, it creates new comment tuple

            if self.request.get('comment'):
                c = Comment(parent=blog_key(),
                            user_id=self.user.key().id(),
                            post_id=int(post_id),
                            comment=self.request.get('comment'))
                c.put()
        else:
            self.redirect('/login?error=You need to login before '
                          + 'performing edit, like or commenting.!!')
            return

        comments = db.GqlQuery('select * from Comment where post_id = '
                               + post_id + 'order by created desc')

        likes = db.GqlQuery('select * from Like where post_id='
                            + post_id)

        self.render('full-post.html', post=post, comments=comments,
                    noOfLikes=likes.count(), new=c)
Ejemplo n.º 5
0
    def post(self, post_id):
        k = db.Key.from_path('Post', int(post_id), parent=blog_key())
        post = db.get(k)

        if not post:
            self.error(404)
            return

        c = ""
        if (self.user):
            # Add a like to a post
            if (self.request.get('like')
                    and self.request.get('like') == "update"):
                likes = db.GqlQuery("select * from Like where post_id = " +
                                    post_id + " and user_id = " +
                                    str(self.user.key().id()))
                if self.user.key().id() == post.user_id:
                    self.redirect("/blog/" + post_id +
                                  "?error=You can't like your " + "own post!")
                    return
                # Else add the like
                elif likes.count() == 0:
                    l = Like(parent=blog_key(),
                             user_id=self.user.key().id(),
                             post_id=int(post_id))
                    l.put()

            # Adds comment and creates new tuple
            if (self.request.get('comment')):
                c = Comment(parent=blog_key(),
                            user_id=self.user.key().id(),
                            post_id=int(post_id),
                            comment=self.request.get('comment'))
                c.put()
        else:
            self.redirect("/login?error=You can't edit, like, or comment" +
                          " a post without signing in!")
            return

        comments = db.GqlQuery("select * from Comment where post_id = " +
                               post_id + "order by created desc")

        likes = db.GqlQuery("select * from Like where post_id=" + post_id)

        self.render("permalink.html",
                    post=post,
                    comments=comments,
                    likeCount=likes.count(),
                    new=c)
Ejemplo n.º 6
0
    def post(self, post_id):
        key = db.Key.from_path('Post', int(post_id), parent=blog_key())
        post = db.get(key)

        if not post:
            self.error(404)
            return

        c = ""
        if (self.user):
            likes = db.GqlQuery("select * from Like where post_id = " +
                                post_id + " and user_id = " +
                                str(self.user.key().id()))

            if (self.request.get('like')
                    and self.request.get('like') == "update"):

                if (self.user.key().id() == post.user_id):
                    self.redirect("/blog/" + post_id +
                                  "?error=You cannot Like your" + "post.!!")
                    return
                elif likes.count() == 0:
                    l = Like(parent=blog_key(),
                             user_id=self.user.key().id(),
                             post_id=int(post_id))
                    l.put()

            if (self.request.get('comment')):
                c = Comment(parent=blog_key(),
                            user_id=self.user.key().id(),
                            post_id=int(post_id),
                            comment=self.request.get('comment'))
                c.put()
        else:
            self.redirect("/login?error= Login before " +
                          "edit or comment or like.!!")
            return

        comments = db.GqlQuery("select * from Comment where post_id = " +
                               post_id + "order by created desc")
        self.render("postDetails.html",
                    post=post,
                    noOfLikes=likes.count(),
                    comments=comments,
                    new=c)
Ejemplo n.º 7
0
    def get(self, value=None):

        if self.read_secure_cookie('user_id'):
            if value:
                tag = value.split(',')
                if (tag[1]):
                    post = tag[0]
                    value = tag[1]
                    user = self.read_secure_cookie('user_id')
                    if int(post) and Post.by_id(post):
                        if Like.by_post_user(post, user).count() < 1:
                            like = Like(post=post, value=int(value), user=user)
                            like.put()
                        else:
                            like = Like.by_post_user(post, user).get()
                            like.value = int(value)
                            like.put()
                else:
                    self.redirect('/')
            else:
                self.redirect('/')
            self.redirect('/post/%s' % post)
        else:
            self.redirect('/')