1 line
92 KiB
JavaScript
1 line
92 KiB
JavaScript
|
|
import events from"./../../emby-apiclient/events.js";import appSettings from"./../appsettings.js";import ApiClient from"./../../emby-apiclient/apiclient.js";import pluginManager from"./../pluginmanager.js";import PlayQueueManager from"./playqueuemanager.js";import userSettings from"./../usersettings/usersettings.js";import globalize from"./../globalize.js";import connectionManager from"./../../emby-apiclient/connectionmanager.js";import{appHost,fullscreenManager}from"./../servicelocator.js";import loading from"./../../loading/loading.js";import MethodTimer from"./../methodtimer.js";import qualityOptions from"./../qualityoptions.js";let QueueQueryLimit=5e3,PlaybackItemFields="ProductionYear,PremiereDate,Container";function requireFileSystem(dep){return new Promise(function(resolve,reject){require(["filesystem"],resolve)})}function enableLocalPlaylistManagement(player){return!player.getPlaylist&&!!player.isLocalPlayer}function bindToFullscreenChange(player){events.on(fullscreenManager,"fullscreenchange",function(){events.trigger(player,"fullscreenchange")})}function triggerPlayerChange(playbackManagerInstance,newPlayer,newTarget,previousPlayer,previousTargetInfo){!newPlayer&&!previousPlayer||newTarget&&previousTargetInfo&&newTarget.id===previousTargetInfo.id||events.trigger(playbackManagerInstance,"playerchange",[newPlayer,newTarget,previousPlayer])}function returnResolve(err){return console.error(err),Promise.resolve()}function addPlaylistItemsToPlaybackReport(info,playlist,serverId){var list=[];for(let i=0,length=playlist.length;i<length;i++){var playlistItem=playlist[i],itemInfo={Id:playlistItem.Id,PlaylistItemId:playlistItem.PlaylistItemId};playlistItem.ServerId!==serverId&&(itemInfo.ServerId=playlistItem.ServerId),list.push(itemInfo)}info.NowPlayingQueue=list}function addPlaylistToPlaybackReport(playbackManagerInstance,info,player,serverId){return playbackManagerInstance.getPlaylist().then(function(playlistResult){addPlaylistItemsToPlaybackReport(info,playlistResult.Items,serverId)})}function reportPlayback(playbackManagerInstance,state,player,reportPlaylist,serverId,method,progressEventName,additionalData,isAutomated){if(!serverId)return Promise.resolve();if(state.IsBackgroundPlayback)return Promise.resolve();let info=Object.assign({},state.PlayState);if((info=additionalData?Object.assign(info,additionalData):info).ItemId=state.NowPlayingItem.Id,!info.ItemId)return Promise.resolve();progressEventName&&(info.EventName=progressEventName),info.PlaylistIndex=state.PlaylistIndex,info.PlaylistLength=state.PlaylistLength,info.NextMediaType=state.NextMediaType;let apiClient=connectionManager.getApiClient(serverId);return isAutomated&&info.IsPaused&&apiClient.isMinServerVersion("4.8.0.56")?Promise.resolve():reportPlaylist?"reportPlaybackStopped"===method?(addPlaylistItemsToPlaybackReport(info,playbackManagerInstance._playQueueManager.getPlaylistResult({}).Items,serverId),apiClient[method](info).catch(returnResolve)):addPlaylistToPlaybackReport(playbackManagerInstance,info,player,serverId,method).then(function(){return apiClient[method](info).catch(returnResolve)}):apiClient[method](info).catch(returnResolve)}function normalizeName(t){return t.toLowerCase().replace(" ","")}function getItemsFromAudioBookForPlayback(item,signal){var apiClient=connectionManager.getApiClient(item);return apiClient.getNextUpAudioBookItems({AlbumId:item.Id,UserId:apiClient.getCurrentUserId(),EnableTotalRecordCount:!1,ExcludeLocationTypes:"Virtual",Fields:PlaybackItemFields},signal).then(function(result){return result.Items.length?result:getItemsForPlayback(item.ServerId,{ParentId:item.Id,Filters:"IsNotFolder",Recursive:!0},signal)})}function getItemsFromSeriesForPlayback(item,signal){var apiClient=connectionManager.getApiClient(item);return apiClient.getNextUpEpisodes({SeriesId:item.Id,UserId:apiClient.getCurrentUserId(),EnableTotalRecordCount:!1,ExcludeLocationTypes:"Virtual",Fields:PlaybackItemFields},signal).then(function(result){return result.Items.length?result:getItemsForPlayback(item.ServerId,{ParentId:item.Id,Filters:"IsNotFolder",Recursive
|