Coverage for models\imdb.py: 88%

Shortcuts on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

25 statements  

1""" 

2Acceso a la base de datos de películas de Internet Movie Database 

3Implementa las APIs SearchTitle, Reviews y Ratings 

4""" 

5import logging 

6import requests 

7 

8logger = logging.getLogger() 

9 

10 

11class IMDb: 

12 """Acceso a la base de datos de películas de Internet Movie Database""" 

13 

14 def __init__(self, apikey: str): 

15 self.apikey = apikey 

16 

17 def search_titles(self, title) -> dict: 

18 """Busca una película por título""" 

19 logger.info("Buscando en IMDb el título: %s", title) 

20 resultados = requests.get(f"https://imdb-api.com/API/SearchTitle/{self.apikey}/{title}") 

21 if resultados.status_code == 200: 

22 return resultados.json() 

23 return {} 

24 

25 def movie_reviews(self, imdb_id: str) -> dict: 

26 """Obtiene reseñas para una película""" 

27 logger.info("Buscando en IMDb las reseñas: %s", imdb_id) 

28 resultados = requests.get(f"https://imdb-api.com/API/Reviews/{self.apikey}/{imdb_id}") 

29 if resultados.status_code == 200: 29 ↛ 31line 29 didn't jump to line 31, because the condition on line 29 was never false

30 return resultados.json() 

31 return {} 

32 

33 def movie_ratings(self, imdb_id: str) -> dict: 

34 """Obtiene calificaciones para una película""" 

35 logger.info("Buscando en IMDb las calificaciones: %s", imdb_id) 

36 resultados = requests.get(f"https://imdb-api.com/API/Ratings/{self.apikey}/{imdb_id}") 

37 if resultados.status_code == 200: 37 ↛ 39line 37 didn't jump to line 39, because the condition on line 37 was never false

38 return resultados.json() 

39 return {}