Beispiel #1
0
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"
Beispiel #2
0
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')
Beispiel #3
0
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()