예제 #1
0
def movie_list_add(options):
    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 {}, creating'.format(options.list_name))
            movie_list = MovieListList(name=options.list_name)
            session.add(movie_list)
        session.merge(movie_list)
        title, year = split_title_year(options.movie_title)
        movie_exist = get_movie_by_title(list_id=movie_list.id, title=title, session=session)
        if movie_exist:
            console("Movie with the title {} already exist with list {}. Will replace identifiers if given".format(
                title, movie_list.name))
            output = 'Successfully updated movie {} to movie list {} '.format(title, movie_list.name)
        else:
            console("Adding movie with title {} to list {}".format(title, movie_list.name))
            movie_exist = MovieListMovie(title=title, year=year, list_id=movie_list.id)
            session.add(movie_exist)
            output = 'Successfully added movie {} to movie list {} '.format(title, movie_list.name)
        if options.identifiers:
            identifiers = [parse_identifier(identifier) for identifier in options.identifiers if options.identifiers]
            console('Adding identifiers {} to movie {}'.format(identifiers, title))
            movie_exist.ids = get_db_movie_identifiers(identifier_list=identifiers, session=session)
        console(output)
예제 #2
0
def movie_list_add(options):
    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 {}, creating'.format(options.list_name))
            movie_list = MovieListList(name=options.list_name)
            session.add(movie_list)
        session.merge(movie_list)
        title, year = split_title_year(options.movie_title)
        movie_exist = get_movie_by_title(list_id=movie_list.id, title=title, session=session)
        if movie_exist:
            console("Movie with the title {} already exist with list {}. Will replace identifiers if given".format(
                title, movie_list.name))
            output = 'Successfully updated movie {} to movie list {} '.format(title, movie_list.name)
        else:
            console("Adding movie with title {} to list {}".format(title, movie_list.name))
            movie_exist = MovieListMovie(title=title, year=year, list_id=movie_list.id)
            session.add(movie_exist)
            output = 'Successfully added movie {} to movie list {} '.format(title, movie_list.name)
        if options.identifiers:
            identifiers = [parse_identifier(identifier) for identifier in options.identifiers if options.identifiers]
            console('Adding identifiers {} to movie {}'.format(identifiers, title))
            movie_exist.ids = get_db_movie_identifiers(identifier_list=identifiers, session=session)
        console(output)
예제 #3
0
def movie_list_del(options):
    with Session() as session:
        try:
            movie_list = plugin_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

        try:
            movie_exist = plugin_movie_list.get_movie_by_id(
                list_id=movie_list.id,
                movie_id=int(options.movie),
                session=session)
        except NoResultFound:
            console('Could not find movie with ID {} in list `{}`'.format(
                int(options.movie), options.list_name))
            return
        except ValueError:
            title, year = split_title_year(options.movie)
            movie_exist = plugin_movie_list.get_movie_by_title_and_year(
                list_id=movie_list.id, title=title, year=year, session=session)
        if not movie_exist:
            console('Could not find movie with title {} in list {}'.format(
                options.movie, options.list_name))
            return
        else:
            console('Removing movie {} from list {}'.format(
                movie_exist.title, options.list_name))
            session.delete(movie_exist)
예제 #4
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))
예제 #5
0
def movie_list_add(options):
    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 {}, creating'.format(options.list_name))
            movie_list = MovieListList(name=options.list_name)
        session.merge(movie_list)
        title, year = split_title_year(options.movie_title)
        console('Trying to lookup movie %s title' % title)
        entry = lookup_movie(title=title, session=session, identifiers=options.identifiers)
        if not entry:
            console('movie lookup failed for movie %s, aborting')
            return
        title = entry['movie_name']
        movie = get_movie_by_title(list_id=movie_list.id, title=title, session=session)
        if not movie:
            console("Adding movie with title {} to list {}".format(title, movie_list.name))
            movie = MovieListMovie(title=entry['movie_name'], year=year, list_id=movie_list.id)
        else:
            console("Movie with title {} already exist in list {}".format(title, movie_list.name))

        id_list = []
        if options.identifiers:
            id_list = options.identifiers
        else:
            for _id in MovieListBase().supported_ids:
                if entry.get(_id):
                    id_list.append({_id: entry.get(_id)})
        if id_list:
            console('Setting movie identifiers:', id_list)
            movie.ids = get_db_movie_identifiers(identifier_list=id_list, session=session)
        session.merge(movie)

    console('Successfully added movie {} to movie list {} '.format(title, movie_list.name))
