From 339883cff64c0d95378599b99337068245968a1a Mon Sep 17 00:00:00 2001 From: Marian Moravcik Date: Sat, 18 Feb 2023 21:13:20 +0100 Subject: [PATCH] Fixed UI freeze on certain notification events --- bazarr/app/signalr_client.py | 4 ++-- bazarr/sonarr/sync/series.py | 2 +- frontend/src/modules/task/index.ts | 12 ++++++------ 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/bazarr/app/signalr_client.py b/bazarr/app/signalr_client.py index 4b618757d..5ce8ab401 100644 --- a/bazarr/app/signalr_client.py +++ b/bazarr/app/signalr_client.py @@ -284,10 +284,10 @@ def dispatcher(data): if topic == 'series': logging.debug(f'Event received from Sonarr for series: {series_title} ({series_year})') - update_one_series(series_id=media_id, action=action) + update_one_series(series_id=media_id, action=action, send_event=False) if episodesChanged: # this will happen if a season monitored status is changed. - sync_episodes(series_id=media_id, send_event=True) + sync_episodes(series_id=media_id, send_event=False) elif topic == 'episode': logging.debug(f'Event received from Sonarr for episode: {series_title} ({series_year}) - ' f'S{season_number:0>2}E{episode_number:0>2} - {episode_title}') diff --git a/bazarr/sonarr/sync/series.py b/bazarr/sonarr/sync/series.py index bfabe2158..6e975b80c 100644 --- a/bazarr/sonarr/sync/series.py +++ b/bazarr/sonarr/sync/series.py @@ -200,7 +200,7 @@ def update_one_series(series_id, action): except IntegrityError as e: logging.error(f"BAZARR cannot update series {series['path']} because of {e}") else: - sync_episodes(series_id=int(series_id), send_event=True) + sync_episodes(series_id=int(series_id), send_event=False) event_stream(type='series', action='update', payload=int(series_id)) logging.debug('BAZARR updated this series into the database:{}'.format(path_mappings.path_replace( series['path']))) diff --git a/frontend/src/modules/task/index.ts b/frontend/src/modules/task/index.ts index 7e09a0804..eb39e9e87 100644 --- a/frontend/src/modules/task/index.ts +++ b/frontend/src/modules/task/index.ts @@ -10,7 +10,7 @@ import { notification } from "./notification"; class TaskDispatcher { private running: boolean; private tasks: Record = {}; - private progress: Record = {}; + private progress: Record = {}; constructor() { this.running = false; @@ -110,10 +110,10 @@ class TaskDispatcher { // TODO: FIX ME! item.value += 1; - if (item.value >= item.count && this.progress[item.id] !== undefined) { + if (item.value >= item.count && this.progress[item.id]) { updateNotification(notification.progress.end(item.id, item.header)); delete this.progress[item.id]; - } else if (item.value > 1 && this.progress[item.id] !== undefined) { + } else if (item.value > 1 && this.progress[item.id]) { updateNotification( notification.progress.update( item.id, @@ -123,10 +123,10 @@ class TaskDispatcher { item.count ) ); - } else { + } else if (item.value > 1 && this.progress[item.id] === undefined) { showNotification(notification.progress.pending(item.id, item.header)); - this.progress[item.id] = item; - setTimeout(() => this.updateProgress(items), 1000); + this.progress[item.id] = true; + setTimeout(() => this.updateProgress([item]), 1000); } }); }