示例#1
0
def get_user_profile(authorized_username, username):
    """
            The function return user profile for a specific user.

            *Parameters*:
                - *authorized_username (string)*: The user that is logged in now.
                - *username (string)*: The user that we will test friendship on it like (following ..)

            *Returns*:
                - *UserProfile*: an object of user profile .
    """
    if username is None:
        return -1
    check_user = actions.is_user(username)
    if not check_user:
        return -1
    profile = query_factory.get_user_profile(username)

    profile["profile_image_url"] = create_url('picture',
                                              profile["profile_image_url"])
    profile["profile_banner_url"] = create_url('banner',
                                               profile["profile_banner_url"])
    profile["followers_count"] = query_factory.get_user_followers(
        username)["count"]
    profile["following_count"] = query_factory.get_user_following(
        username)["count"]
    profile["kweeks_count"] = query_factory.get_number_of_kweeks(
        username)['count']
    profile["likes_count"] = query_factory.get_number_of_likes(
        username)['count']
    friendship = actions.get_friendship(authorized_username, username)
    profile.update(friendship)
    return UserProfile(profile)
示例#2
0
def search_user(authorized_username, search_key, username):
    """
                The function returns a list of users searched by search_key.

                *Parameters*:
                    - *authorized_username (string)*: The user that is logged in now.
                    - *search_key (string)*: The keyword used to get best match users.

                *Returns*:
                    - *User_list*: a list of objects of user.
    """
    if search_key == "":
        return []
    results = query_factory.search_user(search_key)
    try:
        results = actions.paginate(dictionaries_list=results,
                                   required_size=size,
                                   start_after_key='username',
                                   start_after_value=username)
    except TypeError as E:
        print(E)
        raise
    if results is None:
        return None
    user_list = []
    for result in results:
        # print(result['username'])
        result["profile_image_url"] = create_url('picture',
                                                 result["profile_image_url"])
        friendship = actions.get_friendship(authorized_username,
                                            result['username'])
        result.update(friendship)
        user_list.append(User(result))
    return user_list
示例#3
0
def get_profile_following(username, last_retrieved_username,
                          authorized_username):
    """
                        The function returns a list of UserProfile objects of the followed users.

                        *Parameters*:
                            - *username (string)*: The user that is logged in now.
                            - *last_retrieved_username(string)*: The last user in the previous list.

                        *Returns*:
                            - *followed_list*: a list of objects of UsersProfiles.
    """

    followed = query_factory.get_following(username)
    try:
        followed = timelines_and_trends_actions.paginate(
            dictionaries_list=followed,
            required_size=size,
            start_after_key='username',
            start_after_value=last_retrieved_username)
    except TypeError as E:
        print(E)
        raise
    if followed is None:
        return None
    user_profile_list = []
    for follower in followed:
        check = query_factory.if_blocked(follower['username'],
                                         authorized_username)['count']
        if check == 0:
            follower[
                "followers_count"] = users_profile_query_factory.get_user_followers(
                    follower['username'])["count"]
            follower[
                "following_count"] = users_profile_query_factory.get_user_following(
                    follower['username'])["count"]
            follower[
                "kweeks_count"] = users_profile_query_factory.get_number_of_kweeks(
                    follower['username'])['count']
            follower[
                "likes_count"] = users_profile_query_factory.get_number_of_likes(
                    follower['username'])['count']
            friendship = timelines_and_trends_actions.get_friendship(
                authorized_username, follower['username'])
            follower.update(friendship)
            user_profile_list.append(UserProfile(follower))
    return user_profile_list
示例#4
0
def get_blocked_users(authorized_username):
    """
                        The function gets a list of blocked user.

                        *Parameters*:
                            - *authorized_username (string)*: The user that is logged in now.

                        *Returns*:
                            - *response*: a list of user objects of blocked users.
    """
    blocked = query_factory.get_blocked_list(authorized_username)
    user_list = []
    for blocked_user in blocked:
        friendship = timelines_and_trends_actions.get_friendship(
            authorized_username, blocked_user['username'])
        blocked_user.update(friendship)
        user_list.append(User(blocked_user))
    return user_list
示例#5
0
def search_user(authorized_username, search_key, username, results_size=size):
    """
                The function returns a list of users searched by search_key.

                *Parameters*:
                    - *authorized_username (string)*: The user that is logged in now.
                    - *search_key (string)*: The keyword used to get best match users.
                    - *username (string)*: The last username retrieve. Results after this one are fetched.

                *Returns*:
                    - *User_list*: a list of objects of user_profile.
    """
    if search_key == "":
        return []
    results = query_factory.search_user(search_key)
    try:
        results = actions.paginate(dictionaries_list=results,
                                   required_size=results_size,
                                   start_after_key='username',
                                   start_after_value=username)
    except TypeError as E:
        print(E)
        raise
    if results is None:
        return None
    user_list = []
    for result in results:
        result["followers_count"] = query_factory.get_user_followers(
            result['username'])["count"]
        result["following_count"] = query_factory.get_user_following(
            result['username'])["count"]
        result["kweeks_count"] = query_factory.get_number_of_kweeks(
            result['username'])['count']
        result["likes_count"] = query_factory.get_number_of_likes(
            result['username'])['count']
        friendship = actions.get_friendship(authorized_username,
                                            result['username'])
        result.update(friendship)
        user_list.append(UserProfile(result))
    return user_list
示例#6
0
def get_user_profile(authorized_username, username):
    """
            The function return user profile for a specific user.

            *Parameters*:
                - *authorized_username (string)*: The user that is logged in now.
                - *username (string)*: The user that we will test friendship on it like (following ..)

            *Returns*:
                - *UserProfile*: an object of user profile .
    """
    if username is None:
        return -1
    check_user = actions.is_user(username)
    if not check_user:
        return -1
    profile = query_factory.get_user_profile(username)
    check_block = user_interaction_query_factory.if_blocked(
        username, authorized_username)['count']
    if check_block == 1:
        dict_blocked = {
            'username': profile['username'],
            'screen_name': profile['screen_name'],
            'profile_image_url': profile['profile_image_url'],
            'profile_banner_url': profile['profile_banner_url']
        }
        return dict_blocked
    profile["followers_count"] = query_factory.get_user_followers(
        username)["count"]
    profile["following_count"] = query_factory.get_user_following(
        username)["count"]
    profile["kweeks_count"] = query_factory.get_number_of_kweeks(
        username)['count']
    profile["likes_count"] = query_factory.get_number_of_likes(
        username)['count']
    friendship = actions.get_friendship(authorized_username, username)
    profile.update(friendship)
    return UserProfile(profile)