Ejemplo n.º 1
0
def friend(host):
    try:
        if session.get('username') != host:
            return render_template('notlogin.html')
        else:
            try:
                #get host info
                sql = 'SELECT * FROM users WHERE user_name = %s;'
                parm = (host, )
                hosts = User().get_User(sql, parm)
                #get info of users who host follow
                sql1 = 'SELECT users.* FROM users,relation WHERE relation.user_id = %s AND users.user_id = relation.follow_id;'
                parm1 = (hosts[0], )
                friends = Relation().get_AllRelation(sql1, parm1)
                friend = Relation().get_Relation(sql1, parm1)
            except:
                traceback.print_exc()
                return render_template('error1.html')
            if friend is None:
                info = 'You haven not been following anyone yet.Go and find friends ↑↑↑'
                return render_template('friend.html',
                                       hosts=hosts,
                                       nofriend=info)
            else:
                return render_template('friend.html',
                                       hosts=hosts,
                                       friends=friends)
    except:
        traceback.print_exc()
        return render_template('error.html')
Ejemplo n.º 2
0
def follow(key, host):
    try:
        if session.get('username') != host:
            return render_template('notlogin.html')
        else:
            try:
                # get userinfo which host search
                sql = 'SELECT * FROM users WHERE user_name LIKE %s ORDER BY user_id DESC;'
                parm = ("%" + key + "%", )
                users = User().get_AllUser(sql, parm)
                # get hostinfo
                parm2 = (host, )
                hosts = User().get_User(sql, parm2)
                # get userinfo which host already followed
                sql1 = 'SELECT users.* FROM users,relation WHERE relation.user_id = %s AND users.user_id = relation.follow_id;'
                parm1 = (hosts[0], )
                follows = Relation().get_AllRelation(sql1, parm1)
            except:
                traceback.print_exc()
                return render_template('error1.html')
            return render_template('friend.html',
                                   hosts=hosts,
                                   key=key,
                                   users=users,
                                   follows=follows)
    except:
        traceback.print_exc()
        return render_template('error.html')
Ejemplo n.º 3
0
def searchFriend(host):

    if session.get('username') != host:
        return render_template('notlogin.html')

    else:

        #get info of search
        sql = 'SELECT * FROM users WHERE user_name LIKE %s ORDER BY user_id DESC;'
        parm = ("%" + request.form['searchfriend'] + "%", )
        key = request.form['searchfriend']
        users = User().get_AllUser(sql, parm)
        user = User().get_User(sql, parm)
        parm1 = (host, )
        hosts = User().get_User(sql, parm1)
        if user is None:
            error = 'user is not exist!'
            return render_template('friend.html', hosts=hosts, error=error)
        else:
            #查找已关注的人,与用户对比,确定状态
            sql1 = 'SELECT users.* FROM users,relation WHERE relation.user_id = %s AND users.user_id = relation.follow_id;'
            parm1 = (hosts[0], )
            follows = Relation().get_AllRelation(sql1, parm1)
            # followid = Relation().get_Relation(sql1, parm1)
            return render_template('friend.html',
                                   hosts=hosts,
                                   users=users,
                                   follows=follows,
                                   key=key,
                                   list='User list')
Ejemplo n.º 4
0
def unFollow(host, userid):

    # get host info
    sql = 'SELECT * FROM users WHERE user_name = %s;'
    parm = (host, )
    hosts = User().get_User(sql, parm)

    # get info of user
    # sql = 'SELECT * FROM users WHERE user_id = %s;'
    # parm = (userid,)
    # userinfo = User().get_User(sql, parm)

    # delete relation
    sql_del = 'DELETE FROM relation WHERE user_id = %s AND follow_id = %s;'
    parm_del = (hosts[0], userid)
    Relation().set_Relation(sql_del, parm_del)

    # update the number of host follow
    sql_update = 'UPDATE users SET follownum = follownum - 1  WHERE user_id = %s;'
    parm = (hosts[0], )
    User().set_User(sql_update, parm)

    # update the number of user fans
    sql_update1 = 'UPDATE users SET fansnum = fansnum - 1  WHERE user_id = %s;'
    parm1 = (userid, )
    User().set_User(sql_update1, parm1)

    return redirect(url_for('friend', host=host))
Ejemplo n.º 5
0
def unFollow(host, userid):

    try:
        if session.get('username') != host:
            return render_template('notlogin.html')
        else:
            try:
                # get host info
                sql = 'SELECT * FROM users WHERE user_name = %s;'
                parm = (host, )
                hosts = User().get_User(sql, parm)
            except:
                traceback.print_exc()
                return render_template('error1.html')
            try:
                # delete relation
                sql_del = 'DELETE FROM relation WHERE user_id = %s AND follow_id = %s;'
                parm_del = (hosts[0], userid)
                Relation().set_Relation(sql_del, parm_del)
                # update the number of host follow
                sql_update = 'UPDATE users SET follownum = follownum - 1  WHERE user_id = %s;'
                parm = (hosts[0], )
                User().set_User(sql_update, parm)
                # update the number of user fans
                sql_update1 = 'UPDATE users SET fansnum = fansnum - 1  WHERE user_id = %s;'
                parm1 = (userid, )
                User().set_User(sql_update1, parm1)
            except:
                conn = connect_db()
                conn.rollback()
                conn.close()
                traceback.print_exc()
                return render_template('error1.html')
            return redirect(url_for('friend', host=host))
    except:
        traceback.print_exc()
        return render_template('error.html')
