diff --git a/bazarr.py b/bazarr.py index d9cc8f0d4..44dbd0828 100644 --- a/bazarr.py +++ b/bazarr.py @@ -29,10 +29,13 @@ dir_name = os.path.dirname(__file__) def start_bazarr(): script = [sys.executable, os.path.normcase(os.path.join(globals()['dir_name'], 'bazarr/main.py'))] + globals()['arguments'] - ep = sp.Popen(script, stdout=sp.PIPE, stderr=sp.STDOUT) + ep = sp.Popen(script, stdout=sp.PIPE, stderr=sp.STDOUT, stdin=sp.PIPE) logging.info("Bazarr starting...") - for line in iter(ep.stdout.readline, ''): - sys.stdout.write(line) + try: + for line in iter(ep.stdout.readline, ''): + sys.stdout.write(line) + except KeyboardInterrupt: + pass if __name__ == '__main__': diff --git a/bazarr/main.py b/bazarr/main.py index aba9d0b97..4804312ec 100644 --- a/bazarr/main.py +++ b/bazarr/main.py @@ -1693,4 +1693,8 @@ warnings.simplefilter("ignore", DeprecationWarning) server = CherryPyWSGIServer((str(ip), int(port)), app) logging.info('Bazarr is started and waiting for request on http://' + str(ip) + ':' + str(port) + str(base_url)) -server.start() \ No newline at end of file +try: + print('Bazarr is started and waiting for request on http://' + str(ip) + ':' + str(port) + str(base_url)) + server.start() +except KeyboardInterrupt: + shutdown() diff --git a/views/menu.tpl b/views/menu.tpl index 9c98a29e8..af62aa4a1 100644 --- a/views/menu.tpl +++ b/views/menu.tpl @@ -117,11 +117,11 @@ % c.close() % if restart_required[1] == '1' and restart_required[0] == '1': -
Bazarr need to be restarted to apply last update and changes to general settings.
+
Bazarr need to be restarted to apply last update and changes to general settings. Click here to restart.
% elif restart_required[1] == '1': -
Bazarr need to be restarted to apply last update.
+
Bazarr need to be restarted to apply last update. Click here to restart.
% elif restart_required[0] == '1': -
Bazarr need to be restarted to apply changes to general settings.
+
Bazarr need to be restarted to apply changes to general settings. Click here to restart.
% end @@ -167,4 +167,24 @@ $('.menu').css('background', '#272727'); $('#divmenu').css('background', '#272727'); } + + $('#restart_link').click(function(){ + $('#loader_text').text("Bazarr is restarting, please wait..."); + $.ajax({ + url: "{{base_url}}restart", + async: true + }) + .done(function(){ + setTimeout(function(){ setInterval(ping, 2000); },8000); + }); + }) + + function ping() { + $.ajax({ + url: '{{base_url}}', + success: function(result) { + window.location.reload(); + } + }); + } \ No newline at end of file