diff --git a/bazarr.py b/bazarr.py index 1cd0237ef..6bae38d3e 100644 --- a/bazarr.py +++ b/bazarr.py @@ -745,6 +745,40 @@ def save_settings(): for item in settings_subliminal_languages: c.execute("UPDATE table_settings_languages SET enabled = '1' WHERE code2 = ?", (item,)) + settings_serie_default_enabled = request.forms.get('settings_serie_default_enabled') + if settings_serie_default_enabled is None: + settings_serie_default_enabled = 'False' + else: + settings_serie_default_enabled = 'True' + c.execute("UPDATE table_settings_general SET serie_default_enabled = ?", (settings_serie_default_enabled,)) + + settings_serie_default_languages = str(request.forms.getall('settings_serie_default_languages')) + c.execute("UPDATE table_settings_general SET serie_default_languages = ?", (settings_serie_default_languages,)) + + settings_serie_default_hi = request.forms.get('settings_serie_default_hi') + if settings_serie_default_hi is None: + settings_serie_default_hi = 'False' + else: + settings_serie_default_hi = 'True' + c.execute("UPDATE table_settings_general SET serie_default_hi = ?", (settings_serie_default_hi,)) + + settings_movie_default_enabled = request.forms.get('settings_movie_default_enabled') + if settings_movie_default_enabled is None: + settings_movie_default_enabled = 'False' + else: + settings_movie_default_enabled = 'True' + c.execute("UPDATE table_settings_general SET movie_default_enabled = ?", (settings_movie_default_enabled,)) + + settings_movie_default_languages = str(request.forms.getall('settings_movie_default_languages')) + c.execute("UPDATE table_settings_general SET movie_default_languages = ?", (settings_movie_default_languages,)) + + settings_movie_default_hi = request.forms.get('settings_movie_default_hi') + if settings_movie_default_hi is None: + settings_movie_default_hi = 'False' + else: + settings_movie_default_hi = 'True' + c.execute("UPDATE table_settings_general SET movie_default_hi = ?", (settings_movie_default_hi,)) + settings_notifier_Boxcar_enabled = request.forms.get('settings_notifier_Boxcar_enabled') if settings_notifier_Boxcar_enabled == 'on': settings_notifier_Boxcar_enabled = 1 diff --git a/get_general_settings.py b/get_general_settings.py index 2edd9f3e5..d7a563829 100644 --- a/get_general_settings.py +++ b/get_general_settings.py @@ -43,8 +43,14 @@ def get_general_settings(): path_mappings_movie = [] else: path_mappings_movie = ast.literal_eval(general_settings[16]) + serie_default_enabled = general_settings[17] + serie_default_language = general_settings[18] + serie_default_hi = general_settings[19] + movie_default_enabled = general_settings[20] + movie_default_language = general_settings[21] + movie_default_hi = general_settings[22] - return [ip, port, base_url, path_mappings, log_level, branch, automatic, single_language, minimum_score, use_scenename, use_postprocessing, postprocessing_cmd, use_sonarr, use_radarr, path_mappings_movie] + return [ip, port, base_url, path_mappings, log_level, branch, automatic, single_language, minimum_score, use_scenename, use_postprocessing, postprocessing_cmd, use_sonarr, use_radarr, path_mappings_movie, serie_default_enabled, serie_default_language, serie_default_hi, movie_default_enabled,movie_default_language, movie_default_hi] def path_replace(path): for path_mapping in path_mappings: @@ -115,4 +121,10 @@ use_processing = result[10] postprocessing_cmd = result[11] use_sonarr = result[12] use_radarr = result[13] -path_mappings_movie = result[14] \ No newline at end of file +path_mappings_movie = result[14] +serie_default_enabled = result[15] +serie_default_language = result[16] +serie_default_hi = result[17] +movie_default_enabled = result[18] +movie_default_language = result[19] +movie_default_hi = result[20] \ No newline at end of file diff --git a/get_movies.py b/get_movies.py index a2c81852e..a187cf156 100644 --- a/get_movies.py +++ b/get_movies.py @@ -10,6 +10,9 @@ def update_movies(): url_radarr = get_radarr_settings()[0] url_radarr_short = get_radarr_settings()[1] apikey_radarr = get_radarr_settings()[2] + movie_default_enabled = get_general_settings()[18] + movie_default_language = get_general_settings()[19] + movie_default_hi = get_general_settings()[20] # Open database connection db = sqlite3.connect(os.path.join(os.path.dirname(__file__), 'data/db/bazarr.db'), timeout=30) @@ -64,7 +67,10 @@ def update_movies(): # Update or insert movies list in database table try: - c.execute('''INSERT INTO table_movies(title, path, tmdbId, languages,`hearing_impaired`, radarrId, overview, poster, fanart, `audio_language`, sceneName) VALUES (?,?,?,(SELECT languages FROM table_movies WHERE tmdbId = ?),(SELECT `hearing_impaired` FROM table_movies WHERE tmdbId = ?), ?, ?, ?, ?, ?, ?)''', (movie["title"], movie["path"] + separator + movie['movieFile']['relativePath'], movie["tmdbId"], movie["tmdbId"], movie["tmdbId"], movie["id"], overview, poster, fanart, profile_id_to_language(movie['qualityProfileId']), sceneName)) + if movie_default_enabled == 'True': + c.execute('''INSERT INTO table_movies(title, path, tmdbId, languages,`hearing_impaired`, radarrId, overview, poster, fanart, `audio_language`, sceneName) VALUES (?,?,?,?,?, ?, ?, ?, ?, ?, ?)''', (movie["title"], movie["path"] + separator + movie['movieFile']['relativePath'], movie["tmdbId"], movie_default_language, movie_default_hi, movie["id"], overview, poster, fanart, profile_id_to_language(movie['qualityProfileId']), sceneName)) + else: + c.execute('''INSERT INTO table_movies(title, path, tmdbId, languages,`hearing_impaired`, radarrId, overview, poster, fanart, `audio_language`, sceneName) VALUES (?,?,?,(SELECT languages FROM table_movies WHERE tmdbId = ?),(SELECT `hearing_impaired` FROM table_movies WHERE tmdbId = ?), ?, ?, ?, ?, ?, ?)''', (movie["title"], movie["path"] + separator + movie['movieFile']['relativePath'], movie["tmdbId"], movie["tmdbId"], movie["tmdbId"], movie["id"], overview, poster, fanart, profile_id_to_language(movie['qualityProfileId']), sceneName)) except: c.execute('''UPDATE table_movies SET title = ?, path = ?, tmdbId = ?, radarrId = ?, overview = ?, poster = ?, fanart = ?, `audio_language` = ?, sceneName = ? WHERE tmdbid = ?''', (movie["title"],movie["path"] + separator + movie['movieFile']['relativePath'],movie["tmdbId"],movie["id"],overview,poster,fanart,profile_id_to_language(movie['qualityProfileId']),sceneName,movie["tmdbId"])) @@ -86,6 +92,8 @@ def update_movies(): # Close database connection db.close() + list_missing_subtitles_movies() + def get_profile_list(): from get_radarr_settings import get_radarr_settings url_radarr = get_radarr_settings()[0] diff --git a/get_series.py b/get_series.py index 83471ab13..8d7cd1805 100644 --- a/get_series.py +++ b/get_series.py @@ -3,12 +3,16 @@ import sqlite3 import requests from get_general_settings import * +from list_subtitles import * def update_series(): from get_sonarr_settings import get_sonarr_settings url_sonarr = get_sonarr_settings()[0] url_sonarr_short = get_sonarr_settings()[1] apikey_sonarr = get_sonarr_settings()[2] + serie_default_enabled = get_general_settings()[15] + serie_default_language = get_general_settings()[16] + serie_default_hi = get_general_settings()[17] # Open database connection db = sqlite3.connect(os.path.join(os.path.dirname(__file__), 'data/db/bazarr.db'), timeout=30) @@ -48,7 +52,11 @@ def update_series(): # Update or insert shows list in database table try: - c.execute('''INSERT INTO table_shows(title, path, tvdbId, languages,`hearing_impaired`, sonarrSeriesId, overview, poster, fanart, `audio_language`, sortTitle) VALUES (?,?,?,(SELECT languages FROM table_shows WHERE tvdbId = ?),(SELECT `hearing_impaired` FROM table_shows WHERE tvdbId = ?), ?, ?, ?, ?, ?, ?)''', (show["title"], show["path"], show["tvdbId"], show["tvdbId"], show["tvdbId"], show["id"], overview, poster, fanart, profile_id_to_language(show['qualityProfileId']), show['sortTitle'])) + if serie_default_enabled == 'True': + c.execute('''INSERT INTO table_shows(title, path, tvdbId, languages,`hearing_impaired`, sonarrSeriesId, overview, poster, fanart, `audio_language`, sortTitle) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)''', (show["title"], show["path"], show["tvdbId"], serie_default_language, serie_default_hi, show["id"], overview, poster, fanart, profile_id_to_language(show['qualityProfileId']), show['sortTitle'])) + list_missing_subtitles(show["id"]) + else: + c.execute('''INSERT INTO table_shows(title, path, tvdbId, languages,`hearing_impaired`, sonarrSeriesId, overview, poster, fanart, `audio_language`, sortTitle) VALUES (?,?,?,(SELECT languages FROM table_shows WHERE tvdbId = ?),(SELECT `hearing_impaired` FROM table_shows WHERE tvdbId = ?), ?, ?, ?, ?, ?, ?)''', (show["title"], show["path"], show["tvdbId"], show["tvdbId"], show["tvdbId"], show["id"], overview, poster, fanart, profile_id_to_language(show['qualityProfileId']), show['sortTitle'])) except: c.execute('''UPDATE table_shows SET title = ?, path = ?, tvdbId = ?, sonarrSeriesId = ?, overview = ?, poster = ?, fanart = ?, `audio_language` = ? , sortTitle = ? WHERE tvdbid = ?''', (show["title"],show["path"],show["tvdbId"],show["id"],overview,poster,fanart,profile_id_to_language((show['qualityProfileId'] if sonarr_version == 2 else show['languageProfileId'])),show['sortTitle'],show["tvdbId"])) diff --git a/update_db.py b/update_db.py index 26c5587c3..0ee023387 100644 --- a/update_db.py +++ b/update_db.py @@ -123,6 +123,40 @@ if os.path.exists(os.path.join(os.path.dirname(__file__), 'data/db/bazarr.db')) except: pass + try: + c.execute('alter table table_settings_general add column "serie_default_enabled" "text"') + except: + pass + else: + c.execute('UPDATE table_settings_general SET serie_default_enabled="False"') + + try: + c.execute('alter table table_settings_general add column "serie_default_languages" "text"') + except: + pass + + try: + c.execute('alter table table_settings_general add column "serie_default_hi" "text"') + except: + pass + + try: + c.execute('alter table table_settings_general add column "movie_default_enabled" "text"') + except: + pass + else: + c.execute('UPDATE table_settings_general SET movie_default_enabled="False"') + + try: + c.execute('alter table table_settings_general add column "movie_default_languages" "text"') + except: + pass + + try: + c.execute('alter table table_settings_general add column "movie_default_hi" "text"') + except: + pass + # Commit change to db db.commit() diff --git a/views/settings.tpl b/views/settings.tpl index 35be19fc6..6459b0180 100644 --- a/views/settings.tpl +++ b/views/settings.tpl @@ -895,6 +895,120 @@ + +
Series default settings
+
+
+
+
+ +
+
+
+
+ + +
+
+
+ +
+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ +
+
+
+
+ + +
+
+
+
+
+
+ +
Movies default settings
+
+
+
+
+ +
+
+
+
+ + +
+
+
+ +
+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ +
+
+
+
+ + +
+
+
+
+
+
@@ -1030,6 +1144,103 @@ } }); + $('#settings_languages').dropdown('setting', 'onAdd', function(val, txt){ + $("#settings_serie_default_languages").append( + $("").attr("value", val).text(txt) + ) + $("#settings_movie_default_languages").append( + $("").attr("value", val).text(txt) + ) + }); + + $('#settings_languages').dropdown('setting', 'onRemove', function(val, txt){ + $("#settings_serie_default_languages").dropdown('remove selected', val); + $("#settings_serie_default_languages option[value='" + val + "']").remove(); + + $("#settings_movie_default_languages").dropdown('remove selected', val); + $("#settings_movie_default_languages option[value='" + val + "']").remove(); + }); + + if ($('#settings_serie_default_enabled_div').data("enabled") == "True") { + $("#settings_serie_default_enabled_div").checkbox('check'); + } else { + $("#settings_serie_default_enabled_div").checkbox('uncheck'); + } + + if ($('#settings_serie_default_enabled_div').data("enabled") == "True") { + $("#settings_serie_default_languages").removeClass('disabled'); + $("#settings_serie_default_hi_div").removeClass('disabled'); + } else { + $("#settings_serie_default_languages").addClass('disabled'); + $("#settings_serie_default_hi_div").addClass('disabled'); + } + + $('#settings_serie_default_enabled_div').checkbox({ + onChecked: function() { + $("#settings_serie_default_languages").parent().removeClass('disabled'); + $("#settings_serie_default_hi_div").removeClass('disabled'); + }, + onUnchecked: function() { + $("#settings_serie_default_languages").parent().addClass('disabled'); + $("#settings_serie_default_hi_div").addClass('disabled'); + } + }); + + if ($('#settings_serie_default_hi_div').data("hi") == "True") { + $("#settings_serie_default_hi_div").checkbox('check'); + } else { + $("#settings_serie_default_hi_div").checkbox('uncheck'); + } + + if ($('#settings_movie_default_enabled_div').data("enabled") == "True") { + $("#settings_movie_default_enabled_div").checkbox('check'); + } else { + $("#settings_movie_default_enabled_div").checkbox('uncheck'); + } + + if ($('#settings_movie_default_enabled_div').data("enabled") == "True") { + $("#settings_movie_default_languages").removeClass('disabled'); + $("#settings_movie_default_hi_div").removeClass('disabled'); + } else { + $("#settings_movie_default_languages").addClass('disabled'); + $("#settings_movie_default_hi_div").addClass('disabled'); + } + + $('#settings_movie_default_enabled_div').checkbox({ + onChecked: function() { + $("#settings_movie_default_languages").parent().removeClass('disabled'); + $("#settings_movie_default_hi_div").removeClass('disabled'); + }, + onUnchecked: function() { + $("#settings_movie_default_languages").parent().addClass('disabled'); + $("#settings_movie_default_hi_div").addClass('disabled'); + } + }); + + if ($('#settings_movie_default_hi_div').data("hi") == "True") { + $("#settings_movie_default_hi_div").checkbox('check'); + } else { + $("#settings_movie_default_hi_div").checkbox('uncheck'); + } + + $("#settings_single_language").change(function(i, obj) { + if ($("#settings_single_language").checkbox('is checked')) { + $("#settings_serie_default_languages").dropdown('clear'); + $("#settings_movie_default_languages").dropdown('clear'); + $("#settings_serie_default_languages").parent().removeClass('multiple'); + $("#settings_serie_default_languages").removeAttr('multiple'); + $("#settings_movie_default_languages").parent().removeClass('multiple'); + $("#settings_movie_default_languages").removeAttr('multiple'); + } else { + $("#settings_serie_default_languages").dropdown('clear'); + $("#settings_movie_default_languages").dropdown('clear'); + $("#settings_serie_default_languages").parent().addClass('multiple'); + $("#settings_serie_default_languages").attr('multiple'); + $("#settings_movie_default_languages").parent().addClass('multiple'); + $("#settings_movie_default_languages").attr('multiple'); + } + }); + $('.notifier_enabled').each(function(i, obj) { if ($(this).data("enabled") == 1) { $(this).checkbox('check'); @@ -1065,6 +1276,14 @@ $('#settings_loglevel').dropdown(); $('#settings_providers').dropdown(); $('#settings_languages').dropdown(); + $('#settings_serie_default_languages').dropdown(); + $('#settings_movie_default_languages').dropdown(); + %if settings_general[18] is not None: + $('#settings_serie_default_languages').dropdown('set selected',{{!settings_general[18]}}); + %end + %if settings_general[21] is not None: + $('#settings_movie_default_languages').dropdown('set selected',{{!settings_general[21]}}); + %end $('#settings_branch').dropdown(); $('#settings_sonarr_sync').dropdown(); $('#settings_radarr_sync').dropdown();