Ejemplo n.º 1
0
def users_create():
    form = request.form
    try:
        username = form['username']
        if username == None or username == '':
            return jsonify({'status': 1, 'message': '用户名为空'})

        password = form['password']

        if password == None or password == '':
            return jsonify({'status': 2, 'message': '密码为空'})
        password_again = form['password_again']

        if password_again == None or password_again == '':
            return jsonify({'status': 3, 'message': '确认密码为空'})

        if password_again != password:
            return jsonify({'status': 3, 'message': '两次密码不同'})

        email = form['email']

        if email == None or email == '':
            return jsonify({'status': 4, 'message': '邮箱空'})
        if correct_email(email) == False:
            return jsonify({'status': 4, 'message': '邮箱格式错误'})

        # sex = form['sex']
        # nickname = form['nickname']

        # 密码加密
        password_encoded = password_encode(password)

        # db操作
        db_session = DBSession()

        user = db_session.query(User).filter(User.username == username).first()
        if user is not None:
            db_session.close()
            return jsonify({'status': 1, 'message': '用户名已存在'})

        email_db = db_session.query(User).filter(User.email == email).first()
        if email_db is not None:
            db_session.close()
            return jsonify({'status': 4, 'message': '邮箱重复'})

        user = User(username=username, password=password_encoded, email=email)
        db_session.add(user)
        db_session.commit()
        user = db_session.query(User).filter_by(username=username).first()
        db_session.close()
        set_login(user)  # 自动登录
        return jsonify({'status': 0, 'message': '注册成功, 即将跳转个人中心完善个人信息'})
    except Exception as e:
        print(e)
        return jsonify({'status': 5, 'message': '未知错误'})
Ejemplo n.º 2
0
def users_admin_update():
    try:
        form = request.form
        admin = form['admin']
        ban = form['ban']
        nickname = form['nickname']
        sex = form['sex']
        password = form['password']
        db_session = DBSession()
        user_id = form['id']
        user = db_session.query(User).filter_by(id=user_id).first()

        if admin != None and admin != '':
            user.admin = admin
        if ban != None and ban != '':
            user.ban = ban
        if nickname != None and nickname != '':
            user.nickname = nickname
        if sex != None and sex != '':
            user.sex = sex
        if password != '' and password != None:
            password_encoded = password_encode(password)
            user.password = password_encoded
        db_session.commit()
        db_session.close()
        return jsonify({'status': 0, 'message': '修改成功'})
    except Exception as e:
        return jsonify({
            'status': 1,
            'message': '获取失败',
            'error_message': str(e)
        })
Ejemplo n.º 3
0
def is_admin():
    dbs = DBSession()
    user_id = session.get('user_id')
    user = dbs.query(User).filter(User.id == user_id).first()
    dbs.close()
    if user is not None:
        if user.admin == 1:
            return True
    return False
Ejemplo n.º 4
0
def get_login_user():
    if is_login():
        dbs = DBSession()
        user_id = session.get('user_id')
        user = dbs.query(User).filter(User.id == user_id).first()
        dbs.close()
        return user
    else:
        return None
Ejemplo n.º 5
0
def channel_like():
    user = get_login_user()
    channel_id = request.values.get('id', default=0, type=int)
    if channel_id == 0:
        return jsonify({'status': 1, 'message': '错误的id'})

    db = DBSession()
    try:
        channel = db.query(Channel).filter(Channel.id == channel_id).first()
        if channel is not None:
            liked = db.query(Like).filter(Like.user_id == user.id, Like.channel_id == channel_id).first()
            if liked is not None:
                db.delete(liked)
                db.commit()
                like_count = db.query(Like).filter(Like.channel_id == channel_id).count()
                return jsonify({
                    'status': -1,
                    'message': 'ok',
                    'data': {'like_count': int(like_count)}
                })
            else:
                like = Like(user_id=user.id, status=1, channel_id=channel_id)
                db.add(like)
                db.commit()
                like_count = db.query(Like).filter(Like.channel_id == channel_id).count()
                return jsonify({
                    'status': 0,
                    'message': 'ok',
                    'data': {'like_count': int(like_count)}
                })
        else:
            return jsonify({
                'status': 1,
                'message': '消息可能已被删除'
            })
    except Exception as e:
        db.close()
        return jsonify({
            'status': 1,
            'message': str(e),
            'error_message': str(e)
        })
