From 6cf1bd5b9d213ccad8a4670a9e801cefabb7ec9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Louis=20V=C3=A9zina?= <5130500+morpheus65535@users.noreply.github.com> Date: Tue, 5 Nov 2019 20:49:08 -0500 Subject: [PATCH] Fix for #658. --- bazarr/check_update.py | 2 +- bazarr/config.py | 96 +++++++++++++++++++++++++++--------------- bazarr/get_episodes.py | 2 +- bazarr/get_movies.py | 4 +- bazarr/get_series.py | 6 +-- bazarr/main.py | 18 ++++---- bazarr/utils.py | 4 +- 7 files changed, 81 insertions(+), 51 deletions(-) diff --git a/bazarr/check_update.py b/bazarr/check_update.py index 15b1256a3..aa8f8c624 100644 --- a/bazarr/check_update.py +++ b/bazarr/check_update.py @@ -6,7 +6,7 @@ import requests import tarfile from get_args import args -from config import settings, bazarr_url +from config import settings from queueconfig import notifications from database import database diff --git a/bazarr/config.py b/bazarr/config.py index 7f96bd7a2..c123c1987 100644 --- a/bazarr/config.py +++ b/bazarr/config.py @@ -142,36 +142,66 @@ settings = simpleconfigparser(defaults=defaults) settings.read(os.path.join(args.config_dir, 'config', 'config.ini')) base_url = settings.general.base_url -bazarr_url = 'http://localhost:' + (str(args.port) if args.port else settings.general.port) + base_url - -# sonarr url -if settings.sonarr.getboolean('ssl'): - protocol_sonarr = "https" -else: - protocol_sonarr = "http" - -if settings.sonarr.base_url == '': - settings.sonarr.base_url = "/" -if not settings.sonarr.base_url.startswith("/"): - settings.sonarr.base_url = "/" + settings.sonarr.base_url -if settings.sonarr.base_url.endswith("/"): - settings.sonarr.base_url = settings.sonarr.base_url[:-1] - -url_sonarr = protocol_sonarr + "://" + settings.sonarr.ip + ":" + settings.sonarr.port + settings.sonarr.base_url -url_sonarr_short = protocol_sonarr + "://" + settings.sonarr.ip + ":" + settings.sonarr.port - -# radarr url -if settings.radarr.getboolean('ssl'): - protocol_radarr = "https" -else: - protocol_radarr = "http" - -if settings.radarr.base_url == '': - settings.radarr.base_url = "/" -if not settings.radarr.base_url.startswith("/"): - settings.radarr.base_url = "/" + settings.radarr.base_url -if settings.radarr.base_url.endswith("/"): - settings.radarr.base_url = settings.radarr.base_url[:-1] - -url_radarr = protocol_radarr + "://" + settings.radarr.ip + ":" + settings.radarr.port + settings.radarr.base_url -url_radarr_short = protocol_radarr + "://" + settings.radarr.ip + ":" + settings.radarr.port + + +def url_sonarr(): + if settings.sonarr.getboolean('ssl'): + protocol_sonarr = "https" + else: + protocol_sonarr = "http" + + if settings.sonarr.base_url == '': + settings.sonarr.base_url = "/" + if not settings.sonarr.base_url.startswith("/"): + settings.sonarr.base_url = "/" + settings.sonarr.base_url + if settings.sonarr.base_url.endswith("/"): + settings.sonarr.base_url = settings.sonarr.base_url[:-1] + + return protocol_sonarr + "://" + settings.sonarr.ip + ":" + settings.sonarr.port + settings.sonarr.base_url + + +def url_sonarr_short(): + if settings.sonarr.getboolean('ssl'): + protocol_sonarr = "https" + else: + protocol_sonarr = "http" + + if settings.sonarr.base_url == '': + settings.sonarr.base_url = "/" + if not settings.sonarr.base_url.startswith("/"): + settings.sonarr.base_url = "/" + settings.sonarr.base_url + if settings.sonarr.base_url.endswith("/"): + settings.sonarr.base_url = settings.sonarr.base_url[:-1] + return protocol_sonarr + "://" + settings.sonarr.ip + ":" + settings.sonarr.port + + +def url_radarr(): + if settings.radarr.getboolean('ssl'): + protocol_radarr = "https" + else: + protocol_radarr = "http" + + if settings.radarr.base_url == '': + settings.radarr.base_url = "/" + if not settings.radarr.base_url.startswith("/"): + settings.radarr.base_url = "/" + settings.radarr.base_url + if settings.radarr.base_url.endswith("/"): + settings.radarr.base_url = settings.radarr.base_url[:-1] + + return protocol_radarr + "://" + settings.radarr.ip + ":" + settings.radarr.port + settings.radarr.base_url + + +def url_radarr_short(): + if settings.radarr.getboolean('ssl'): + protocol_radarr = "https" + else: + protocol_radarr = "http" + + if settings.radarr.base_url == '': + settings.radarr.base_url = "/" + if not settings.radarr.base_url.startswith("/"): + settings.radarr.base_url = "/" + settings.radarr.base_url + if settings.radarr.base_url.endswith("/"): + settings.radarr.base_url = settings.radarr.base_url[:-1] + + return protocol_radarr + "://" + settings.radarr.ip + ":" + settings.radarr.port diff --git a/bazarr/get_episodes.py b/bazarr/get_episodes.py index e68cdcc41..018a4560f 100644 --- a/bazarr/get_episodes.py +++ b/bazarr/get_episodes.py @@ -40,7 +40,7 @@ def sync_episodes(): for i, seriesId in enumerate(seriesIdList, 1): notifications.write(msg='Getting episodes data from Sonarr...', queue='get_episodes', item=i, length=seriesIdListLength) # Get episodes data for a series from Sonarr - url_sonarr_api_episode = url_sonarr + "/api/episode?seriesId=" + str(seriesId['sonarrSeriesId']) + "&apikey=" + apikey_sonarr + url_sonarr_api_episode = url_sonarr() + "/api/episode?seriesId=" + str(seriesId['sonarrSeriesId']) + "&apikey=" + apikey_sonarr try: r = requests.get(url_sonarr_api_episode, timeout=60, verify=False) r.raise_for_status() diff --git a/bazarr/get_movies.py b/bazarr/get_movies.py index 02c0b0e17..b8f59a12d 100644 --- a/bazarr/get_movies.py +++ b/bazarr/get_movies.py @@ -34,7 +34,7 @@ def update_movies(): audio_profiles = get_profile_list() # Get movies data from radarr - url_radarr_api_movies = url_radarr + "/api/movie?apikey=" + apikey_radarr + url_radarr_api_movies = url_radarr() + "/api/movie?apikey=" + apikey_radarr try: r = requests.get(url_radarr_api_movies, timeout=60, verify=False) r.raise_for_status() @@ -274,7 +274,7 @@ def get_profile_list(): profiles_list = [] # Get profiles data from radarr - url_radarr_api_movies = url_radarr + "/api/profile?apikey=" + apikey_radarr + url_radarr_api_movies = url_radarr() + "/api/profile?apikey=" + apikey_radarr try: profiles_json = requests.get(url_radarr_api_movies, timeout=60, verify=False) except requests.exceptions.ConnectionError as errc: diff --git a/bazarr/get_series.py b/bazarr/get_series.py index 0900d6e57..daf7b6cf7 100644 --- a/bazarr/get_series.py +++ b/bazarr/get_series.py @@ -30,7 +30,7 @@ def update_series(): audio_profiles = get_profile_list() # Get shows data from Sonarr - url_sonarr_api_series = url_sonarr + "/api/series?apikey=" + apikey_sonarr + url_sonarr_api_series = url_sonarr() + "/api/series?apikey=" + apikey_sonarr try: r = requests.get(url_sonarr_api_series, timeout=60, verify=False) r.raise_for_status() @@ -165,9 +165,9 @@ def get_profile_list(): # Get profiles data from Sonarr if sonarr_version.startswith('2'): - url_sonarr_api_series = url_sonarr + "/api/profile?apikey=" + apikey_sonarr + url_sonarr_api_series = url_sonarr() + "/api/profile?apikey=" + apikey_sonarr elif sonarr_version.startswith('3'): - url_sonarr_api_series = url_sonarr + "/api/v3/languageprofile?apikey=" + apikey_sonarr + url_sonarr_api_series = url_sonarr() + "/api/v3/languageprofile?apikey=" + apikey_sonarr try: profiles_json = requests.get(url_sonarr_api_series, timeout=60, verify=False) diff --git a/bazarr/main.py b/bazarr/main.py index 0e2414cda..a84f54b2b 100644 --- a/bazarr/main.py +++ b/bazarr/main.py @@ -1,6 +1,6 @@ # coding=utf-8 -bazarr_version = '0.8.3' +bazarr_version = '0.8.3.1' import os os.environ["SZ_USER_AGENT"] = "Bazarr/1" @@ -466,10 +466,10 @@ def download_log(): def image_proxy(url): authorize() apikey = settings.sonarr.apikey - url_image = url_sonarr_short + '/' + url + '?apikey=' + apikey + url_image = url_sonarr_short() + '/' + url + '?apikey=' + apikey try: image_buffer = BytesIO( - requests.get(url_sonarr + '/api' + url_image.split(url_sonarr)[1], timeout=15, verify=False).content) + requests.get(url_sonarr() + '/api' + url_image.split(url_sonarr())[1], timeout=15, verify=False).content) except: return None else: @@ -485,13 +485,13 @@ def image_proxy_movies(url): authorize() apikey = settings.radarr.apikey try: - url_image = (url_radarr_short + '/' + url + '?apikey=' + apikey).replace('/fanart.jpg', '/banner.jpg') + url_image = (url_radarr_short() + '/' + url + '?apikey=' + apikey).replace('/fanart.jpg', '/banner.jpg') image_buffer = BytesIO( - requests.get(url_radarr + '/api' + url_image.split(url_radarr)[1], timeout=15, verify=False).content) + requests.get(url_radarr() + '/api' + url_image.split(url_radarr())[1], timeout=15, verify=False).content) except: - url_image = url_radarr_short + '/' + url + '?apikey=' + apikey + url_image = url_radarr_short() + '/' + url + '?apikey=' + apikey image_buffer = BytesIO( - requests.get(url_radarr + '/api' + url_image.split(url_radarr)[1], timeout=15, verify=False).content) + requests.get(url_radarr() + '/api' + url_image.split(url_radarr())[1], timeout=15, verify=False).content) else: image_buffer.seek(0) bytes = image_buffer.read() @@ -717,7 +717,7 @@ def episodes(no): seasons_list.append(list(season)) return template('episodes', bazarr_version=bazarr_version, no=no, details=series_details, - languages=languages, seasons=seasons_list, url_sonarr_short=url_sonarr_short, base_url=base_url, + languages=languages, seasons=seasons_list, url_sonarr_short=url_sonarr_short(), base_url=base_url, tvdbid=tvdbid, number=number, current_port=settings.general.port) @@ -852,7 +852,7 @@ def movie(no): languages = database.execute("SELECT code2, name FROM table_settings_languages WHERE enabled=1") return template('movie', bazarr_version=bazarr_version, no=no, details=movies_details, - languages=languages, url_radarr_short=url_radarr_short, base_url=base_url, tmdbid=tmdbid, + languages=languages, url_radarr_short=url_radarr_short(), base_url=base_url, tmdbid=tmdbid, current_port=settings.general.port) diff --git a/bazarr/utils.py b/bazarr/utils.py index f2452859a..2fd70ae80 100644 --- a/bazarr/utils.py +++ b/bazarr/utils.py @@ -82,7 +82,7 @@ def cache_maintenance(): def get_sonarr_version(): use_sonarr = settings.general.getboolean('use_sonarr') apikey_sonarr = settings.sonarr.apikey - sv = url_sonarr + "/api/system/status?apikey=" + apikey_sonarr + sv = url_sonarr() + "/api/system/status?apikey=" + apikey_sonarr sonarr_version = '' if use_sonarr: try: @@ -96,7 +96,7 @@ def get_sonarr_version(): def get_radarr_version(): use_radarr = settings.general.getboolean('use_radarr') apikey_radarr = settings.radarr.apikey - rv = url_radarr + "/api/system/status?apikey=" + apikey_radarr + rv = url_radarr() + "/api/system/status?apikey=" + apikey_radarr radarr_version = '' if use_radarr: try: