def get_filtered_ids(): list_api_url_1 = 'movies/watched/weekly?limit=100' req = trakt.get_oauth_request(list_api_url_1) # ignored config params config.VOTES config.YEAR config.RATING trakt_movies = [] for trakt_movie in req: #get movie ratings imdb = trakt_movie["movie"]["ids"]["imdb"] if not imdb: # Sometimes Trakt does not have imdbid for some movies continue movieinfo.movie_get_info(imdb) if not movieinfo.local_ratings[imdb].get('imdbRating'): print('No iMDB rating, ignoring:' + imdb) continue if movieinfo.local_ratings[imdb].get('metaRating'): metaRating = movieinfo.local_ratings[imdb]['metaRating'] else: metaRating = 100 if movieinfo.local_ratings[imdb].get('rottRating'): rottRating = movieinfo.local_ratings[imdb]['rottRating'] else: rottRating = 100 if (movieinfo.local_ratings[imdb]['year'] > (datetime.today().year - 2) and movieinfo.local_ratings[imdb]['imdbRating'] >= 6 and movieinfo.local_ratings[imdb]['imdbVotes'] >= 5000 and metaRating >= 50 and rottRating >= 50): trakt_movies.append(imdb) else: print('Not good... Ignoring: ' + imdb) return trakt_movies
def get_trakt_collection(): req = trakt.get_oauth_request('sync/collection/movies') trakt_movies = set() for movie in req: imdb = movie["movie"]["ids"]["imdb"] trakt_movies.add(imdb) return trakt_movies
def get_trakt_collection(list_id): req = trakt.get_oauth_request('users/me/lists/{0}/items'.format(list_id)) trakt_movies = set() for movie in req: imdb = movie["movie"]["ids"]["imdb"] trakt_movies.add(imdb) return trakt_movies
def get_trakt_ids(list_id): req = trakt.get_oauth_request('users/me/lists/{0}/items'.format(list_id)) trakt_movies = [] for movie in req: imdb = movie["movie"]["ids"]["imdb"] trakt_movies.append(imdb) return trakt_movies
def get_trakt_filtered_ids(list_id): req = trakt.get_oauth_request('users/me/lists/{0}/items'.format(list_id)) trakt_movies = [] for trakt_movie in req: #get movie ratings imdb = trakt_movie["movie"]["ids"]["imdb"] movieinfo.movie_get_info(imdb) if not movieinfo.local_ratings[imdb].get('imdbRating'): print('No iMDB rating, ignoring:' + imdb) continue if movieinfo.local_ratings[imdb].get('Bollywood'): bollywood = movieinfo.local_ratings[imdb]['Bollywood'] else: bollywood = 0 if movieinfo.local_ratings[imdb].get('metaRating'): metaRating = movieinfo.local_ratings[imdb]['metaRating'] else: metaRating = 100 if movieinfo.local_ratings[imdb].get('rottRating'): rottRating = movieinfo.local_ratings[imdb]['rottRating'] else: rottRating = 100 if (movieinfo.local_ratings[imdb]['year'] > (datetime.today().year - 2) and movieinfo.local_ratings[imdb]['imdbRating'] >= 6 and movieinfo.local_ratings[imdb]['imdbVotes'] >= 5000 \ and metaRating >= 50 and rottRating >= 50 and bollywood == 0): trakt_movies.append(imdb) else: print('Not good... Ignoring: ' + imdb) return trakt_movies
def get_imdb_ids(): filter_year = str(datetime.today().year - 2) list_api_url_1 = 'movies/watched/weekly?limit=20&genres=animation,anime,family&certifications=g,pg&years='+filter_year+'-2025' print(list_api_url_1) req = trakt.get_oauth_request(list_api_url_1) movies = [] for trakt_movie in req: imdb = trakt_movie["movie"]["ids"]["imdb"] #get movie ratings movieinfo.movie_get_info(imdb) if not movieinfo.local_ratings[imdb].get('imdbRating'): print('No iMDB rating, ignoring:'+imdb) continue if movieinfo.local_ratings[imdb].get('metaRating'): metaRating = movieinfo.local_ratings[imdb]['metaRating'] else: metaRating = 100 if movieinfo.local_ratings[imdb].get('rottRating'): rottRating = movieinfo.local_ratings[imdb]['rottRating'] else: rottRating = 100 if (movieinfo.local_ratings[imdb]['imdbRating'] >= 6 and movieinfo.local_ratings[imdb]['imdbVotes'] >= 5000 and metaRating >= 45 and rottRating >= 45): movies.append(imdb) else: print('Not good... Ignoring: '+imdb) return movies
def get_anticipated_ids(): list_api_url_1 = 'movies/anticipated/?limit=100' req = trakt.get_oauth_request(list_api_url_1) trakt_movies = [] for movie in req: imdb = movie["movie"]["ids"]["imdb"] trakt_movies.append(imdb) return trakt_movies
def get_rating_imdb_ids(rating): movies = set() i = 1 while i <= rating: list_api_url = 'users/me/ratings/movies/{0}'.format(i) req = trakt.get_oauth_request(list_api_url) for movie in req: imdb = movie["movie"]["ids"]["imdb"] movies.add(imdb) i += 1 return movies
def omdbapi_get_info(imdbid): if OMDB_APIKEY == 'NoNe': print('OMDB API KEY is not set!') return if not imdbid: print('imdb is not set!') return omdb_url = "http://www.omdbapi.com/?i={}&apikey={}&tomatoes=true".format(imdbid, OMDB_APIKEY) request = requests.get(omdb_url) data = request.json() if data['Response'] == 'False': print('OMDB returned error...') return local_ratings[imdbid] = {'year': int(data['Year']), 'updated': int(round(time.time() * 1000)) } ratings = data['Ratings'] for rating in ratings: if rating['Source'] == 'Rotten Tomatoes': local_ratings[imdbid]['rottRating'] = int(rating['Value'].replace("%","")) try: local_ratings[imdbid]['imdbRating'] = float(data['imdbRating']) local_ratings[imdbid]['imdbVotes'] = int(data['imdbVotes'].replace(",","")) except ValueError: pass try: # Trying directly from IMDB IMDB_URL = 'https://www.imdb.com/title/'+imdbid+'/' response = requests.get(IMDB_URL) soup = BeautifulSoup(response.text, "html.parser") local_ratings[imdbid]['imdbRating'] = float(soup.find(itemprop="ratingValue").get_text()) local_ratings[imdbid]['imdbVotes'] = int(soup.find(itemprop="ratingCount").get_text().replace(",","")) except: pass try: # Trying Rottentomatoes ratings directly from site ROTTEN_URL = data['tomatoURL'] if ROTTEN_URL == 'N/A': # Searching for Rotten URL print('No Rotten URL') RURL = '' MovieTitle = data['Title'] response = requests.get('https://www.rottentomatoes.com/api/private/v2.0/search?q='+MovieTitle+'&limit=10') rottenmovies = response.json() Confidence = 0 for rottenmovie in rottenmovies['movies']: tConfidence = SequenceMatcher(None, MovieTitle, rottenmovie['name'].split("(")[0]).ratio() if isinstance(rottenmovie['year'], int): if tConfidence > Confidence and (int(data['Year']) == int(rottenmovie['year']) or int(data['Year']) == int(rottenmovie['year']) + 1 or int(data['Year']) == int(rottenmovie['year']) -1): Confidence = tConfidence RURL = rottenmovie['url'] print('Best match {} with confidence: {}'.format(RURL, Confidence)) if Confidence > 0.9: ROTTEN_URL = 'https://www.rottentomatoes.com'+RURL print('Rotten URL:'+ROTTEN_URL) response = requests.get(ROTTEN_URL) soup = BeautifulSoup(response.text, "html.parser") #tomatometer result = soup.find('div', {'class': 'mop-ratings-wrap__half'}) rating = result.find('span', {'class': 'mop-ratings-wrap__percentage'}).get_text() local_ratings[imdbid]['rottRating'] = int(rating.strip().replace("%","")) #tomatoaudience result = soup.find('div', {'class': 'mop-ratings-wrap__half audience-score'}) rating = result.find('span', {'class': 'mop-ratings-wrap__percentage'}).get_text() local_ratings[imdbid]['rottAudience'] = int(rating.strip().replace("%","")) except: pass try: local_ratings[imdbid]['metaRating'] = int(data['Metascore']) except ValueError: pass try: local_ratings[imdbid]['Bollywood'] = 0 if data['Language'] == 'Hindi' and data['Country'] == 'India': local_ratings[imdbid]['Bollywood'] = 1 except ValueError: pass #TRAKT_RATINGS if TRAKT_RATINGS == 'True': try: list_api_url = 'movies/{0}/ratings'.format(imdbid) req = trakt.get_oauth_request(list_api_url) local_ratings[imdbid]['traktRating'] = int(req["rating"]*10) local_ratings[imdbid]['traktVotes'] = int(req["votes"]) except: pass return