from misc.log import logger import json import requests log = logger.get_logger(__name__) def get_rating(apikey, movie): ratings_exist = False imdb_id = movie['movie']['ids']['imdb'] if imdb_id: log.debug("Requesting info from OMDB for \'%s (%d)\' | Genres: %s | Country: %s | IMDB ID: %s", movie['movie']['title'], movie['movie']['year'], ', '.join(movie['movie']['genres']), (movie['movie']['country'] or 'N/A').upper(), imdb_id) r = requests.get('http://www.omdbapi.com/?i=' + imdb_id + '&apikey=' + apikey) if r.status_code == 200 and json.loads(r.text)["Response"] == 'True': log.debug("Successfully requested ratings from OMDB for \'%s (%d)\' | Genres: %s | Country: %s" + " | IMDB ID: %s", movie['movie']['title'], movie['movie']['year'], ', '.join(movie['movie']['genres']), (movie['movie']['country'] or 'N/A').upper(), imdb_id) for source in json.loads(r.text)["Ratings"]: if source['Source'] == 'Rotten Tomatoes': # noinspection PyUnusedLocal ratings_exist = True log.debug("Rotten Tomatoes score of %s for \'%s (%d)\' | Genres: %s | Country: %s | IMDB ID: %s ", source['Value'], movie['movie']['title'], movie['movie']['year'], ', '.join(movie['movie']['genres']), (movie['movie']['country'] or 'N/A').upper(), imdb_id) return int(source['Value'].split('%')[0]) if not ratings_exist: log.debug("No Rotten Tomatoes score found for \'%s (%d)\' | Genres: %s | Country: %s | IMDB ID: %s ", movie['movie']['title'], movie['movie']['year'], ', '.join(movie['movie']['genres']), (movie['movie']['country'] or 'N/A').upper(), imdb_id) else: log.debug("Error encountered when requesting ratings from OMDB for \'%s (%d)\' | Genres: %s | Country: %s" + " | IMDB ID: %s", movie['movie']['title'], movie['movie']['year'], ', '.join(movie['movie']['genres']), (movie['movie']['country'] or 'N/A').upper(), imdb_id) else: log.debug("Skipping \'%s (%d)\' | Genres: %s | Country: %s as it does not have an IMDB ID", movie['movie']['title'], movie['movie']['year'], ', '.join(movie['movie']['genres']), (movie['movie']['country'] or 'N/A').upper()) return -1