Exemple #1
0
    def get(self, list_id, session=None):
        """ Get movies by list ID """

        args = movies_parser.parse_args()
        page = args.get('page')
        page_size = args.get('page_size')

        start = page_size * (page - 1)
        stop = start + page_size
        descending = bool(args.get('order') == 'desc')

        kwargs = {
            'start': start,
            'stop': stop,
            'list_id': list_id,
            'order_by': args.get('sort_by'),
            'descending': descending,
            'session': session
        }
        try:
            ml.get_list_by_id(list_id=list_id, session=session)
        except NoResultFound:
            return {'status': 'error',
                    'message': 'list_id %d does not exist' % list_id}, 404
        count = ml.get_movies_by_list_id(count=True, **kwargs)
        movies = [movie.to_dict() for movie in ml.get_movies_by_list_id(**kwargs)]
        pages = int(ceil(count / float(page_size)))

        number_of_movies = min(page_size, count)

        return jsonify({'movies': movies,
                        'number_of_movies': number_of_movies,
                        'total_number_of_movies': count,
                        'page': page,
                        'total_number_of_pages': pages})
Exemple #2
0
    def get(self, list_id, session=None):
        """ Get movies by list ID """
        args = movies_parser.parse_args()

        # Pagination and sorting params
        page = args['page']
        per_page = args['per_page']
        sort_by = args['sort_by']
        sort_order = args['order']

        start = per_page * (page - 1)
        stop = start + per_page
        descending = bool(sort_order == 'desc')

        kwargs = {
            'start': start,
            'stop': stop,
            'list_id': list_id,
            'order_by': sort_by,
            'descending': descending,
            'session': session
        }
        try:
            ml.get_list_by_id(list_id=list_id, session=session)
        except NoResultFound:
            raise NotFoundError('list_id %d does not exist' % list_id)

        total_items = ml.get_movies_by_list_id(count=True, **kwargs)

        if not total_items:
            return jsonify([])

        movies = [
            movie.to_dict() for movie in ml.get_movies_by_list_id(**kwargs)
        ]

        total_pages = int(ceil(total_items / float(per_page)))

        if page > total_pages:
            raise NotFoundError('page %s does not exist' % page)

        # Actual results in page
        actual_size = min(len(movies), per_page)

        # Get pagination headers
        pagination = pagination_headers(total_pages, total_items, actual_size,
                                        request)

        # Create response
        rsp = jsonify(movies)

        # Add link header to response
        rsp.headers.extend(pagination)
        return rsp
Exemple #3
0
    def get(self, list_id, session=None):
        """ Get movies by list ID """
        args = movies_parser.parse_args()

        # Pagination and sorting params
        page = args['page']
        per_page = args['per_page']
        sort_by = args['sort_by']
        sort_order = args['order']

        start = per_page * (page - 1)
        stop = start + per_page
        descending = bool(sort_order == 'desc')

        kwargs = {
            'start': start,
            'stop': stop,
            'list_id': list_id,
            'order_by': sort_by,
            'descending': descending,
            'session': session
        }
        try:
            ml.get_list_by_id(list_id=list_id, session=session)
        except NoResultFound:
            raise NotFoundError('list_id %d does not exist' % list_id)

        total_items = ml.get_movies_by_list_id(count=True, **kwargs)

        if not total_items:
            return jsonify([])

        movies = [movie.to_dict() for movie in ml.get_movies_by_list_id(**kwargs)]

        total_pages = int(ceil(total_items / float(per_page)))

        if page > total_pages:
            raise NotFoundError('page %s does not exist' % page)

        # Actual results in page
        actual_size = min(len(movies), per_page)

        # Get pagination headers
        pagination = pagination_headers(total_pages, total_items, actual_size, request)

        # Create response
        rsp = jsonify(movies)

        # Add link header to response
        rsp.headers.extend(pagination)
        return rsp
Exemple #4
0
    def get(self, list_id, session=None):
        """ Get movies by list ID """

        args = movies_parser.parse_args()
        page = args.get('page')
        page_size = args.get('page_size')

        start = page_size * (page - 1)
        stop = start + page_size
        if args.get('order') == 'desc':
            descending = True
        else:
            descending = False

        kwargs = {
            'start': start,
            'stop': stop,
            'list_id': list_id,
            'order_by': args.get('sort_by'),
            'descending': descending,
            'session': session
        }
        try:
            movie_list = ml.get_list_by_id(list_id=list_id, session=session)
        except NoResultFound:
            return {'status': 'error',
                    'message': 'list_id %d does not exist' % list_id}, 404
        movies = [movie.to_dict() for movie in ml.get_movies_by_list_id(**kwargs)]

        return jsonify({'movies': movies})
Exemple #5
0
    def get(self, list_id, session=None):
        """ Get movies by list ID """

        args = movies_parser.parse_args()
        page = args.get('page')
        page_size = args.get('page_size')

        start = page_size * (page - 1)
        stop = start + page_size
        if args.get('order') == 'desc':
            descending = True
        else:
            descending = False

        kwargs = {
            'start': start,
            'stop': stop,
            'list_id': list_id,
            'order_by': args.get('sort_by'),
            'descending': descending,
            'session': session
        }
        try:
            movie_list = ml.get_list_by_id(list_id=list_id, session=session)
        except NoResultFound:
            return {
                'status': 'error',
                'message': 'list_id %d does not exist' % list_id
            }, 404
        movies = [
            movie.to_dict() for movie in ml.get_movies_by_list_id(**kwargs)
        ]

        return jsonify({'movies': movies})
