From 1a44dbc31a2ed1be4d42ad4e3e97916c737f94fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Louis=20V=C3=A9zina?= <5130500+morpheus65535@users.noreply.github.com> Date: Sun, 15 Mar 2020 09:05:51 -0400 Subject: [PATCH] Fix for #841 --- bazarr/get_languages.py | 44 +++++++++++++++++++++++++++++++++++++++++ bazarr/main.py | 4 +++- 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/bazarr/get_languages.py b/bazarr/get_languages.py index 5e61e789e..4e8250640 100644 --- a/bazarr/get_languages.py +++ b/bazarr/get_languages.py @@ -3,6 +3,7 @@ from __future__ import absolute_import import os import pycountry +import ast from get_args import args from subzero.language import Language @@ -76,5 +77,48 @@ def get_language_set(): return language_set +def clean_desired_languages(): + from list_subtitles import list_missing_subtitles, list_missing_subtitles_movies + enabled_languages = [] + enabled_languages_temp = database.execute("SELECT code2 FROM table_settings_languages WHERE enabled=1") + for language in enabled_languages_temp: + enabled_languages.append(language['code2']) + + series_languages = database.execute("SELECT sonarrSeriesId, languages FROM table_shows") + movies_languages = database.execute("SELECT radarrId, languages FROM table_movies") + + for item in series_languages: + if item['languages'] != 'None': + try: + languages_list = ast.literal_eval(item['languages']) + except: + pass + else: + cleaned_languages_list = [] + for language in languages_list: + if language in enabled_languages: + cleaned_languages_list.append(language) + if cleaned_languages_list != languages_list: + database.execute("UPDATE table_shows SET languages=? WHERE sonarrSeriesId=?", + (str(cleaned_languages_list), item['sonarrSeriesId'])) + list_missing_subtitles(no=item['sonarrSeriesId']) + + for item in movies_languages: + if item['languages'] != 'None': + try: + languages_list = ast.literal_eval(item['languages']) + except: + pass + else: + cleaned_languages_list = [] + for language in languages_list: + if language in enabled_languages: + cleaned_languages_list.append(language) + if cleaned_languages_list != languages_list: + database.execute("UPDATE table_movies SET languages=? WHERE radarrId=?", + (str(cleaned_languages_list), item['radarrId'])) + list_missing_subtitles_movies(no=item['radarrId']) + + if __name__ == '__main__': load_language_in_db() diff --git a/bazarr/main.py b/bazarr/main.py index 87a27862d..853b337fc 100644 --- a/bazarr/main.py +++ b/bazarr/main.py @@ -47,7 +47,7 @@ from beaker.middleware import SessionMiddleware from cork import Cork from bottle import route, template, static_file, request, redirect, response, HTTPError, app, hook, abort from datetime import timedelta, datetime -from get_languages import load_language_in_db, language_from_alpha3, language_from_alpha2, alpha2_from_alpha3 +from get_languages import load_language_in_db, language_from_alpha3, language_from_alpha2, alpha2_from_alpha3, clean_desired_languages from get_providers import get_providers, get_providers_auth, list_throttled_providers from get_series import * @@ -1625,6 +1625,8 @@ def save_settings(): database.execute("UPDATE table_settings_notifier SET enabled=?, url=? WHERE name=?", (enabled,notifier_url,notifier['name'])) + clean_desired_languages() + scheduler.update_configurable_tasks() logging.info('BAZARR Settings saved succesfully.')