1 line
No EOL
2.3 KiB
JavaScript
1 line
No EOL
2.3 KiB
JavaScript
import playbackManager from"./playbackmanager.js";import globalize from"./../globalize.js";import connectionManager from"./../../emby-apiclient/connectionmanager.js";function showActionSheet(options){return Emby.importModule("./modules/actionsheet/actionsheet.js").then(function(ActionSheet){return ActionSheet.show(options)})}function playFromRecordingStart(timer,options){return connectionManager.getApiClient(timer).getLiveTvRecordings({TimerId:timer.Id,IsInProgress:!0}).then(function(result){result=result.Items.filter(function(i){return i.TimerId===timer.Id})[0];return result?playbackManager.play({items:[result]}):playbackManager.play(options)})}function promptUserToPlayActiveRecording(timer,displayItem,options){var items=[];return items.push({name:globalize.translate("PlayFromLivePosition"),id:"playlive",icon:""}),items.push({name:globalize.translate("PlayFromStartOfRecording"),id:"playrecording",icon:""}),showActionSheet({items:items,item:displayItem,text:globalize.translate("ThisChannelIsActivelyRecording"),hasItemIcon:!0,longPreview:!0}).then(function(result){return"playrecording"===result?playFromRecordingStart(timer,options):"playlive"===result?playbackManager.play(options):options.cancelResult?Promise.reject(options.cancelResult):Promise.reject()})}function playChannelWithActiveRecording(timer,displayItem,options){var now=Date.now();return now>=Date.parse(timer.StartDate)&&now<Date.parse(timer.EndDate)?promptUserToPlayActiveRecording(timer,displayItem,options):playbackManager.play(options)}function playChannelWithTimerId(displayItem,timerId,options){return connectionManager.getApiClient(displayItem).getLiveTvTimer(timerId).then(function(timer){return playChannelWithActiveRecording(timer,displayItem,options)})}function playProgram(item,options){var timerId=item.TimerId;return timerId?playChannelWithTimerId(item,timerId,options):playbackManager.play(options)}function playChannel(item,options){var timerId=item.CurrentProgram?.TimerId;return timerId?playChannelWithTimerId(item.CurrentProgram||item,timerId,options):playbackManager.play(options)}function play(options){if(1===options.items?.length){var item=options.items[0];switch(item.Type){case"TvChannel":return playChannel(item,options);case"Program":return playProgram(item,options)}}return playbackManager.play(options)}export default{play:play}; |