예제 #6
0
파일: movie_list.py 프로젝트: umeku/Flexget
def movie_list_purge(options, session=None):
    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('Deleting list %s' % options.list_name)
    session.delete(movie_list)
예제 #7
0
def movie_list_purge(options):
    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('Deleting list %s' % options.list_name)
        session.delete(movie_list)
예제 #8
0
def movie_list_purge(options):
    with Session() as session:
        try:
            movie_list = plugin_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('Deleting list {}'.format(options.list_name))
        session.delete(movie_list)
예제 #9
0
def movie_list_add(options):
    with Session() as session:
        try:
            movie_list = plugin_movie_list.get_list_by_exact_name(
                options.list_name, session=session)
        except NoResultFound:
            console('Could not find movie list with name {}, creating'.format(
                options.list_name))
            movie_list = plugin_movie_list.MovieListList(
                name=options.list_name)
            session.add(movie_list)
            session.commit()

        title, year = split_title_year(options.movie_title)
        console('Trying to lookup movie title: `{}`'.format(title))
        movie_lookup = lookup_movie(title=title,
                                    session=session,
                                    identifiers=options.identifiers)
        if not movie_lookup:
            console('ERROR: movie lookup failed for movie {}, aborting'.format(
                options.movie_title))
            return

        title = movie_lookup['movie_name']
        movie = plugin_movie_list.get_movie_by_title_and_year(
            list_id=movie_list.id, title=title, year=year, session=session)
        if not movie:
            console("Adding movie with title {} to list {}".format(
                title, movie_list.name))
            movie = plugin_movie_list.MovieListMovie(title=title,
                                                     year=year,
                                                     list_id=movie_list.id)
        else:
            console("Movie with title {} already exist in list {}".format(
                title, movie_list.name))

        id_list = []
        if options.identifiers:
            id_list = options.identifiers
        else:
            for _id in plugin_movie_list.MovieListBase().supported_ids:
                if movie_lookup.get(_id):
                    id_list.append({_id: movie_lookup.get(_id)})
        if id_list:
            console('Setting movie identifiers:')
            for ident in id_list:
                for key in ident:
                    console('{}: {}'.format(key, ident[key]))
            movie.ids = plugin_movie_list.get_db_movie_identifiers(
                identifier_list=id_list, session=session)
        session.merge(movie)
        console('Successfully added movie {} to movie list {} '.format(
            title, movie_list.name))
예제 #10
0
파일: movie_list.py 프로젝트: umeku/Flexget
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)
예제 #11
0
파일: movie_list.py 프로젝트: umeku/Flexget
def movie_list_del(options, session=None):
    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
    title, year = split_title_year(options.movie_title)
    movie_exist = get_movie_by_title(list_id=movie_list.id, title=title, session=session)
    if movie_exist:
        console('Removing movie %s from list %s' % (options.movie_title, options.list_name))
        session.delete(movie_exist)
    else:
        console('Could not find movie with title %s in list %s' % (options.movie_title, options.list_name))
        return
예제 #12
0
def movie_list_del(options):
    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
        title = split_title_year(options.movie_title)[0]
        movie_exist = get_movie_by_title(list_id=movie_list.id, title=title, session=session)
        if movie_exist:
            console('Removing movie %s from list %s' % (options.movie_title, options.list_name))
            session.delete(movie_exist)
        else:
            console('Could not find movie with title %s in list %s' % (options.movie_title, options.list_name))
            return
