diff --git a/bazarr/main.py b/bazarr/main.py index 8afc87a72..1381fa9a7 100644 --- a/bazarr/main.py +++ b/bazarr/main.py @@ -464,83 +464,70 @@ def test_notification(protocol, provider): return '', 200 -class Server(object): - 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) - - 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) - - def start(self): - 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() - except KeyboardInterrupt: - self.shutdown() - - def shutdown(self): +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) + + 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) + + def start(self): + 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() + except KeyboardInterrupt: + self.shutdown() + + def shutdown(self): + try: + self.server.close() + except Exception as e: + logging.error('BAZARR Cannot stop Waitress: ' + repr(e)) + else: + database.close() try: - self.server.close() + stop_file = io.open(os.path.join(args.config_dir, "bazarr.stop"), "w", encoding='UTF-8') except Exception as e: - logging.error('BAZARR Cannot stop Waitress: ' + repr(e)) + logging.error('BAZARR Cannot create bazarr.stop file: ' + repr(e)) else: - database.close() - try: - stop_file = io.open(os.path.join(args.config_dir, "bazarr.stop"), "w", encoding='UTF-8') - except Exception as e: - logging.error('BAZARR Cannot create bazarr.stop file: ' + repr(e)) - else: - logging.info('Bazarr is being shutdown...') - stop_file.write(str('')) - stop_file.close() - os._exit(0) - - def restart(self): + logging.info('Bazarr is being shutdown...') + stop_file.write(str('')) + stop_file.close() + os._exit(0) + + def restart(self): + try: + self.server.close() + except Exception as e: + logging.error('BAZARR Cannot stop Waitress: ' + repr(e)) + else: + database.close() try: - self.server.close() + restart_file = io.open(os.path.join(args.config_dir, "bazarr.restart"), "w", encoding='UTF-8') except Exception as e: - logging.error('BAZARR Cannot stop Waitress: ' + repr(e)) + logging.error('BAZARR Cannot create bazarr.restart file: ' + repr(e)) else: - database.close() - try: - restart_file = io.open(os.path.join(args.config_dir, "bazarr.restart"), "w", encoding='UTF-8') - except Exception as e: - logging.error('BAZARR Cannot create bazarr.restart file: ' + repr(e)) - else: - logging.info('Bazarr is being restarted...') - restart_file.write(str('')) - restart_file.close() - os._exit(0) - - instance = None - - def __new__(cls): # __new__ always a classmethod - if not Server.instance: - Server.instance = Server.__Server() - return Server.instance - - def __getattr__(self, name): - return getattr(self.instance, name) - - def __setattr__(self, name): - return setattr(self.instance, name) + logging.info('Bazarr is being restarted...') + restart_file.write(str('')) + restart_file.close() + os._exit(0) +global webserver webserver = Server() if __name__ == "__main__":