def search_anime(self, name, genre=None): resource = 'v3/search/anime?' genre_id = TYPE_GENRE['anime'] params = {"q": name} if genre is not None: if str(genre).isdigit(): params.update({"genre": genre}) else: genre = genre_id.get(genre, None) # traduz nosso dicionário python nos parametros de busca HTTP query_string = urlencode(params) full_url = f'{self.URL}{resource}{query_string}' print(full_url) response = self.client.get(full_url) # Not Found if response.status_code == 404: raise AnimeNotFoundException(name) # Service Unavailable elif response.status_code == 503: raise ServiceUnavailable() return response
def get_top_mal(self, top_type): resource = 'v3/top/' # traduz nosso dicionário python nos parametros de busca HTTP full_url = f'{self.URL}{resource}{top_type}' print(full_url) response = self.client.get(full_url) # Not Found if response.status_code == 404 or response.status_code == 400: raise TopNotFoundException() # Service Unavailable elif response.status_code == 503: raise ServiceUnavailable() return response
def search_person_works(self, name): resource = 'v3/search/people?' # traduz nosso dicionário python nos parametros de busca HTTP query_string = urlencode({'q': name}) full_url = f'{self.URL}{resource}{query_string}' response = self.client.get(full_url) print(full_url) # Not Found if response.status_code == 404: raise MangaNotFoundException(name) # Service Unavailable elif response.status_code == 503: raise ServiceUnavailable() return response
def list_animes_from_season(self, year, season): resource = 'v3/season/' # traduz nosso dicionário python nos parametros de busca HTTP query_string = f'{year}/{season}' full_url = f'{self.URL}{resource}{query_string}' print(full_url) response = self.client.get(full_url) # Not Found if response.status_code == 404: raise SeasonNotFoundException(year, season) # Service Unavailable elif response.status_code == 503: raise ServiceUnavailable() return response
def search_person(self, name): resource = 'v3/search/people?' # traduz nosso dicionário python nos parametros de busca HTTP query_string = urlencode({'q': name}) full_url = f'{self.URL}{resource}{query_string}' print(full_url) response = self.client.get(full_url) # Not Found if response.status_code == 404: raise PersonNotFoundException(name) # Service Unavailable elif response.status_code == 503: raise ServiceUnavailable() return response response = response.json() all_persons_id = list() for p in response.get('results'): all_persons_id.append(p.get('mal_id')) results = list() resource = 'v3/person/' for person in all_persons_id: full_url = f'{self.URL}{resource}{person}' rs = self.client.get(full_url).json() rs = self.delete_unused_entries(rs) results.append(rs) return results