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] })
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]], } })