예제 #13
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)
예제 #14
0
 def post(self, session=None):
     """ Create a new list """
     data = request.json
     name = data.get('name')
     try:
         movie_list = ml.get_list_by_exact_name(name=name, session=session)
     except NoResultFound:
         movie_list = None
     if movie_list:
         raise Conflict('list with name \'%s\' already exists' % name)
     movie_list = ml.MovieListList(name=name)
     session.add(movie_list)
     session.commit()
     resp = jsonify(movie_list.to_dict())
     resp.status_code = 201
     return resp
예제 #15
0
 def post(self, session=None):
     """ Create a new list """
     data = request.json
     name = data.get("name")
     try:
         movie_list = ml.get_list_by_exact_name(name=name, session=session)
     except NoResultFound:
         movie_list = None
     if movie_list:
         raise Conflict("list with name '%s' already exists" % name)
     movie_list = ml.MovieListList(name=name)
     session.add(movie_list)
     session.commit()
     resp = jsonify(movie_list.to_dict())
     resp.status_code = 201
     return resp
예제 #16
0
 def post(self, session=None):
     """ Create a new list """
     data = request.json
     name = data.get('name')
     try:
         movie_list = ml.get_list_by_exact_name(name=name, session=session)
     except NoResultFound:
         movie_list = None
     if movie_list:
         return {'status': 'error',
                 'message': "list with name '%s' already exists" % name}, 500
     movie_list = ml.MovieListList(name=name)
     session.add(movie_list)
     session.commit()
     resp = jsonify(movie_list.to_dict())
     resp.status_code = 201
     return resp
예제 #17
0
def movie_list_del(options):
    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

        try:
            movie_exist = get_movie_by_id(list_id=movie_list.id, movie_id=int(options.movie), session=session)
        except NoResultFound:
            console('Could not find movie with ID {} in list `{}`'.format(int(options.movie), options.list_name))
            return
        except ValueError:
            title, year = split_title_year(options.movie)
            movie_exist = get_movie_by_title_and_year(list_id=movie_list.id, title=title, year=year, session=session)
        if not movie_exist:
            console('Could not find movie with title {} in list {}'.format(options.movie, options.list_name))
            return
        else:
            console('Removing movie {} from list {}'.format(movie_exist.title, options.list_name))
            session.delete(movie_exist)
예제 #18
0
def movie_list_add(options):
    with Session() as session:
        try:
            movie_list = get_list_by_exact_name(options.list_name, session=session)
        except NoResultFound:
            console("Could not find movie list with name {}, creating".format(options.list_name))
            movie_list = MovieListList(name=options.list_name)
            session.add(movie_list)
            session.commit()
        title, year = split_title_year(options.movie_title)
        console("Trying to lookup movie title: `{}`".format(title))
        movie = lookup_movie(title=title, session=session, identifiers=options.identifiers)
        if not movie:
            console("ERROR: movie lookup failed for movie {}, aborting".format(options.movie_title))
            return
        title = movie["movie_name"]
        movie = get_movie_by_title_and_year(list_id=movie_list.id, title=title, year=year, session=session)
        if not movie:
            console("Adding movie with title {} to list {}".format(title, movie_list.name))
            movie = MovieListMovie(title=movie["movie_name"], year=year, list_id=movie_list.id)
        else:
            console("Movie with title {} already exist in list {}".format(title, movie_list.name))

        id_list = []
        if options.identifiers:
            id_list = options.identifiers
        else:
            for _id in MovieListBase().supported_ids:
                if movie.get(_id):
                    id_list.append({_id: movie.get(_id)})
        if id_list:
            console("Setting movie identifiers:")
            for ident in id_list:
                for key in ident:
                    console("{}: {}".format(key, ident[key]))
            movie.ids = get_db_movie_identifiers(identifier_list=id_list, session=session)
        session.merge(movie)
        console("Successfully added movie {} to movie list {} ".format(title, movie_list.name))
예제 #19
0
파일: movie_list.py 프로젝트: Davst/Flexget
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))