mirror of
https://github.com/morpheus65535/bazarr.git
synced 2025-01-06 06:52:07 +08:00
Improved Subscene provider with single season series. #1510
This commit is contained in:
parent
a5ecd84605
commit
8ae5e5483e
1 changed files with 15 additions and 32 deletions
|
@ -29,7 +29,7 @@ from subliminal_patch.providers import Provider
|
||||||
from subliminal_patch.providers.mixins import ProviderSubtitleArchiveMixin
|
from subliminal_patch.providers.mixins import ProviderSubtitleArchiveMixin
|
||||||
from subliminal_patch.subtitle import Subtitle, guess_matches
|
from subliminal_patch.subtitle import Subtitle, guess_matches
|
||||||
from subliminal_patch.converters.subscene import language_ids, supported_languages
|
from subliminal_patch.converters.subscene import language_ids, supported_languages
|
||||||
from subscene_api.subscene import search, Subtitle as APISubtitle, SITE_DOMAIN
|
from subscene_api.subscene import search, SearchTypes, Subtitle as APISubtitle, SITE_DOMAIN
|
||||||
from subzero.language import Language
|
from subzero.language import Language
|
||||||
|
|
||||||
p = inflect.engine()
|
p = inflect.engine()
|
||||||
|
@ -90,6 +90,10 @@ class SubsceneSubtitle(Subtitle):
|
||||||
logger.debug("%r is a pack", self)
|
logger.debug("%r is a pack", self)
|
||||||
self.is_pack = True
|
self.is_pack = True
|
||||||
|
|
||||||
|
if "title" in guess and "year" in matches:
|
||||||
|
if video.series in guess['title']:
|
||||||
|
matches.add("series")
|
||||||
|
|
||||||
# movie
|
# movie
|
||||||
else:
|
else:
|
||||||
guess = guessit(self.release_info, {'type': 'movie'})
|
guess = guessit(self.release_info, {'type': 'movie'})
|
||||||
|
@ -312,47 +316,26 @@ class SubsceneProvider(Provider, ProviderSubtitleArchiveMixin):
|
||||||
region.delete("subscene_cookies2")
|
region.delete("subscene_cookies2")
|
||||||
|
|
||||||
def query(self, video):
|
def query(self, video):
|
||||||
# vfn = get_video_filename(video)
|
|
||||||
subtitles = []
|
subtitles = []
|
||||||
# logger.debug(u"Searching for: %s", vfn)
|
|
||||||
# film = search(vfn, session=self.session)
|
|
||||||
#
|
|
||||||
# if film and film.subtitles:
|
|
||||||
# logger.debug('Release results found: %s', len(film.subtitles))
|
|
||||||
# subtitles = self.parse_results(video, film)
|
|
||||||
# else:
|
|
||||||
# logger.debug('No release results found')
|
|
||||||
|
|
||||||
# time.sleep(self.search_throttle)
|
|
||||||
|
|
||||||
# re-search for episodes without explicit release name
|
|
||||||
if isinstance(video, Episode):
|
if isinstance(video, Episode):
|
||||||
titles = list(set([video.series] + video.alternative_series[:1]))
|
titles = list(set([video.series] + video.alternative_series[:1]))
|
||||||
# term = u"%s S%02iE%02i" % (video.series, video.season, video.episode)
|
|
||||||
more_than_one = len(titles) > 1
|
more_than_one = len(titles) > 1
|
||||||
for series in titles:
|
for series in titles:
|
||||||
term = u"%s - %s Season" % (series, p.number_to_words("%sth" % video.season).capitalize())
|
term = u"%s - %s Season" % (series, p.number_to_words("%sth" % video.season).capitalize())
|
||||||
logger.debug('Searching for alternative results: %s', term)
|
logger.debug('Searching with series and season: %s', term)
|
||||||
film = self.do_search(term, session=self.session, release=False, throttle=self.search_throttle)
|
film = self.do_search(term, session=self.session, release=False, throttle=self.search_throttle,
|
||||||
|
limit_to=SearchTypes.TvSerie)
|
||||||
|
if not film and video.season == 1:
|
||||||
|
logger.debug('Searching with series name: %s', series)
|
||||||
|
film = self.do_search(series, session=self.session, release=False, throttle=self.search_throttle,
|
||||||
|
limit_to=SearchTypes.TvSerie)
|
||||||
|
|
||||||
if film and film.subtitles:
|
if film and film.subtitles:
|
||||||
logger.debug('Alternative results found: %s', len(film.subtitles))
|
logger.debug('Searching found: %s', len(film.subtitles))
|
||||||
subtitles += self.parse_results(video, film)
|
subtitles += self.parse_results(video, film)
|
||||||
else:
|
else:
|
||||||
logger.debug('No alternative results found')
|
logger.debug('No results found')
|
||||||
|
|
||||||
# packs
|
|
||||||
# if video.season_fully_aired:
|
|
||||||
# term = u"%s S%02i" % (series, video.season)
|
|
||||||
# logger.debug('Searching for packs: %s', term)
|
|
||||||
# time.sleep(self.search_throttle)
|
|
||||||
# film = search(term, session=self.session, throttle=self.search_throttle)
|
|
||||||
# if film and film.subtitles:
|
|
||||||
# logger.debug('Pack results found: %s', len(film.subtitles))
|
|
||||||
# subtitles += self.parse_results(video, film)
|
|
||||||
# else:
|
|
||||||
# logger.debug('No pack results found')
|
|
||||||
# else:
|
|
||||||
# logger.debug("Not searching for packs, because the season hasn't fully aired")
|
|
||||||
if more_than_one:
|
if more_than_one:
|
||||||
time.sleep(self.search_throttle)
|
time.sleep(self.search_throttle)
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Reference in a new issue