Exemplo n.º 1
0
def get_IMDB_movie_data(movie_title):
    """
    Returns the following information of a title:
        IMDB rating
        release quarter
        genres
        MPAA rating
        awards
    """
    # Get movie data from IMDB API
    ia = IMDb()
    res = ia._search_movie(movie_title, results=True)
    movie_ID = res[0][0]
    if res[0][1]['title'] != movie_title:
        print('Titles do not exactly match: ', movie_title, res[0][1]['title'])
    movie = ia.get_movie(movie_ID)
    rating = movie.data['rating']
    release_date = movie.data['original air date'].split(" (")[0]
    try:
        release_quarter = quarter(release_date)
    except:  # when release month not (yet) specified
        release_quarter = 1
    genres = [genre.lower() for genre in movie.data['genres']]
    MPAA = [
        c.split(':')[1] for c in movie.data['certificates']
        if (c.startswith('United States') or 'USA' in c)
    ][0]
    awards = dict()
    award_data = ia.get_movie_awards(movie_ID)['data']['awards']
    for nom in award_data:

        if nom['award'] == 'PGA Award':
            if 'PGA' not in awards.keys():
                awards['PGA'] = {'categories': [], 'results': [], 'to': []}
            if 'notes' in nom.keys():
                awards['PGA']['categories'].append(nom['notes'])
            else:
                awards['PGA']['categories'].append(nom['category'])
            awards['PGA']['results'].append(nom['result'])
            if 'to' in nom.keys():
                awards['PGA']['to'].append([str(n) for n in nom['to']])
            else:
                awards['PGA']['to'].append([])

        elif nom['award'] == 'BAFTA Film Award':
            if 'BAFTA' not in awards.keys():
                awards['BAFTA'] = {'categories': [], 'results': [], 'to': []}
            if 'notes' in nom.keys():
                awards['BAFTA']['categories'].append(nom['notes'])
            else:
                awards['BAFTA']['categories'].append(nom['category'])
            awards['BAFTA']['results'].append(nom['result'])
            if 'to' in nom.keys():
                awards['BAFTA']['to'].append([str(n) for n in nom['to']])
            else:
                awards['BAFTA']['to'].append([])

        elif nom['award'] == 'Golden Globe':
            if 'Golden Globe' not in awards.keys():
                awards['Golden Globe'] = {
                    'categories': [],
                    'results': [],
                    'to': []
                }
            if 'notes' in nom.keys():
                awards['Golden Globe']['categories'].append(nom['notes'])
            else:
                awards['Golden Globe']['categories'].append(nom['category'])
            awards['Golden Globe']['results'].append(nom['result'])
            if 'to' in nom.keys():
                awards['Golden Globe']['to'].append(
                    [str(n) for n in nom['to']])
            else:
                awards['Golden Globe']['to'].append([])

        elif nom['award'] in ['Academy Awards, USA', 'Oscar']:
            if 'Oscar' not in awards.keys():
                awards['Oscar'] = {'categories': [], 'results': [], 'to': []}
            if 'notes' in nom.keys():
                awards['Oscar']['categories'].append(nom['notes'])
            else:
                awards['Oscar']['categories'].append(nom['category'])
            awards['Oscar']['results'].append(nom['result'])
            if 'to' in nom.keys():
                awards['Oscar']['to'].append([str(n) for n in nom['to']])
            else:
                awards['Oscar']['to'].append([])

        elif nom['award'] == 'Critics Choice Award':
            if 'Critics Choice' not in awards.keys():
                awards['Critics Choice'] = {
                    'categories': [],
                    'results': [],
                    'to': []
                }
            if 'notes' in nom.keys():
                awards['Critics Choice']['categories'].append(nom['notes'])
            else:
                awards['Critics Choice']['categories'].append(nom['category'])
            awards['Critics Choice']['results'].append(nom['result'])
            if 'to' in nom.keys():
                awards['Critics Choice']['to'].append(
                    [str(n) for n in nom['to']])
            else:
                awards['Critics Choice']['to'].append([])

        elif nom['award'] == 'DGA Award':
            if 'DGA' not in awards.keys():
                awards['DGA'] = {'categories': [], 'results': [], 'to': []}
            if 'notes' in nom.keys():
                awards['DGA']['categories'].append(nom['notes'])
            else:
                awards['DGA']['categories'].append(nom['category'])
            awards['DGA']['results'].append(nom['result'])
            if 'to' in nom.keys():
                awards['DGA']['to'].append([str(n) for n in nom['to']])
            else:
                awards['DGA']['to'].append([])

        elif (nom['category'] == 'Screen Actors Guild Awards') or (
                nom['award'] == 'Screen Actors Guild Awards'):
            if 'SAG' not in awards.keys():
                awards['SAG'] = {'categories': [], 'results': [], 'to': []}
            if 'notes' in nom.keys():
                awards['SAG']['categories'].append(nom['notes'])
            else:
                awards['SAG']['categories'].append(nom['category'])
            awards['SAG']['results'].append(nom['result'])
            if 'to' in nom.keys():
                awards['SAG']['to'].append([str(n) for n in nom['to']])
            else:
                awards['SAG']['to'].append([])

    return rating, release_date, release_quarter, genres, MPAA, awards