From 5177214450706e59b09ce6b27baefa8e1513dad7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Louis=20V=C3=A9zina?= <5130500+morpheus65535@users.noreply.github.com> Date: Fri, 15 May 2020 14:40:56 -0400 Subject: [PATCH] WIP --- bazarr/api.py | 8 +++--- bazarr/check_update.py | 9 ++----- bazarr/main.py | 55 +++++++++++++++++++++--------------------- 3 files changed, 33 insertions(+), 39 deletions(-) diff --git a/bazarr/api.py b/bazarr/api.py index bf66d2dd2..1e6fe441f 100644 --- a/bazarr/api.py +++ b/bazarr/api.py @@ -64,15 +64,15 @@ def authenticate(actual_method): class Shutdown(Resource): @authenticate def get(self): - from main import webserver - webserver.shutdown() + from main import Server + Server.shutdown() class Restart(Resource): @authenticate def get(self): - from main import webserver - webserver.restart() + from main import Server + Server.restart() class Badges(Resource): diff --git a/bazarr/check_update.py b/bazarr/check_update.py index 418263072..fc26a9f97 100644 --- a/bazarr/check_update.py +++ b/bazarr/check_update.py @@ -283,12 +283,7 @@ def request_json(url, **kwargs): def updated(restart=True): if settings.general.getboolean('update_restart') and restart: - try: - requests.get('http://127.0.0.1:' + settings.general.port + settings.general.base_url + 'restart') - except requests.ConnectionError: - pass - except (requests.ConnectTimeout, requests.HTTPError, requests.ReadTimeout, requests.Timeout): - logging.info('BAZARR Restart failed, please restart Bazarr manually') - updated(restart=False) + from main import Server + Server.restart() else: database.execute("UPDATE system SET updated='1'") diff --git a/bazarr/main.py b/bazarr/main.py index bf0178b9f..2faad6bc4 100644 --- a/bazarr/main.py +++ b/bazarr/main.py @@ -464,38 +464,39 @@ def test_notification(protocol, provider): return '', 200 -class Server(): - def __init__(self): - # Mute DeprecationWarning - warnings.simplefilter("ignore", DeprecationWarning) - # Mute Insecure HTTPS requests made to Sonarr and Radarr - warnings.filterwarnings('ignore', message='Unverified HTTPS request') - # Mute Python3 BrokenPipeError - warnings.simplefilter("ignore", BrokenPipeError) +class Server: + # Mute DeprecationWarning + warnings.simplefilter("ignore", DeprecationWarning) + # Mute Insecure HTTPS requests made to Sonarr and Radarr + warnings.filterwarnings('ignore', message='Unverified HTTPS request') + # Mute Python3 BrokenPipeError + warnings.simplefilter("ignore", BrokenPipeError) - if args.dev: - self.server = app.run( - host=str(settings.general.ip), - port=(int(args.port) if args.port else int(settings.general.port))) - else: - self.server = create_server(app, - host=str(settings.general.ip), - port=int(args.port) if args.port else int(settings.general.port), - threads=24) + if args.dev: + server = app.run( + host=str(settings.general.ip), + port=(int(args.port) if args.port else int(settings.general.port))) + else: + server = create_server(app, + host=str(settings.general.ip), + port=int(args.port) if args.port else int(settings.general.port), + threads=24) - def start(self): + @classmethod + def start(cls): try: logging.info( 'BAZARR is started and waiting for request on http://' + str(settings.general.ip) + ':' + (str( args.port) if args.port else str(settings.general.port)) + str(base_url)) if not args.dev: - self.server.run() + cls.server.run() except KeyboardInterrupt: - self.shutdown() + cls.shutdown() - def shutdown(self): + @classmethod + def shutdown(cls): try: - self.server.close() + cls.server.close() except: logging.error('BAZARR Cannot stop Waitress.') else: @@ -510,9 +511,10 @@ class Server(): stop_file.close() os._exit(0) - def restart(self): + @classmethod + def restart(cls): try: - self.server.close() + cls.server.close() except: logging.error('BAZARR Cannot stop Waitress.') else: @@ -528,8 +530,5 @@ class Server(): os._exit(0) -webserver = Server() - - if __name__ == "__main__": - webserver.start() + Server.start()