Ejemplo n.º 1
0
def get_feed_posts():

    # gets all of the follow instance where the user matches the followed_by field
    users_followers = Follow.select().where(
        Follow.followed_by == current_user.id)

    # iterate over all of the users that follow the current user and get all
    # of their posts
    users_feed = []
    for user in users_followers:
        posts = Post.select().where(Post.user == user.followed,
                                    Post.soft_delete == False)

        # converts each post to a dictionary, removes the password and adds it to
        # users_feed list
        for post in posts:
            post_dict = model_to_dict(post, backrefs=True, recurse=True)
            del post_dict['user']['password']
            users_feed.append(post_dict)

    # sorts all of the post in the users feed by most recent
    users_feed_sorted = sorted(users_feed,
                               key=itemgetter('timestamp'),
                               reverse=True)

    return jsonify(data=users_feed_sorted,
                   status={
                       'code': 200,
                       'message': 'Successfully got the users feed'
                   })
Ejemplo n.º 2
0
 def is_requesting(self, user):
     from models.follow import Follow
     result = Follow.select().where(Follow.follower_id == self.id, Follow.followed_id == user.id, Follow.approved== False)
     if len(result) > 0:
         return True
     else:
         return False
Ejemplo n.º 3
0
def index():
#     # if 'user_id' in session:
#         # return redirect(url_for('index'))
    if current_user.is_authenticated:
        user_followings = Follow.select().where(Follow.follower_user_id == current_user.id, Follow.approved_status == True)
        followings_id = list(follow.followed_user_id for follow in user_followings)
        user_followings_images = Image.select().where(Image.user_id << followings_id).order_by(Image.created_at.desc())
        # breakpoint()
        return render_template('users/home.html', user_followings_images=user_followings_images)
    else:
        return render_template('users/home.html')
Ejemplo n.º 4
0
    def followers(self):
        from models.follow import Follow
        # followers = (
        #     User.select()
        #     .join(Follow, on=(User.id == Follow.follower_id))
        #     .where(
        #         Follow.following == self.id,
        #         Follow.is_approved==True
        # ))
        followers = Follow.select().where(Follow.following == self.id,
                                          Follow.is_approved == True)

        followers_list = []
        for follower in followers:
            followers_list.append(follower)
        return followers_list
Ejemplo n.º 5
0
def following_list(username):
    user = User.get_or_none(username=username)
    arr = []
    followings = Follow.select().where(Follow.follower_id == user.id)

    if current_user.is_authenticated:
        for following in followings:
            following_details = User.get_or_none(id=following.followed_id)
            if Follow.get_or_none(Follow.follower == current_user.id,
                                  Follow.followed == following_details.id):
                arr.append({"profile": following_details, "status": True})

            else:
                arr.append({"profile": following_details, "status": False})
    else:
        return render_template('users/login_status.html')

    return render_template('users/following.html', followings=arr)
Ejemplo n.º 6
0
def get_all_followers():

    # gets all of the users followers
    followers = Follow.select().where(Follow.followed == current_user.id)

    # iterate over all of the users followers to
    # convert each follower instance to a dictionary
    # and remove the users passwords
    followers_list = []
    for follower in followers:
        follow_dict = model_to_dict(follower, backrefs=True, recurse=True)
        Follow.remove_passwords(follow_dict)
        followers_list.append(follow_dict)

    return jsonify(data=followers_list,
                   status={
                       'code': 200,
                       'message': 'Successfully got all the followers'
                   })
Ejemplo n.º 7
0
def get_all_following():

    # gets all the users the current user is followng
    following = Follow.select().where(Follow.followed_by == current_user.id)

    # iterate all of the users following the current user, convert
    # each following instance to a dictionary and remove the users
    # password
    following_list = []
    for follow in following:
        following_dict = model_to_dict(follow.followed)
        del following_dict['password']
        following_list.append(following_dict)

    return jsonify(
        data=following_list,
        status={
            'code':
            200,
            'message':
            'Successfully got all of the users the current user is following'
        })
Ejemplo n.º 8
0
def follower_list(username):
    user = User.get_or_none(username=username)
    arr = []
    followers = Follow.select().where(Follow.followed_id == user.id)

    # if current_user.is_authenticated:
    #     for follower in followers:
    #         follower_details = User.get_or_none(id = follower.follower_id)

    #         if Follow.get_or_none(Follow.follower == current_user.id, Follow.followed == follower_details.id):
    #             arr.append({
    #                 "profile": follower_details,
    #                 "status": True
    #             })

    #         else:
    #             arr.append({
    #                 "profile": follower_details,
    #                 "status": False
    #             })
    # else:
    #     return render_template('users/login_status.html')

    # return render_template('users/follower.html', followers = arr)

    followers = user.followers()
    if current_user.is_authenticated:
        for follower in followers:
            if Follow.get_or_none(Follow.follower == current_user.id,
                                  Follow.followed == follower.id):
                arr.append({"profile": follower, "status": True})

            else:
                arr.append({"profile": follower, "status": False})
    else:
        return render_template('users/login_status.html')

    return render_template('users/follower.html', followers=arr)
Ejemplo n.º 9
0
def show(username):
    user = User.get(name=username)
    if user.description == "None":
        user.description = "No Info"

    image_all = Image.select().where(Image.user_id == user.id)

    requested = Requested.select().join(
        User,
        on=(User.id == Requested.fan_id)).where(Requested.idol_id == user.id)

    followers = Follow.select().join(
        User, on=(User.id == Follow.fan_id)).where(Follow.idol_id == user.id)

    if not current_user.is_authenticated:
        return render_template("users/profile.html",
                               user=user,
                               image_all=image_all,
                               requested=requested,
                               followers=followers)

    if user.name != current_user.name:
        is_requested = Requested.get_or_none(fan_id=current_user.id,
                                             idol_id=user.id)
        is_follower = Follow.get_or_none(fan_id=current_user.id,
                                         idol_id=user.id)
        return render_template("users/profile.html",
                               user=user,
                               image_all=image_all,
                               is_requested=is_requested,
                               is_follower=is_follower,
                               followers=followers)
    else:
        return render_template("users/profile.html",
                               user=user,
                               image_all=image_all,
                               requested=requested,
                               followers=followers)
Ejemplo n.º 10
0
 def follower_requests(self):
     from models.follow import Follow
     followers = Follow.select(Follow.follower).where(
         Follow.following == self.id, Follow.is_approved == False)
     return User.select().where(User.id.in_(followers))
Ejemplo n.º 11
0
 def get_followings(self):
     from models.follow import Follow
     followings = Follow.select(Follow.following).where(
         Follow.follower == self.id, Follow.is_approved == True)
     return User.select().where(User.id.in_(followings))
Ejemplo n.º 12
0
    def requests(self):
        from models.follow import Follow
        req = Follow.select().where((Follow.idol_id == current_user.id)
                                    & (Follow.authorized == False))

        return req