|
@@ -29,46 +29,45 @@ class Authorization: |
|
|
params["hash"] = digest |
|
|
params["hash"] = digest |
|
|
return params |
|
|
return params |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CharacterDescriptionGetter: |
|
|
|
|
|
|
|
|
class InformationRetriever: |
|
|
base_url = "http://gateway.marvel.com/v1/public" |
|
|
base_url = "http://gateway.marvel.com/v1/public" |
|
|
|
|
|
|
|
|
def __init__(self, auth): |
|
|
def __init__(self, auth): |
|
|
self.auth = auth |
|
|
self.auth = auth |
|
|
|
|
|
|
|
|
def get_character_description(self, name): |
|
|
|
|
|
|
|
|
def make_request(self, path, query_params): |
|
|
params = self.auth.generate_params() |
|
|
params = self.auth.generate_params() |
|
|
params["name"] = name |
|
|
|
|
|
url = CharacterDescriptionGetter.base_url + "/characters" |
|
|
|
|
|
|
|
|
params.update(query_params) |
|
|
|
|
|
url = InformationRetriever.base_url + path |
|
|
response = requests.get(url, params=params) |
|
|
response = requests.get(url, params=params) |
|
|
status_code = response.status_code |
|
|
status_code = response.status_code |
|
|
if status_code != 200: |
|
|
if status_code != 200: |
|
|
sys.exit("got status: " + str(status_code)) |
|
|
sys.exit("got status: " + str(status_code)) |
|
|
body = response.json() |
|
|
body = response.json() |
|
|
description = body["data"]["results"][0]["description"] |
|
|
|
|
|
attribution = body["attributionText"] |
|
|
attribution = body["attributionText"] |
|
|
return (description, attribution) |
|
|
|
|
|
|
|
|
return (body, attribution) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CreatorNumberOfSeriesGetter: |
|
|
|
|
|
base_url = "http://gateway.marvel.com/v1/public" |
|
|
|
|
|
|
|
|
class CharacterDescriptionGetter(InformationRetriever): |
|
|
|
|
|
|
|
|
|
|
|
def get_character_description(self, name): |
|
|
|
|
|
params = {"name": name} |
|
|
|
|
|
body, attribution = self.make_request("/characters", params) |
|
|
|
|
|
first_result = body["data"]["results"][0] |
|
|
|
|
|
description = first_result["description"] |
|
|
|
|
|
return (description, attribution) |
|
|
|
|
|
|
|
|
def __init__(self, auth): |
|
|
|
|
|
self.auth = auth |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CreatorNumberOfSeriesGetter(InformationRetriever): |
|
|
|
|
|
|
|
|
def get_number_of_series(self, first_name, last_name): |
|
|
def get_number_of_series(self, first_name, last_name): |
|
|
params = self.auth.generate_params() |
|
|
|
|
|
params["firstName"] = first_name |
|
|
|
|
|
params["lastName"] = last_name |
|
|
|
|
|
url = CreatorNumberOfSeriesGetter.base_url + "/creators" |
|
|
|
|
|
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() |
|
|
|
|
|
result = body["data"]["results"][0] |
|
|
|
|
|
attribution = body["attributionText"] |
|
|
|
|
|
return result["series"]["available"], attribution |
|
|
|
|
|
|
|
|
params = { |
|
|
|
|
|
"firstName": first_name, |
|
|
|
|
|
"lastName": last_name, |
|
|
|
|
|
} |
|
|
|
|
|
body, attribution = self.make_request("/creators", params) |
|
|
|
|
|
first_result = body["data"]["results"][0] |
|
|
|
|
|
return (first_result["series"]["available"], attribution) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Display: |
|
|
class Display: |
|
|