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
Beispiel #3
0
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
Beispiel #5
0
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
Beispiel #6
0
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
Beispiel #7
0
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