diff --git a/bazarr/get_subtitle.py b/bazarr/get_subtitle.py
index 39565e9d9..39af5ca66 100644
--- a/bazarr/get_subtitle.py
+++ b/bazarr/get_subtitle.py
@@ -119,14 +119,26 @@ def download_subtitle(path, language, hi, forced, providers, providers_auth, sce
lang_obj = Language('por', 'BR')
if forced == "True":
lang_obj.forced = True
+ providers_auth['podnapisi']['only_foreign'] = True
+ providers_auth['subscene']['only_foreign'] = True
+ providers_auth['opensubtitles']['only_foreign'] = True
else:
lang_obj.forced = False
+ providers_auth['podnapisi']['only_foreign'] = False
+ providers_auth['subscene']['only_foreign'] = False
+ providers_auth['opensubtitles']['only_foreign'] = False
else:
lang_obj = Language(l)
if forced == "True":
lang_obj.forced = True
+ providers_auth['podnapisi']['only_foreign'] = True
+ providers_auth['subscene']['only_foreign'] = True
+ providers_auth['opensubtitles']['only_foreign'] = True
else:
lang_obj.forced = False
+ providers_auth['podnapisi']['only_foreign'] = False
+ providers_auth['subscene']['only_foreign'] = False
+ providers_auth['opensubtitles']['only_foreign'] = False
language_set.add(lang_obj)
use_scenename = settings.general.getboolean('use_scenename')
@@ -273,14 +285,26 @@ def manual_search(path, language, hi, forced, providers, providers_auth, sceneNa
lang_obj = Language('por', 'BR')
if forced == "True":
lang_obj.forced = True
+ providers_auth['podnapisi']['only_foreign'] = True
+ providers_auth['subscene']['only_foreign'] = True
+ providers_auth['opensubtitles']['only_foreign'] = True
else:
lang_obj.forced = False
+ providers_auth['podnapisi']['only_foreign'] = False
+ providers_auth['subscene']['only_foreign'] = False
+ providers_auth['opensubtitles']['only_foreign'] = False
else:
lang_obj = Language(lang)
if forced == "True":
lang_obj.forced = True
+ providers_auth['podnapisi']['only_foreign'] = True
+ providers_auth['subscene']['only_foreign'] = True
+ providers_auth['opensubtitles']['only_foreign'] = True
else:
lang_obj.forced = False
+ providers_auth['podnapisi']['only_foreign'] = False
+ providers_auth['subscene']['only_foreign'] = False
+ providers_auth['opensubtitles']['only_foreign'] = False
language_set.add(lang_obj)
use_scenename = settings.general.getboolean('use_scenename')
@@ -301,7 +325,6 @@ def manual_search(path, language, hi, forced, providers, providers_auth, sceneNa
provider_configs=providers_auth,
throttle_callback=provider_throttle,
language_hook=None) # fixme
- print subtitles
else:
subtitles = []
logging.info("BAZARR All providers are throttled")
diff --git a/bazarr/list_subtitles.py b/bazarr/list_subtitles.py
index 01cd5f3b5..3589dfb4a 100644
--- a/bazarr/list_subtitles.py
+++ b/bazarr/list_subtitles.py
@@ -215,7 +215,7 @@ def list_missing_subtitles(*no):
conn_db = sqlite3.connect(os.path.join(args.config_dir, 'db', 'bazarr.db'), timeout=30)
c_db = conn_db.cursor()
episodes_subtitles = c_db.execute(
- "SELECT table_episodes.sonarrEpisodeId, table_episodes.subtitles, table_shows.languages FROM table_episodes INNER JOIN table_shows on table_episodes.sonarrSeriesId = table_shows.sonarrSeriesId" + query_string).fetchall()
+ "SELECT table_episodes.sonarrEpisodeId, table_episodes.subtitles, table_shows.languages, table_shows.forced FROM table_episodes INNER JOIN table_shows on table_episodes.sonarrSeriesId = table_shows.sonarrSeriesId" + query_string).fetchall()
c_db.close()
missing_subtitles_global = []
@@ -235,6 +235,9 @@ def list_missing_subtitles(*no):
actual_subtitles.append(subtitle)
if episode_subtitles[2] is not None:
desired_subtitles = ast.literal_eval(episode_subtitles[2])
+ if episode_subtitles[3] == "True" and desired_subtitles is not None:
+ for i, desired_subtitle in enumerate(desired_subtitles):
+ desired_subtitles[i] = desired_subtitle + ":forced"
actual_subtitles_list = []
if desired_subtitles is None:
missing_subtitles_global.append(tuple(['[]', episode_subtitles[0]]))
@@ -263,7 +266,7 @@ def list_missing_subtitles_movies(*no):
pass
conn_db = sqlite3.connect(os.path.join(args.config_dir, 'db', 'bazarr.db'), timeout=30)
c_db = conn_db.cursor()
- movies_subtitles = c_db.execute("SELECT radarrId, subtitles, languages FROM table_movies" + query_string).fetchall()
+ movies_subtitles = c_db.execute("SELECT radarrId, subtitles, languages, forced FROM table_movies" + query_string).fetchall()
c_db.close()
missing_subtitles_global = []
@@ -283,6 +286,9 @@ def list_missing_subtitles_movies(*no):
actual_subtitles.append(subtitle)
if movie_subtitles[2] is not None:
desired_subtitles = ast.literal_eval(movie_subtitles[2])
+ if movie_subtitles[3] == "True" and desired_subtitles is not None:
+ for i, desired_subtitle in enumerate(desired_subtitles):
+ desired_subtitles[i] = desired_subtitle + ":forced"
actual_subtitles_list = []
if desired_subtitles is None:
missing_subtitles_global.append(tuple(['[]', movie_subtitles[0]]))
diff --git a/views/episodes.tpl b/views/episodes.tpl
index 1dfec49a9..08348e59e 100644
--- a/views/episodes.tpl
+++ b/views/episodes.tpl
@@ -227,17 +227,17 @@
if missing_languages is not None:
from get_subtitle import search_active
for language in missing_languages:
- if episode[10] is not None and settings.general.getboolean('adaptive_searching') and language in episode[10]:
+ if episode[10] is not None and settings.general.getboolean('adaptive_searching') and language in episode[10]:
for lang in ast.literal_eval(episode[10]):
if language in lang:
- if search_active(lang[1]):
+ if search_active(lang[1]):
%>
-
+ 1 else "False"}}" data-sonarrSeriesId="{{episode[5]}}" data-sonarrEpisodeId="{{episode[7]}}" class="get_subtitle ui tiny label">
{{language}}
%else:
-
+ 1 else "False"}}" data-sonarrSeriesId="{{episode[5]}}" data-sonarrEpisodeId="{{episode[7]}}" class="get_subtitle ui tiny label">
{{language}}
@@ -245,7 +245,7 @@
%end
%end
%else:
-
+ 1 else "False"}}" data-sonarrSeriesId="{{episode[5]}}" data-sonarrEpisodeId="{{episode[7]}}" class="get_subtitle ui tiny label">
{{language}}
diff --git a/views/movie.tpl b/views/movie.tpl
index aeb879239..409e70f5f 100644
--- a/views/movie.tpl
+++ b/views/movie.tpl
@@ -193,18 +193,24 @@
<%
for missing_subs_language in missing_subs_languages:
+ if len(missing_subs_language) > 2:
+ forced = missing_subs_language[2]
+ else:
+ forced = False
+ end
+
if details[14] is not None and settings.general.getboolean('adaptive_searching') and missing_subs_language in details[14]:
for lang in ast.literal_eval(details[14]):
if missing_subs_language in lang:
if search_active(lang[1]):
%>
-
- {{language_from_alpha2(str(missing_subs_language))}}
+
+ {{!'' if forced else ''}}{{language_from_alpha2(str(missing_subs_language.split(':')[0]))}}
%else:
-
- {{language_from_alpha2(str(missing_subs_language))}}
+
+ {{!'' if forced else ''}}{{language_from_alpha2(str(missing_subs_language.split(':')[0]))}}
<%
@@ -213,8 +219,8 @@
end
else:
%>
-
- {{language_from_alpha2(str(missing_subs_language))}}
+
+ {{!'' if forced else ''}}{{language_from_alpha2(str(missing_subs_language.split(':')[0]))}}
<%