| @@ -1,8 +1,10 @@ | |||||
| import abc | import abc | ||||
| import hashlib | import hashlib | ||||
| import requests | |||||
| import json | |||||
| import shutil | import shutil | ||||
| import time | import time | ||||
| import urllib.parse | |||||
| import urllib.request | |||||
| import textwrap | import textwrap | ||||
| import sys | import sys | ||||
| @@ -41,11 +43,13 @@ class Client: | |||||
| params = self.auth.generate_params() | params = self.auth.generate_params() | ||||
| params.update(query.params()) | params.update(query.params()) | ||||
| url = Client.base_url + query.path() | url = Client.base_url + query.path() | ||||
| response = requests.get(url, params=params) | |||||
| status_code = response.status_code | |||||
| if status_code != 200: | |||||
| sys.exit("got status: " + str(status_code)) | |||||
| body = response.json() | |||||
| url_query = urllib.parse.urlencode(params) | |||||
| full_url = url + "?" + url_query | |||||
| with urllib.request.urlopen(full_url) as response: | |||||
| status_code = response.getcode() | |||||
| if status_code != 200: | |||||
| sys.exit("got status: " + str(status_code)) | |||||
| body = json.loads(response.read()) | |||||
| attribution = body["attributionText"] | attribution = body["attributionText"] | ||||
| response = query.extract(body) | response = query.extract(body) | ||||
| return (response, attribution) | return (response, attribution) | ||||
| @@ -132,7 +136,12 @@ class CreatorNumberOfSeries(Query): | |||||
| return first_result["series"]["available"] | return first_result["series"]["available"] | ||||
| def text(self, response): | def text(self, response): | ||||
| return f"{self.first_name} {self.last_name} worked on {response} series" | |||||
| return "{} {} worked on {} series".format( | |||||
| self.first_name, | |||||
| self.last_name, | |||||
| response | |||||
| ) | |||||
| def main(): | def main(): | ||||
| @@ -147,6 +156,8 @@ def main(): | |||||
| first_name = sys.argv[2] | first_name = sys.argv[2] | ||||
| last_name = sys.argv[3] | last_name = sys.argv[3] | ||||
| query = CreatorNumberOfSeries(first_name, last_name) | query = CreatorNumberOfSeries(first_name, last_name) | ||||
| else: | |||||
| sys.exit("Unkwnon query type: {}".format(query_type)) | |||||
| client = Client(auth) | client = Client(auth) | ||||
| response,attribution = client.make_request(query) | response,attribution = client.make_request(query) | ||||