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)
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)
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))
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))
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)
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)
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)
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))
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)
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
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
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)
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
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
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
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)
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))
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))