Exemple #6
0
def movie_list_list(options):
    """List movie list"""
    with Session() as session:
        try:
            movie_list = get_list_by_exact_name(options.list_name)
        except NoResultFound:
            console('Could not find movie list with name {}'.format(
                options.list_name))
            return
    header = ['Movie Name', 'Movie year']
    header += MovieListBase().supported_ids
    table_data = [header]
    movies = get_movies_by_list_id(movie_list.id,
                                   order_by='added',
                                   descending=True,
                                   session=session)
    for movie in movies:
        movie_row = [movie.title, movie.year or '']
        for identifier in MovieListBase().supported_ids:
            movie_row.append(movie.identifiers.get(identifier, ''))
        table_data.append(movie_row)
    title = '{} Movies in movie list: `{}`'.format(len(movies),
                                                   options.list_name)
    try:
        table = TerminalTable(options.table_type,
                              table_data,
                              title,
                              drop_columns=[5, 2, 4])
        console(table.output)
    except TerminalTableError as e:
        console('ERROR: %s' % str(e))
Exemple #7
0
    def get(self, list_id, session=None):
        """ Get movies by list ID """

        args = movies_parser.parse_args()
        page = args.get('page')
        page_size = args.get('page_size')

        start = page_size * (page - 1)
        stop = start + page_size
        descending = bool(args.get('order') == 'desc')

        kwargs = {
            'start': start,
            'stop': stop,
            'list_id': list_id,
            'order_by': args.get('sort_by'),
            'descending': descending,
            'session': session
        }
        try:
            ml.get_list_by_id(list_id=list_id, session=session)
        except NoResultFound:
            return {
                'status': 'error',
                'message': 'list_id %d does not exist' % list_id
            }, 404
        count = ml.get_movies_by_list_id(count=True, **kwargs)
        movies = [
            movie.to_dict() for movie in ml.get_movies_by_list_id(**kwargs)
        ]
        pages = int(ceil(count / float(page_size)))

        number_of_movies = min(page_size, count)

        return jsonify({
            'movies': movies,
            'number_of_movies': number_of_movies,
            'total_number_of_movies': count,
            'page': page,
            'total_number_of_pages': pages
        })
Exemple #8
0
    def get(self, list_id, session=None):
        """ Get movies by list ID """
        args = movies_parser.parse_args()

        # Pagination and sorting params
        page = args["page"]
        per_page = args["per_page"]
        sort_by = args["sort_by"]
        sort_order = args["order"]

        start = per_page * (page - 1)
        stop = start + per_page
        descending = sort_order == "desc"

        kwargs = {
            "start": start,
            "stop": stop,
            "list_id": list_id,
            "order_by": sort_by,
            "descending": descending,
            "session": session,
        }
        try:
            list = ml.get_list_by_id(list_id=list_id, session=session)
        except NoResultFound:
            raise NotFoundError("list_id %d does not exist" % list_id)

        total_items = list.movies.count()

        if not total_items:
            return jsonify([])

        movies = [movie.to_dict() for movie in ml.get_movies_by_list_id(**kwargs)]

        total_pages = int(ceil(total_items / float(per_page)))

        if page > total_pages:
            raise NotFoundError("page %s does not exist" % page)

        # Actual results in page
        actual_size = min(len(movies), per_page)

        # Get pagination headers
        pagination = pagination_headers(total_pages, total_items, actual_size, request)

        # Create response
        rsp = jsonify(movies)

        # Add link header to response
        rsp.headers.extend(pagination)
        return rsp
Exemple #9
0
def movie_list_list(options, session=None):
    """List movie list"""
    try:
        movie_list = get_list_by_exact_name(options.list_name)
    except NoResultFound:
        console('Could not find movie list with name {}'.format(options.list_name))
        return
    console('Movies for list {}:'.format(options.list_name))
    console('-' * 79)
    for movie in get_movies_by_list_id(movie_list.id, order_by='added', descending=True, session=session):
        _str = '{} ({}) '.format(movie.title, movie.year) if movie.year else '{} '.format(movie.title)
        _ids = '[' + ', '.join(
            '{}={}'.format(identifier.id_name, identifier.id_value) for identifier in movie.ids) + ']'
        console(_str + _ids)
Exemple #10
0
def movie_list_list(options):
    """List movie list"""
    with Session() as session:
        try:
            movie_list = get_list_by_exact_name(options.list_name)
        except NoResultFound:
            console('Could not find movie list with name {}'.format(options.list_name))
            return
        console('Movies for list {}:'.format(options.list_name))
        console('-' * 79)
        for movie in get_movies_by_list_id(movie_list.id, order_by='added', descending=True, session=session):
            _str = '{} ({}) '.format(movie.title, movie.year) if movie.year else '{} '.format(movie.title)
            _ids = '[' + ', '.join(
                '{}={}'.format(identifier.id_name, identifier.id_value) for identifier in movie.ids) + ']'
            console(_str + _ids)
Exemple #11
0
def movie_list_list(options):
    """List movie list"""
    with Session() as session:
        try:
            movie_list = get_list_by_exact_name(options.list_name)
        except NoResultFound:
            console("Could not find movie list with name {}".format(options.list_name))
            return
    header = ["Movie Name", "Movie year"]
    header += MovieListBase().supported_ids
    table_data = [header]
    movies = get_movies_by_list_id(movie_list.id, order_by="added", descending=True, session=session)
    for movie in movies:
        movie_row = [movie.title, movie.year or ""]
        for identifier in MovieListBase().supported_ids:
            movie_row.append(movie.identifiers.get(identifier, ""))
        table_data.append(movie_row)
    title = "{} Movies in movie list: `{}`".format(len(movies), options.list_name)
    table = TerminalTable(options.table_type, table_data, title, drop_columns=[5, 2, 4])
    try:
        console(table.output)
    except TerminalTableError as e:
        console("ERROR: %s" % str(e))