core: update to subliminal_patch:head; subscene: explicitly set account filters for languages

pull/479/head^2
panni 6 years ago
parent 702038c191
commit 3d8e8ee59b

@ -125,7 +125,7 @@ class SubsceneProvider(Provider, ProviderSubtitleArchiveMixin):
username = None username = None
password = None password = None
search_throttle = 5 # seconds search_throttle = 8 # seconds
def __init__(self, only_foreign=False, username=None, password=None): def __init__(self, only_foreign=False, username=None, password=None):
if not all((username, password)): if not all((username, password)):
@ -202,12 +202,20 @@ class SubsceneProvider(Provider, ProviderSubtitleArchiveMixin):
def _create_filters(self, languages): def _create_filters(self, languages):
self.filters = dict(HearingImpaired="2") self.filters = dict(HearingImpaired="2")
acc_filters = self.filters.copy()
if self.only_foreign: if self.only_foreign:
self.filters["ForeignOnly"] = "True" self.filters["ForeignOnly"] = "True"
acc_filters["ForeignOnly"] = self.filters["ForeignOnly"].lower()
logger.info("Only searching for foreign/forced subtitles") logger.info("Only searching for foreign/forced subtitles")
self.filters["LanguageFilter"] = ",".join((str(language_ids[l.alpha3]) for l in languages acc_filters["SelectedIds"] = [str(language_ids[l.alpha3]) for l in languages if l.alpha3 in language_ids]
if l.alpha3 in language_ids)) self.filters["LanguageFilter"] = ",".join(acc_filters["SelectedIds"])
last_filters = region.get("subscene_filters")
if last_filters != acc_filters:
region.set("subscene_filters", acc_filters)
logger.debug("Setting account filters to %r", acc_filters)
self.session.post("https://u.subscene.com/filter", acc_filters, allow_redirects=False)
logger.debug("Filter created: '%s'" % self.filters) logger.debug("Filter created: '%s'" % self.filters)
@ -289,9 +297,10 @@ class SubsceneProvider(Provider, ProviderSubtitleArchiveMixin):
# re-search for episodes without explicit release name # re-search for episodes without explicit release name
if isinstance(video, Episode): if isinstance(video, Episode):
titles = list(set([video.series] + video.alternative_series))[:2]
# term = u"%s S%02iE%02i" % (video.series, video.season, video.episode) # term = u"%s S%02iE%02i" % (video.series, video.season, video.episode)
more_than_one = len([video.series] + video.alternative_series) > 1 more_than_one = len(titles) > 1
for series in set([video.series] + video.alternative_series): 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 for alternative results: %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)
@ -317,8 +326,9 @@ class SubsceneProvider(Provider, ProviderSubtitleArchiveMixin):
if more_than_one: if more_than_one:
time.sleep(self.search_throttle) time.sleep(self.search_throttle)
else: else:
more_than_one = len([video.title] + video.alternative_titles) > 1 titles = list(set([video.title] + video.alternative_titles))[:2]
for title in set([video.title] + video.alternative_titles): more_than_one = len(titles) > 1
for title in titles:
logger.debug('Searching for movie results: %r', title) logger.debug('Searching for movie results: %r', title)
film = self.do_search(title, year=video.year, session=self.session, limit_to=None, release=False, film = self.do_search(title, year=video.year, session=self.session, limit_to=None, release=False,
throttle=self.search_throttle) throttle=self.search_throttle)

Loading…
Cancel
Save