From e455ecbb756ce36c310ed078480faf44064a897c Mon Sep 17 00:00:00 2001 From: Dmitry Lyzo Date: Fri, 14 Jan 2022 23:33:20 +0300 Subject: [PATCH] Fix trailer playback when no local trailers are available --- src/components/playback/playbackmanager.js | 44 +++++++++++----------- 1 file changed, 21 insertions(+), 23 deletions(-) diff --git a/src/components/playback/playbackmanager.js b/src/components/playback/playbackmanager.js index aa33283443..5e926f5f40 100644 --- a/src/components/playback/playbackmanager.js +++ b/src/components/playback/playbackmanager.js @@ -3499,7 +3499,7 @@ class PlaybackManager { this.seek(ticks, player); } - playTrailers(item) { + async playTrailers(item) { const player = this._currentPlayer; if (player && player.playTrailers) { @@ -3508,33 +3508,31 @@ class PlaybackManager { const apiClient = ServerConnections.getApiClient(item.ServerId); - const instance = this; + let items; if (item.LocalTrailerCount) { - return apiClient.getLocalTrailers(apiClient.getCurrentUserId(), item.Id).then(function (result) { - return instance.play({ - items: result - }); - }); - } else { - const remoteTrailers = item.RemoteTrailers || []; + items = await apiClient.getLocalTrailers(apiClient.getCurrentUserId(), item.Id); + } - if (!remoteTrailers.length) { - return Promise.reject(); - } - - return this.play({ - items: remoteTrailers.map(function (t) { - return { - Name: t.Name || (item.Name + ' Trailer'), - Url: t.Url, - MediaType: 'Video', - Type: 'Trailer', - ServerId: apiClient.serverId() - }; - }) + if (!items || !items.length) { + items = (item.RemoteTrailers || []).map((t) => { + return { + Name: t.Name || (item.Name + ' Trailer'), + Url: t.Url, + MediaType: 'Video', + Type: 'Trailer', + ServerId: apiClient.serverId() + }; }); } + + if (items.length) { + return this.play({ + items + }); + } + + return Promise.reject(); } getSubtitleUrl(textStream, serverId) {