コード例 #1
0
ファイル: providers.py プロジェクト: toroidal-code/mnamer
 def _search_movie(
     self, name: str, year: int
 ) -> Generator[MetadataMovie, None, None]:
     assert self.api_key
     year_from, year_to = year_range_parse(year)
     found = False
     page = 1
     page_max = 10  # each page yields a maximum of 10 results
     while True:
         try:
             response = omdb_search(
                 api_key=self.api_key,
                 media=MediaType.MOVIE.value,
                 query=name,
                 page=page,
                 cache=self.cache,
             )
         except MnamerNotFoundException:
             break
         for entry in response["Search"]:
             if year_from <= int(entry["Year"]) <= year_to:
                 yield from self._lookup_movie(entry["imdbID"])
                 found = True
         if page >= page_max:
             break
         page += 1
     if not found:
         raise MnamerNotFoundException
コード例 #2
0
ファイル: providers.py プロジェクト: jybp/mnamer
 def _search_name(self, name: str, year: Optional[int]):
     year_from, year_to = year_range_parse(year)
     page = 1
     page_max = 5  # each page yields a maximum of 20 results
     found = False
     while True:
         response = tmdb_search_movies(self.api_key,
                                       name,
                                       year,
                                       page=page,
                                       cache=self.cache)
         for entry in response["results"]:
             try:
                 meta = MetadataMovie(
                     id_tmdb=entry["id"],
                     name=entry["title"],
                     synopsis=entry["overview"],
                     year=entry["release_date"],
                 )
                 if year_from <= meta.year <= year_to:
                     yield meta
                     found = True
             except (AttributeError, KeyError, TypeError, ValueError):
                 continue
         if page == response["total_pages"]:
             break
         elif page >= page_max:
             break
         page += 1
     if not found:
         raise MnamerNotFoundException