3 Commits

Author SHA1 Message Date
c3cde35d32 user input for movie title 2022-02-20 00:02:39 -05:00
35d75c4b69 Rating check from TMDB 2022-02-19 23:53:20 -05:00
7e4c86b921 Error handling and spelling correction 2022-02-19 20:15:49 -05:00

View File

@@ -21,27 +21,54 @@ sa_headers = {
'x-rapidapi-key': sa_api_token 'x-rapidapi-key': sa_api_token
} }
movie = "12 angry men" movie = input("Enter a movie: ")
movie_safe = urllib.parse.quote_plus(movie) movie_safe = urllib.parse.quote_plus(movie)
tmdb_search = requests.get(f"{tmdb_url}/search/movie?language=en-US&query={movie_safe}&page=1&include_adult=false", headers=tmdb_headers).json() tmdb_search = requests.get(f"{tmdb_url}/search/movie?language=en-US&query={movie_safe}&page=1&include_adult=false", headers=tmdb_headers).json()
if not tmdb_search["results"]:
print("I'm having trouble finding that movie. Check your spelling and try again.")
exit()
movie_id = tmdb_search['results'][0]['id'] movie_id = tmdb_search['results'][0]['id']
movie_tile = tmdb_search['results'][0]['title'] movie_tile = tmdb_search['results'][0]['title']
movie_release = datetime.strptime(tmdb_search['results'][0]['release_date'], "%Y-%m-%d") movie_release = datetime.strptime(tmdb_search['results'][0]['release_date'], "%Y-%m-%d")
movie_rating = tmdb_search['results'][0]['vote_average']
sa_querystring = {"country":"us","tmdb_id":f"movie/{movie_id}","output_language":"en"} sa_querystring = {"country":"us","tmdb_id":f"movie/{movie_id}","output_language":"en"}
sa_response = requests.request("GET", sa_url, headers=sa_headers, params=sa_querystring).json() sa_response = requests.request("GET", sa_url, headers=sa_headers, params=sa_querystring).json()
services = sa_response["streamingInfo"] services = sa_response["streamingInfo"]
def services_speller(service):
if service == "hbo":
service_proper = "HBO Max"
if service == "hulu":
service_proper = "Hulu"
if service == "prime":
service_proper = "Amazon Prime"
if service == "netflix":
service_proper = "Netflix"
if service == "disney":
service_proper = "Disney+"
if service == "apple":
service_proper = "Apple TV+"
return service_proper
print(movie_tile + f" ({movie_release.year})") print(movie_tile + f" ({movie_release.year})")
print(f"Rating: {movie_rating}")
if not services:
print("Streaming not available :(")
for s in services: for s in services:
countries = sa_response["streamingInfo"][s] countries = sa_response["streamingInfo"][s]
for c in countries: for c in countries:
leaving_epoch = sa_response["streamingInfo"][s][c]["leaving"] leaving_epoch = sa_response["streamingInfo"][s][c]["leaving"]
leaving_date = datetime.fromtimestamp(int(leaving_epoch)).strftime('%Y-%m-%d') leaving_date = datetime.fromtimestamp(int(leaving_epoch)).strftime('%Y-%m-%d')
link = sa_response["streamingInfo"][s][c]["link"] link = sa_response["streamingInfo"][s][c]["link"]
print(f"Available on {s}") print(f"Available on {services_speller(s)}")
if leaving_epoch != 0: if leaving_epoch != 0:
print(f"Will be leaving {s} on {leaving_date}") print(f"Will be leaving {s} on {leaving_date}")
print(f"Watch here: {link}") print(f"Watch here: {link}")