def fetchDetailsTheMovieDB(identifiers): movie=Movie() movie.sourceID=identifiers.sourceID movie.source=identifiers.source url=theMovieDBUrl + '/movie/' + str(identifiers.sourceID) + '?api_key=' + movieDBKey data=safeRequestJSON(url) reviewsUrl=theMovieDBUrl + '/movie/' + str(identifiers.sourceID) + '/reviews?api_key=' + movieDBKey try: movie.year = data['release_date'][:4] except: movie.year ='' try: movie.title = data['title'] except: movie.title ='' try: movie.numReviews=safeRequestJSON(reviewsUrl)['total_results'] except: movie.numReviews=0 try: movie.description=data['overview'] if data['overview'] else '' except: movie.description='' actorsUrl=theMovieDBUrl + '/movie/' + str(identifiers.sourceID) + '/credits?api_key=' + movieDBKey try: actors=safeRequestJSON(actorsUrl)['cast'] movie.actors='' for actor in actors[:numOfStarringActorsDB]: if actor !=actors[numOfStarringActorsDB-1]: movie.actors+=actor['name'] + actorsDelimiter else: movie.actors+=actor['name'] except: movie.actors='' return movie
def fetchDetailsRottenTomatoes(identifiers): movie=Movie() movie.sourceID=identifiers.sourceID movie.source=identifiers.source url=rottenTomatoesUrl +'/movies/' + str(identifiers.sourceID) + '.json?apikey=' + rottenKey data=safeRequestJSON(url) reviewsUrl=rottenTomatoesUrl +'/movies/' + str(identifiers.sourceID) + '/reviews.json?apikey=' + rottenKey try: movie.year = str(data['year']) except: movie.year ='' try: movie.title = data['title'] except: movie.title ='' try: movie.numReviews=safeRequestJSON(reviewsUrl)['total'] except: movie.numReviews=0 try: movie.description=data['synopsis'] if data['synopsis'] else '' except: movie.description='' try: movie.actors='' for actor in data['abridged_cast']: if actor !=data['abridged_cast'][-1]: movie.actors+=actor['name'] + actorsDelimiter else: movie.actors+=actor['name'] except: movie.actors='' return movie
def add_movie(payload): body = request.get_json() if not body: abort(400) if not ('title' in body and 'release_date' in body): abort(400) title = body['title'] release_date = body['release_date'] if 'actors' in body: actors = body['actors'] actors_list = [] for i in range(len(actors)): actor = Actor.query.filter(Actor.name == actors[i]).first() if not (actor is None): actors_list.append(actor) try: movie = Movie(title=title, release_date=release_date) if 'actors' in body: movie.actors = actors_list movie.insert() except Exception: print(sys.exc_info()) abort(422) else: return jsonify({'success': True, 'movie': title}), 201
def add_movie(jwt): body = request.get_json() try: title = body.get('title', None) release_date = body.get('release_date', None) actors = body.get('actors', None) except Exception: abort(422) if not title or not release_date: abort(422) try: new_movie = Movie(title=title, release_date=release_date) if actors is not None: new_movie.actors = [] for actor in actors: name = actor.get('name') age = actor.get('age') gender = actor.get('gender') if not name or not age or not gender: abort(422) actor_found = Actor.query.filter( and_(Actor.name == name, Actor.age == age, Actor.gender == gender)).first() if actor_found is not None: new_movie.actors.append(actor_found) else: new_actor = Actor(name=name, age=age, gender=gender) new_movie.actors.append(new_actor) new_movie.insert() except Exception: abort(422) return jsonify({'success': True, 'result': [new_movie.format_long()]})
def seed(): """Creating initial few records in our database""" actor1 = Actor(name='Actor-1', age=35, gender='Male') actor2 = Actor(name='Actor-2', age=40, gender='Feale') actor3 = Actor(name='Actor-3', age=45, gender='Male') actor1.insert() actor2.insert() actor3.insert() movie1 = Movie(title='Movie-1', release_date='01-01-1970') movie2 = Movie(title='Movie-2', release_date='01-01-1975') movie3 = Movie(title='Movie-3', release_date='01-01-1980') movie1.actors = [actor1, actor2] movie2.actors = [actor2, actor3] movie3.actors = [actor3, actor1] movie1.insert() movie2.insert() movie3.insert()
def aggregateMovies(first,second): commonIndexes=[] finalMovies=[] for firstMovie in first: finalMovie=Movie() finalMovie.title=firstMovie.title finalMovie.year=firstMovie.year for index,secondMovie in enumerate(second): if secondMovie.title==firstMovie.title and secondMovie.year==firstMovie.year: finalMovie.numReviews=secondMovie.numReviews+firstMovie.numReviews finalMovie.description=max([secondMovie.description,firstMovie.description], key=len) actorsList=set(firstMovie.actors.split(actorsDelimiter) + secondMovie.actors.split(actorsDelimiter)) actorsList = list(firstMovie.actors.split(actorsDelimiter)) actorsList.extend(x for x in secondMovie.actors.split(actorsDelimiter) if x not in actorsList) for actor in actorsList: if actor !=actorsList[-1]: finalMovie.actors+=actor + actorsDelimiter else: finalMovie.actors+=actor commonIndexes.append(index) break elif secondMovie==second[-1]: finalMovie.numReviews=firstMovie.numReviews finalMovie.description=firstMovie.description finalMovie.actors=firstMovie.actors finalMovies.append(finalMovie) for index,secondMovie in enumerate(second): if index not in commonIndexes: finalMovie=Movie() finalMovie.title=secondMovie.title finalMovie.year=secondMovie.year finalMovie.numReviews=secondMovie.numReviews finalMovie.description=secondMovie.description finalMovie.actors=secondMovie.actors finalMovies.append(finalMovie) return finalMovies
def add_new_movie(self): body = request.get_json() title = body.get('title', None) release_date = body.get('release_date', None) actors = Actor.query.filter(Actor.id.in_(body.get('actors', None))).all() print(actors) movie = Movie(title=title, release_date=release_date) movie.actors = actors movie.insert() movies = Movie.query.all() formatted_movies = [movie.format() for movie in movies] return jsonify({ 'success': True, 'movies': formatted_movies, 'total_movies': len(formatted_movies), 'created': movie.id })
def create_movie(token): body = request.get_json() new_title = body.get('title', None) new_release_date = body.get('release_date', None) new_actors = Actor.query.filter(Actor.id.in_( body.get('actors', None))).all() try: movie = Movie(title=new_title, release_date=new_release_date ) movie.actors = new_actors movie.insert() movies = Movie.query.order_by(Movie.id).all() formatted_movies = [movie.format() for movie in movies] return jsonify({ "success": True, "movies": formatted_movies }) except Exception: abort(422)