mirror of
https://github.com/morpheus65535/bazarr
synced 2025-03-15 00:18:48 +00:00
Fixed improper update of providers pool when forced subtitles are involved. #1977
This commit is contained in:
parent
15f0e502a5
commit
0b8274ec3e
3 changed files with 22 additions and 23 deletions
|
@ -17,7 +17,7 @@ from languages.get_languages import alpha3_from_alpha2
|
|||
from subtitles.tools.score import movie_score, series_score
|
||||
|
||||
from .pool import update_pools, _get_pool
|
||||
from .utils import get_video, _get_lang_obj, _get_scores
|
||||
from .utils import get_video, _get_lang_obj, _get_scores, _set_forced_providers
|
||||
from .processing import process_subtitle
|
||||
|
||||
|
||||
|
@ -39,8 +39,9 @@ def generate_subtitles(path, languages, audio_language, sceneName, title, media_
|
|||
|
||||
language_set = _get_language_obj(languages=languages)
|
||||
hi_required = any([x.hi for x in language_set])
|
||||
forced_required = any([x.forced for x in language_set])
|
||||
_set_forced_providers(forced_required=forced_required, pool=pool)
|
||||
also_forced = any([x.forced for x in language_set])
|
||||
forced_required = all([x.forced for x in language_set])
|
||||
_set_forced_providers(pool=pool, also_forced=also_forced, forced_required=forced_required)
|
||||
|
||||
video = get_video(force_unicode(path), title, sceneName, providers=providers, media_type=media_type)
|
||||
|
||||
|
@ -140,16 +141,3 @@ def _get_language_obj(languages):
|
|||
language_set.add(lang_obj)
|
||||
|
||||
return language_set
|
||||
|
||||
|
||||
def _set_forced_providers(forced_required, pool):
|
||||
# TODO: maybe a separate pool for forced configs? only_foreign is hardcoded
|
||||
# in get_providers and this causes updating the pool on every call
|
||||
if forced_required:
|
||||
pool.provider_configs.update(
|
||||
{
|
||||
"podnapisi": {"only_foreign": True},
|
||||
"subscene": {"only_foreign": True},
|
||||
"opensubtitles": {"only_foreign": True}
|
||||
}
|
||||
)
|
||||
|
|
|
@ -20,7 +20,7 @@ from app.database import get_profiles_list
|
|||
from subtitles.tools.score import movie_score, series_score
|
||||
|
||||
from .pool import update_pools, _get_pool, _init_pool
|
||||
from .utils import get_video, _get_lang_obj, _get_scores
|
||||
from .utils import get_video, _get_lang_obj, _get_scores, _set_forced_providers
|
||||
from .processing import process_subtitle
|
||||
|
||||
|
||||
|
@ -34,7 +34,8 @@ def manual_search(path, profile_id, providers, sceneName, title, media_type):
|
|||
|
||||
language_set, initial_language_set, original_format = _get_language_obj(profile_id=profile_id)
|
||||
also_forced = any([x.forced for x in initial_language_set])
|
||||
_set_forced_providers(also_forced=also_forced, pool=pool)
|
||||
forced_required = all([x.forced for x in initial_language_set])
|
||||
_set_forced_providers(pool=pool, also_forced=also_forced, forced_required=forced_required)
|
||||
|
||||
if providers:
|
||||
video = get_video(force_unicode(path), title, sceneName, providers=providers, media_type=media_type)
|
||||
|
@ -264,8 +265,3 @@ def _get_language_obj(profile_id):
|
|||
language_set.add(lang_obj_hi)
|
||||
|
||||
return language_set, initial_language_set, original_format
|
||||
|
||||
|
||||
def _set_forced_providers(also_forced, pool):
|
||||
if also_forced:
|
||||
pool.provider_configs.update({'podnapisi': {'also_foreign': True}, 'opensubtitles': {'also_foreign': True}})
|
||||
|
|
|
@ -84,3 +84,18 @@ def get_ban_list(profile_id):
|
|||
return {'must_contain': profile['mustContain'] or [],
|
||||
'must_not_contain': profile['mustNotContain'] or []}
|
||||
return None
|
||||
|
||||
|
||||
def _set_forced_providers(pool, also_forced=False, forced_required=False):
|
||||
# TODO: maybe a separate pool for forced configs? also_foreign/only_foreign is hardcoded
|
||||
# in get_providers and this causes updating the pool on every call
|
||||
if also_forced and forced_required:
|
||||
logging.debug('also_forced and forced_required cannot be both True. also_forced will prevail.')
|
||||
forced_required = False
|
||||
pool.provider_configs.update(
|
||||
{
|
||||
"podnapisi": {'also_foreign': also_forced, "only_foreign": forced_required},
|
||||
"subscene": {"only_foreign": forced_required},
|
||||
"opensubtitles": {'also_foreign': also_forced, "only_foreign": forced_required}
|
||||
}
|
||||
)
|
||||
|
|
Loading…
Add table
Reference in a new issue