Esempio n. 1
0
 def get(self):
     user_id = self.get_argument('user_id')
     target_user_id = self.get_argument('target_user_id')
     start = int(self.get_argument('start', 0))
     count = int(self.get_argument('count', 10))
     user = User.get(user_id)
     rooms = RoomUser.get_rooms_by_user(target_user_id, start, count)
     return self.render({
         'status': 0,
         'data': [room.jsonify(user) for room in rooms]
     })
Esempio n. 2
0
    def get(self):
        try:
            user_id = self.get_argument('user_id', '')
            start = int(self.get_argument('start', 0))
            count = int(self.get_argument('count', 10))
        except MissingArgumentError:
            return self.error(MISSING_PARAMS)

        user = User.get(user_id)
        if not user:
            return self.error(USER_NOT_FOUND)

        has_joined_rooms = RoomUser.get_rooms_by_user(user_id, 0, 1)
        if has_joined_rooms:
            join_rooms = RoomUser.get_rooms_by_user_order_by_update_time(user_id, start, count)
            return self.render({
                'status': 0,
                'data': {
                    'recommend': 'joined',
                    'data': [room.jsonify(user) for room in join_rooms],
                }
            })

        user_tags = UserTag.get_tags_by_user(user_id)
        if user_tags:
            rooms = RoomTag.get_rooms_by_tags(user_tags)
            if rooms:
                rooms = sorted(rooms, key=lambda room: room.user_amount, reverse=True)
                end = start + count - 1
                rooms = rooms[start: end]
                return self.render({
                    'status': 0,
                    'data': {
                        'recommend': 'tags',
                        'data': [room.jsonify(user) for room in rooms],
                    }
                })

        rooms = Room.get_rooms_by_user_amount(start, count)
        return self.render({
            'status': 0,
            'data': {
                'recommend': 'hot',
                'data': [room.jsonify(user) for room in rooms if int(room.id) not in [100043, 100053]],
            }
        })