|
@@ -43,8 +43,8 @@ class Client: |
|
|
params = self.auth.generate_params() |
|
|
params = self.auth.generate_params() |
|
|
params.update(query.params()) |
|
|
params.update(query.params()) |
|
|
query_string = urllib.parse.urlencode(params) |
|
|
query_string = urllib.parse.urlencode(params) |
|
|
full_url = Client.base_url + query.path() + "?" + query_string |
|
|
|
|
|
with urllib.request.urlopen(full_url) as response: |
|
|
|
|
|
|
|
|
full_url = Client.base_url + query.path() + "?" + query_string |
|
|
|
|
|
with urllib.request.urlopen(full_url) as response: |
|
|
status_code = response.getcode() |
|
|
status_code = response.getcode() |
|
|
if status_code != 200: |
|
|
if status_code != 200: |
|
|
sys.exit("got status: " + str(status_code)) |
|
|
sys.exit("got status: " + str(status_code)) |
|
@@ -81,14 +81,12 @@ class Query(metaclass=abc.ABCMeta): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CharacterDescription(Query): |
|
|
class CharacterDescription(Query): |
|
|
|
|
|
|
|
|
def __init__(self, name): |
|
|
def __init__(self, name): |
|
|
self.name = name |
|
|
self.name = name |
|
|
|
|
|
|
|
|
def get_character_description(self, name): |
|
|
def get_character_description(self, name): |
|
|
params = {"name": name} |
|
|
params = {"name": name} |
|
|
body, attribution = self.make_request("/characters", |
|
|
|
|
|
params) |
|
|
|
|
|
|
|
|
body, attribution = self.make_request("/characters", params) |
|
|
first_result = body["data"]["results"][0] |
|
|
first_result = body["data"]["results"][0] |
|
|
description = first_result["description"] |
|
|
description = first_result["description"] |
|
|
return (description, attribution) |
|
|
return (description, attribution) |
|
@@ -109,23 +107,18 @@ class CharacterDescription(Query): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CreatorNumberOfSeries(Query): |
|
|
class CreatorNumberOfSeries(Query): |
|
|
|
|
|
|
|
|
def __init__(self, first_name, last_name): |
|
|
def __init__(self, first_name, last_name): |
|
|
self.first_name = first_name |
|
|
self.first_name = first_name |
|
|
self.last_name = last_name |
|
|
self.last_name = last_name |
|
|
|
|
|
|
|
|
def get_number_of_series(self, first_name, last_name): |
|
|
def get_number_of_series(self, first_name, last_name): |
|
|
params = { |
|
|
|
|
|
"firstName": first_name, |
|
|
|
|
|
"lastName": last_name, |
|
|
|
|
|
} |
|
|
|
|
|
body, attribution = self.make_request("/creators", |
|
|
|
|
|
params) |
|
|
|
|
|
|
|
|
params = {"firstName": first_name, "lastName": last_name} |
|
|
|
|
|
body, attribution = self.make_request("/creators", params) |
|
|
first_result = body["data"]["results"][0] |
|
|
first_result = body["data"]["results"][0] |
|
|
return (first_result["series"]["available"], attribution) |
|
|
return (first_result["series"]["available"], attribution) |
|
|
|
|
|
|
|
|
def params(self): |
|
|
def params(self): |
|
|
return { "firstName": self.first_name, "lastName": self.last_name } |
|
|
|
|
|
|
|
|
return {"firstName": self.first_name, "lastName": self.last_name} |
|
|
|
|
|
|
|
|
def path(self): |
|
|
def path(self): |
|
|
return "/creators" |
|
|
return "/creators" |
|
@@ -136,11 +129,8 @@ class CreatorNumberOfSeries(Query): |
|
|
|
|
|
|
|
|
def text(self, response): |
|
|
def text(self, response): |
|
|
return "{} {} worked on {} series".format( |
|
|
return "{} {} worked on {} series".format( |
|
|
self.first_name, |
|
|
|
|
|
self.last_name, |
|
|
|
|
|
response |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.first_name, self.last_name, response |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def main(): |
|
|
def main(): |
|
@@ -159,7 +149,7 @@ def main(): |
|
|
sys.exit("Unkwnon query type: {}".format(query_type)) |
|
|
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) |
|
|
text = query.text(response) |
|
|
text = query.text(response) |
|
|
|
|
|
|
|
|
terminal_size = shutil.get_terminal_size() |
|
|
terminal_size = shutil.get_terminal_size() |
|
|