Esempio n. 1
0
 def post(self, slug):
     user = self.current_user
     likes = Likes.select().where(Likes.post_id == slug)
     if likes:
         # Do not allow more than one like for one post
         likes = Likes.select().where(Likes.post_id == slug).get()
         if likes.user_id == user.id:
             return self.redirect("/post/{}".format(slug))
     # If you are creator of post, can not like it
     post = Posts.select().where(Posts.id == slug).get()
     if post.user_id == user.id:
         return self.redirect("/post/{}".format(slug))
     # Create like
     Likes.create(user_id=user.id, post_id=slug)
     return self.redirect("/post/{}".format(slug))
Esempio n. 2
0
def like_click(word, translation):
    value = list(Likes.select().where((Likes.word == word)
                                      & (Likes.translation == translation) & (Likes.user == session["mail"])))
    if len(value) == 0:
        Likes.insert(word=word,
                     translation=translation,
                     user=session["mail"]).execute()
    else:
        like = value[0]
        like.delete_instance()
    return redirect(f"/search?word={word}")
Esempio n. 3
0
 def get(self, slug):
     user = Users.select().where(Users.id == slug)
     if user:
         # Retrieve users post, comment, and like history
         user = Users.select().where(Users.id == slug).get()
         posts = Posts.select().where(Posts.user_id == slug)
         if posts:
             posts = (Posts.select().where(Posts.user_id == slug).order_by(
                 Posts.created.desc()))
         comments = Comments.select().where(Comments.user_id == slug)
         if comments:
             comments = (Comments.select().where(
                 Comments.user_id == slug).order_by(
                     Comments.created.desc()))
         likes = Likes.select().where(Likes.user_id == slug)
         if likes:
             likes = (Likes.select().where(Likes.user_id == slug).order_by(
                 Likes.created.desc()))
         loggedInUser = self.current_user
         numPosts = Posts.select().where(Posts.user_id == slug).count()
         numComments = Comments.select().where(
             Comments.user_id == slug).count()
         numLikes = Likes.select().where(Likes.user_id == slug).count()
         totalLikes = Likes.select(
             Likes.post_id).join(Posts).join(Users).where(
                 Posts.user_id == slug).count()
         return self.render_template(
             "author.html", {
                 'posts': posts,
                 'numPosts': numPosts,
                 'numComments': numComments,
                 'numLikes': numLikes,
                 'comments': comments,
                 'likes': likes,
                 'user': user,
                 'totalLikes': totalLikes,
                 'loggedInUser': loggedInUser
             })
     return self.redirect("/")
Esempio n. 4
0
 def get(self, slug):
     post = Posts.select().where(Posts.id == slug)
     if post:
         post = Posts.select().where(Posts.id == slug).get()
         comments = Comments.select().where(
             Comments.post_id == slug).order_by(Comments.created.desc())
         # number of likes
         likes = Likes.select().where(Likes.post_id == slug).count()
         loggedInUser = self.current_user
         return self.render_template(
             "post.html", {
                 'post': post,
                 'comments': comments,
                 'likes': likes,
                 'loggedInUser': loggedInUser
             })
     return self.redirect("/")
Esempio n. 5
0
def count_likes(word, translation):
    return Likes.select().where((Likes.word == word)
                                and (Likes.translation == translation)).count()
Esempio n. 6
0
def get_like_message(word, translation):
    value = list(Likes.select().where((Likes.word == word)
                                      & (Likes.translation == translation) & (Likes.user == session["mail"])))
    if len(value) == 0:
        return "like"
    return "dislike"