Ejemplo n.º 6
0
def follow():
    user = get_login_user()
    channel_user_id = request.values.get('id', default=0, type=int)
    if channel_user_id == 0:
        return jsonify({'status': 1, 'message': '错误的id'})

    db = DBSession()
    try:
        user = db.query(User).filter(User.id == channel_user_id).first()
        if user is not None:
            followed = db.query(Follow).filter(user_id=user.id, channel_user_id=channel_user_id).first()
            if followed is None:
                db.add(Follow(user_id=user.id, channel_user_id=channel_user_id, status=1))
                db.commit()
                return jsonify({
                    'status': 0,
                    'message': '关注成功'
                })
            else:
                db.delete(followed)
                db.commit()
                return jsonify({
                    'status': 0,
                    'message': '取关成功'
                })
        else:
            return jsonify({
                'status': 1,
                'message': '该用户不存在'
            })
    except Exception as e:
        db.close()
        return jsonify({
            'status': 1,
            'message': str(e),
            'error_message': str(e)
        })
Ejemplo n.º 7
0
def users_admin_delete():
    try:
        form = request.form
        db_session = DBSession()
        user_id = form['id']
        user = db_session.query(User).filter_by(id=user_id).first()
        db_session.delete(user)
        db_session.commit()
        db_session.close()
        return jsonify({'status': 0, 'message': '删除成功'})
    except Exception as e:
        return jsonify({
            'status': 1,
            'message': '获取失败',
            'error_message': str(e)
        })
Ejemplo n.º 8
0
def users_page_count():
    try:
        db_session = DBSession()
        users = db_session.query(User).all()
        count = len(users) / 10
        return jsonify({
            'status': 0,
            'message': '获取成功',
            'page_count': int(count) + 1
        })
    except Exception as e:
        return jsonify({
            'status': 1,
            'message': '获取失败',
            'error_message': str(e)
        })
Ejemplo n.º 9
0
def upload_avatar():
    user = get_login_user()
    file = request.files['file']
    try:
        suffix = file.filename.rsplit('.', 1)[1]
        cwd = os.getcwd()
        url = generate_random_name(12) + '.' + suffix
        file.save(os.path.join(cwd + '/app/api/static/upload/' + url))
        db = DBSession()
        user = db.query(User).filter(User.id == user.id).first()
        user.avatar = '/api/static/upload/' + url
        db.commit()
        url = user.avatar
        db.close()
        return jsonify({'status': 0, 'message': '保存成功', 'data': {'url': url}})
    except Exception as e:
        return jsonify({'status': 1, 'message': '保存失败:'})
Ejemplo n.º 10
0
def users_login():
    form = request.form
    if None == form['username'] or form['username'] == '':
        return jsonify({'status': 0, 'message': '请输入用户名!'})
    if None == form['password'] or form['password'] == '':
        return jsonify({'status': 1, 'message': '请输入密码!'})

    db_session = DBSession()
    user = db_session.query(User).filter(
        User.username == form['username']).first()
    db_session.close()

    if None is not user and password_auth(
            password_to_be_checked=form['password'], password=user.password):
        set_login(user)
        return jsonify({'status': 2, 'message': '登录成功'})
    else:
        return jsonify({'status': 3, 'message': '登录失败'})
Ejemplo n.º 11
0
def users_channel_count():
    try:
        db_session = DBSession()
        userid = session.get('user_id')
        # db操作

        # user = db_session.query(Channel).filter_by(user_id=userid).all()
        #
        # countNum = int(len(user))

        countNum = db_session.query(Channel).filter_by(user_id=userid).count()
        db_session.close()
        return jsonify({
            'status': 0,
            'message': '获得数据成功',
            'countNum': countNum
        })

    except Exception as e:
        print(e)
        return jsonify({'status': 1, 'message': '没有登录'})
