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