Пример #1
0
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
Пример #2
0
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	
Пример #3
0
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
Пример #4
0
 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()]})
Пример #5
0
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()
Пример #6
0
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   
Пример #7
0
    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
        })
Пример #8
0
    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)