Ejemplo n.º 12
0
def users_list():
    try:
        db_session = DBSession()
        page_num = int(request.form['page'])
        page_cur = (page_num - 1) * 10
        user_dict_list = []
        users = db_session.query(User).limit(11).offset(page_cur).all()
        if len(users) <= 10:
            for i in users:
                user_dict = {}
                user_id = i.id
                user_username = i.username
                user_admin = i.admin
                user_ban = i.ban
                user_nickname = i.nickname
                user_sex = i.sex
                user_dict.update({
                    'uid': user_id,
                    'username': user_username,
                    'admin': user_admin,
                    'ban': user_ban,
                    'nickname': user_nickname,
                    'sex': user_sex
                })
                user_dict_list.append(user_dict)

            return jsonify({
                'status': 2,
                'message': '这是最后了',
                'data': user_dict_list,
                'page': page_num
            })
        for i in range(10):
            user_dict = {}
            user_id = users[i].id
            user_username = users[i].username
            user_admin = users[i].admin
            user_ban = users[i].ban
            user_nickname = users[i].nickname
            user_sex = users[i].sex
            user_dict.update({
                'uid': user_id,
                'username': user_username,
                'admin': user_admin,
                'ban': user_ban,
                'nickname': user_nickname,
                'sex': user_sex
            })
            user_dict_list.append(user_dict)
        db_session.close()
        return jsonify({
            'status': 0,
            'message': '获取成功',
            'data': user_dict_list,
            'page': page_num
        })
    except Exception as e:
        return jsonify({
            'status': 1,
            'message': '获取失败',
            'data': {},
            'error_message': str(e)
        })
Ejemplo n.º 13
0
def list_follow():
    user = get_login_user()
    page = request.values.get('page', default=1, type=int)
    db = DBSession()
    try:
        # 取本人订阅的频道主的最近消息
        query = db.query(Channel) \
            .join(Follow, Channel.user_id == Follow.channel_user_id) \
            .filter(Follow.user_id == user.id)

        count = query.count()
        channels = query.order_by(Channel.id.desc()).limit(10).offset((page - 1) * 10).all()
        is_end = (page * 10 >= count)

        data = []
        for channel in channels:
            user = db.query(User).filter(User.id == channel.user_id).first()
            avatar = None
            if user.avatar != '0':
                # image = db.query(Image).filter(Image.id == user.avatar_id).first()
                avatar = user.avatar
            if user.avatar == '0':
                avatar = '/web/static/asset/chisec/avator.jpg'
            media = None
            if channel.image_id is not None and channel.image_id is not '':
                image = db.query(Image).filter(Image.id == channel.image_id).first()
                media = image.url

            like_count = db.query(Like) \
                .filter(Like.channel_id == channel.id) \
                .count()
            if is_login():
                liked = db.query(Like) \
                    .filter(Like.channel_id == channel.id, Like.user_id == user.id) \
                    .count()
                if liked > 0:
                    liked = True
                else:
                    liked = False
            else:
                liked = 0

            data.append({
                'id': channel.id,
                'user_id': user.id,
                'content': channel.content,
                'channel_name': user.channel_name,
                'username': user.username,
                'avatar': avatar,
                'media': media,
                'like_count': like_count,
                'liked': liked,
                'count': count,
                'create_time': pd_time(channel.create_time)
            })

        db.close()
        if is_end:
            return jsonify({
                'status': 2,
                'message': '没有更多消息了',
                'data': data
            })
        else:
            return jsonify({
                'status': 0,
                'message': 'ok',
                'data': data
            })
    except Exception as e:
        db.close()
        return jsonify({
            'status': 1,
            'message': '拉取失败',
            'error_message': str(e)
        })