From 7e4c86b921f5fdef3bd49533b9e85a558f72c310 Mon Sep 17 00:00:00 2001 From: Ray Lyon Date: Sat, 19 Feb 2022 20:15:49 -0500 Subject: [PATCH] Error handling and spelling correction --- streaming-check/movie_check.py | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/streaming-check/movie_check.py b/streaming-check/movie_check.py index f863ad1..1e2a861 100644 --- a/streaming-check/movie_check.py +++ b/streaming-check/movie_check.py @@ -4,6 +4,7 @@ import requests import urllib from datetime import datetime import os +import sys tmdb_api_token = os.environ.get("TMDB_API_TOKEN") sa_api_token = os.environ.get("SA_API_TOKEN") @@ -21,10 +22,15 @@ sa_headers = { 'x-rapidapi-key': sa_api_token } -movie = "12 angry men" +movie = "finch" 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() + +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_tile = tmdb_search['results'][0]['title'] movie_release = datetime.strptime(tmdb_search['results'][0]['release_date'], "%Y-%m-%d") @@ -34,14 +40,33 @@ sa_response = requests.request("GET", sa_url, headers=sa_headers, params=sa_quer 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})") +if not services: + print("Movie not available for streaming :(") for s in services: countries = sa_response["streamingInfo"][s] for c in countries: leaving_epoch = sa_response["streamingInfo"][s][c]["leaving"] leaving_date = datetime.fromtimestamp(int(leaving_epoch)).strftime('%Y-%m-%d') link = sa_response["streamingInfo"][s][c]["link"] - print(f"Available on {s}") + print(f"Available on {services_speller(s)}") if leaving_epoch != 0: print(f"Will be leaving {s} on {leaving_date}") print(f"Watch here: {link}") \ No newline at end of file