Merge pull request #986 from ngosang/feature/argent

argenteam provider: fix null exception and improve scoring
This commit is contained in:
morpheus65535 2020-05-16 09:31:04 -04:00 committed by GitHub
commit 3b0eec371e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 24 additions and 19 deletions

View File

@ -76,9 +76,11 @@ class ArgenteamSubtitle(Subtitle):
if video.series and (sanitize(self.title) in ( if video.series and (sanitize(self.title) in (
sanitize(name) for name in [video.series] + video.alternative_series)): sanitize(name) for name in [video.series] + video.alternative_series)):
matches.add('series') matches.add('series')
# season # season
if video.season and self.season == video.season: if video.season and self.season == video.season:
matches.add('season') matches.add('season')
# episode # episode
if video.episode and self.episode == video.episode: if video.episode and self.episode == video.episode:
matches.add('episode') matches.add('episode')
@ -87,6 +89,9 @@ class ArgenteamSubtitle(Subtitle):
if video.tvdb_id and str(self.tvdb_id) == str(video.tvdb_id): if video.tvdb_id and str(self.tvdb_id) == str(video.tvdb_id):
matches.add('tvdb_id') matches.add('tvdb_id')
# year (year is not available for series, but we assume it matches)
matches.add('year')
elif isinstance(video, Movie) and self.movie_kind == 'movie': elif isinstance(video, Movie) and self.movie_kind == 'movie':
# title # title
if video.title and (sanitize(self.title) in ( if video.title and (sanitize(self.title) in (
@ -230,29 +235,29 @@ class ArgenteamProvider(Provider, ProviderSubtitleArchiveMixin):
has_multiple_ids = len(argenteam_ids) > 1 has_multiple_ids = len(argenteam_ids) > 1
for aid in argenteam_ids: for aid in argenteam_ids:
response = self.session.get(url, params={'id': aid}, timeout=10) response = self.session.get(url, params={'id': aid}, timeout=10)
response.raise_for_status() response.raise_for_status()
content = response.json() content = response.json()
imdb_id = year = None if content is not None: # eg https://argenteam.net/api/v1/episode?id=11534
returned_title = title imdb_id = year = None
if not is_episode and "info" in content: returned_title = title
imdb_id = content["info"].get("imdb") if not is_episode and "info" in content:
year = content["info"].get("year") imdb_id = content["info"].get("imdb")
returned_title = content["info"].get("title", title) year = content["info"].get("year")
returned_title = content["info"].get("title", title)
for r in content['releases']: for r in content['releases']:
for s in r['subtitles']: for s in r['subtitles']:
movie_kind = "episode" if is_episode else "movie" movie_kind = "episode" if is_episode else "movie"
page_link = self.BASE_URL + movie_kind + "/" + str(aid) page_link = self.BASE_URL + movie_kind + "/" + str(aid)
# use https and new domain # use https and new domain
download_link = s['uri'].replace('http://www.argenteam.net/', self.BASE_URL) download_link = s['uri'].replace('http://www.argenteam.net/', self.BASE_URL)
sub = ArgenteamSubtitle(language, page_link, download_link, movie_kind, returned_title, sub = ArgenteamSubtitle(language, page_link, download_link, movie_kind, returned_title,
season, episode, year, r.get('team'), r.get('tags'), season, episode, year, r.get('team'), r.get('tags'),
r.get('source'), r.get('codec'), content.get("tvdb"), imdb_id, r.get('source'), r.get('codec'), content.get("tvdb"), imdb_id,
asked_for_release_group=video.release_group, asked_for_release_group=video.release_group,
asked_for_episode=episode) asked_for_episode=episode)
subtitles.append(sub) subtitles.append(sub)
if has_multiple_ids: if has_multiple_ids:
time.sleep(self.multi_result_throttle) time.sleep(self.multi_result_throttle)