def populateHulu(): i = 0 while i < 5: print "Hulu page: " + str(i) fo = open('hulu/hulu_' + str(i) + '.json', 'r') json_list = json.load(fo) for result in json_list['results']: if result['themoviedb'] == 0 or result['imdb'] is None or result[ 'poster_400x570'] == 'http://static-api.guidebox.com/misc/default_movie_400x570.jpg': continue e = Movie.objects.filter(identifier=int(result['id'])) if len(e) == 0: m = Movie(identifier=result['id'], themoviedb=result['themoviedb'], imdb=result['imdb'], rating=result['rating'], rottentomatoes=result['rottentomatoes'], metacritic=result['metacritic'], common_sense_media=result['common_sense_media'], poster=result['poster_400x570'], title=result['title'], date=result['release_year'], hulu_available=True) m.save() else: obj = Movie.objects.get(identifier=int(result['id'])) obj.hulu_available = True obj.save() i += 1 print "Done populating Hulu"
def getAmazonMovies(): """ Get a list of Amazon Prime movies from GuideBox and populates the database Args: None Returns: None """ amazon_movie_count = 250 movie_offset = 0 added_count = 0 while amazon_movie_count > 0: #movies = guidebox.Movie.list(offset=movie_offset, limit=250, source='amazon_prime') movies = guidebox.Movie.list(offset=movie_offset, limit=10, sources='amazon_prime') list = json.loads(movies.__str__()) movie_offset += 250 #amazon_movie_count = list['total_results'] - movie_offset amazon_movie_count -= movie_offset for result in list['results']: e = Movie.objects.filter(identifier=int(result['id'])) # Only do this if movie does not exist in the database if len(e) == 0: m = Movie(identifier=result['id'], themoviedb=result['themoviedb'], imdb=result['imdb'], rating=result['rating'], rottentomatoes=result['rottentomatoes'], metacritic=result['metacritic'], common_sense_media=result['common_sense_media'], poster=result['poster_400x570'], title=result['title'], date=result['release_year'], amazon_available=True) m.save() added_count += 1 else: obj = Movie.objects.get(identifier=int(result['id'])) obj.amazon_available = True obj.save() logging.debug('Added ' + added_count.__str__() + ' new movies to the database from Amazon Prime')
def populateMovies(movies): list = json.loads(movies.__str__()) genres = tmdb.Genres().list() for genre in genres['genres']: if len(Genre.objects.filter(identifier=int(genre['id']))) == 0: g = Genre(identifier=int(genre['id']), name=genre['name']) g.save() for movie in list['results']: e = Movie.objects.filter(identifier=int(movie['id'])) if len(e) == 0: tmdb_data = tmdb.Movies(movie['themoviedb']).info() tmdb_videos = tmdb.Movies(movie['themoviedb']).videos() tmdb_keywords = tmdb.Movies(movie['themoviedb']).keywords() hulu_link = None netflix_link = None amazon_link = None movie_detail = guidebox.Movie.retrieve(movie['id']) detail = json.loads(movie_detail.__str__()) genre_list = [] for genre in tmdb_data['genres']: genre_list.append(Genre.objects.get(identifier=genre['id'])) person_list = [] for actor in detail['cast']: if len(Person.objects.filter( identifier=int(actor['id']))) == 0: p = Person(identifier=int(actor['id']), name=actor['name']) person_list.append(p) p.save() else: person_list.append( Person.objects.filter(name=actor['name'])[0]) for director in detail['directors']: if len(Person.objects.filter( identifier=int(director['id']))) == 0: d = Person(identifier=int(director['id']), name=director['name']) person_list.append(d) d.save() else: person_list.append( Person.objects.filter(name=director['name'])[0]) for writer in detail['writers']: if len(Person.objects.filter( identifier=int(writer['id']))) == 0: w = Person(identifier=int(writer['id']), name=writer['name']) person_list.append(w) w.save() else: person_list.append( Person.objects.filter(name=writer['name'])[0]) language_list = [] for language in tmdb_data['spoken_languages']: if len(Language.objects.filter( name=language['iso_639_1'])) == 0: l = Language(name=language['iso_639_1']) language_list.append(l) l.save() else: language_list.append( Language.objects.filter(name=language['iso_639_1'])[0]) keywords_list = [] for keyword in tmdb_keywords['keywords']: if len(Keyword.objects.filter(name=keyword['name'])) == 0: k = Keyword(name=keyword['name']) keywords_list.append(k) k.save() else: keywords_list.append( Keyword.objects.filter(name=keyword['name'])[0]) if tmdb_videos['results'][0]['site'] == 'YouTube': main_trailer = 'https://www.youtube.com/embed/' + tmdb_videos[ 'results'][0]['key'] else: main_trailer = detail['trailers']['web'][0]['embed'] for each in detail['subscription_web_sources']: if each['source'] == 'hulu_plus': hulu_link = each['link'] elif each['source'] == 'netflix': netflix_link = each['link'] elif each['source'] == 'shudder_amazon_prime': amazon_link = each['link'] m = Movie(identifier=movie['id'], themoviedb=movie['themoviedb'], imdb=movie['imdb'], rating=movie['rating'], rottentomatoes=movie['rottentomatoes'], wikipedia_id=movie['wikipedia_id'], metacritic=movie['metacritic'], common_sense_media=movie['common_sense_media'], poster=movie['poster_400x570'], title=movie['title'], summary=detail['overview'], runtime=tmdb_data['runtime'], budget=tmdb_data['budget'], vote_count=tmdb_data['vote_count'], vote_average=tmdb_data['vote_average'], popularity=tmdb_data['popularity'], date=movie['release_year'], netflix=netflix_link, amazon=amazon_link, hulu=hulu_link, trailer=main_trailer) m.save() m.genre.add(*genre_list) m.people.add(*person_list) m.languages.add(*language_list) m.keywords.add(*keywords_list) m.save()