Ejemplo n.º 6
0
def doFollow(state, host, username, key):

    if session.get('username') != host:
        return render_template('notlogin.html')
    else:
        # get id of host follow or unfollow
        sql = 'SELECT * FROM users WHERE user_name = %s;'
        parm = (username, )
        # users = User().get_AllUser(sql, parm)
        userinfo = User().get_User(sql, parm)

        # get host info
        parm2 = (host, )
        hosts = User().get_User(sql, parm2)

        # get userinfo which host search
        sql = 'SELECT * FROM users WHERE user_name LIKE %s  ORDER BY user_id DESC;'
        parm = ("%" + key + "%", )
        users = User().get_AllUser(sql, parm)

        # get userinfo which host follow
        sql1 = 'SELECT users.* FROM users,relation WHERE relation.user_id = %s AND users.user_id = relation.follow_id;'
        parm1 = (hosts[0], )
        follows = Relation().get_AllRelation(sql1, parm1)

        if state == 'FOLLOW':
            # can not follow hostself
            if host == username:
                error = 'you can not follow yourself'
                return render_template('friend.html',
                                       hosts=hosts,
                                       users=users,
                                       key=key,
                                       follows=follows,
                                       error=error)
            else:
                # add relation
                sql_add1 = 'INSERT INTO relation (user_id,follow_id) VALUES (%s,%s);'
                parm_add1 = (hosts[0], userinfo[0])
                Relation().set_Relation(sql_add1, parm_add1)
                # update the num of follow
                sql_update = 'UPDATE users SET follownum = follownum + 1  WHERE user_id = %s;'
                parm = (hosts[0], )
                User().set_User(sql_update, parm)
                # update the number of fans
                sql_update = 'UPDATE users SET fansnum = fansnum + 1  WHERE user_id = %s;'
                parm = (userinfo[0], )
                User().set_User(sql_update, parm)

                return redirect(url_for('follow', key=key, host=host))

        else:

            # delete relation
            sql_del = 'DELETE FROM relation WHERE user_id = %s AND follow_id = %s;'
            parm_del = (hosts[0], userinfo[0])
            Relation().set_Relation(sql_del, parm_del)

            # update the number of host follow
            sql_update = 'UPDATE users SET follownum = follownum - 1  WHERE user_id = %s;'
            parm = (hosts[0], )
            User().set_User(sql_update, parm)

            # update the number of user fans
            sql_update1 = 'UPDATE users SET fansnum = fansnum - 1  WHERE user_id = %s;'
            parm1 = (userinfo[0], )
            User().set_User(sql_update1, parm1)

            return redirect(url_for('follow', key=key, host=host))
Ejemplo n.º 7
0
def home(host):
    try:
        if session.get('username') == host:
            try:
                # get infomation of host
                sql = 'SELECT * FROM users WHERE user_name = %s;'
                parm = (host, )
                host1 = User().get_User(sql, parm)
                #get post number
                sql = 'SELECT COUNT(message_id) FROM message WHERE user_id = %s;'
                parm = (host1[0], )
                postnum = Post().get_Post(sql, parm)
                # update host's number of post
                sql_update = 'UPDATE users SET postnum = %s WHERE user_id = %s;'
                parm = (
                    postnum[0],
                    host1[0],
                )
                User().set_User(sql_update, parm)
                # get follower number
                sql = 'SELECT COUNT(follow_id) FROM relation WHERE user_id = %s;'
                parm = (host1[0], )
                follownum = Relation().get_Relation(sql, parm)
                # update number of follower
                sql_update = 'UPDATE users SET follownum = %s WHERE user_id = %s;'
                parm = (
                    follownum[0],
                    host1[0],
                )
                User().set_User(sql_update, parm)
                #get fans number
                sql = 'SELECT COUNT(user_id) FROM relation WHERE follow_id = %s;'
                parm = (host1[0], )
                fansnum = Relation().get_Relation(sql, parm)
                # update host's number of fans
                sql_update = 'UPDATE users SET fansnum = %s WHERE user_id = %s;'
                parm = (
                    fansnum[0],
                    host1[0],
                )
                User().set_User(sql_update, parm)

                # get infomation of host
                sql = 'SELECT * FROM users WHERE user_name = %s;'
                parm = (host, )
                hosts = User().get_User(sql, parm)
                # get infomation the posts of host and friend
                sql1 = 'SELECT message.*,users.user_name,users.userpic FROM message,relation,users WHERE relation.user_id = %s AND message.user_id = relation.follow_id AND message.user_id = users.user_id;'
                parm1 = (hosts[0], )
                posts1 = Post().get_AllPost(sql1, parm1)
                sql2 = 'SELECT message.*,users.user_name,users.userpic FROM message,users WHERE message.user_id = %s and message.user_id = users.user_id;'
                parm2 = (hosts[0], )
                posts2 = Post().get_AllPost(sql2, parm2)
                posts = sorted(posts1 + posts2, reverse=True)
            except:
                conn = connect_db()
                conn.rollback()
                conn.close()
                traceback.print_exc()
                return render_template('error1.html')
            return render_template('homeopage.html', hosts=hosts, posts=posts)
        else:
            return render_template('notlogin.html')
    except:
        traceback.print_exc()
        return render_template('error.html')