first commit
This commit is contained in:
1
modules/common/playback/experimentalwarnings.js
Normal file
1
modules/common/playback/experimentalwarnings.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../servicelocator.js","./../usersettings/usersettings.js"],function(_exports,_servicelocator,_usersettings){function getResolvedPromise(){return Promise.resolve()}function showMessage(text,userSettingsKey,appHostFeature){var dayNum,options;return _servicelocator.appHost.supports(appHostFeature)||(userSettingsKey+=(appHostFeature=new Date).getFullYear()+"-w"+(appHostFeature=appHostFeature,dayNum=(appHostFeature=new Date(Date.UTC(appHostFeature.getFullYear(),appHostFeature.getMonth(),appHostFeature.getDate()))).getUTCDay()||7,appHostFeature.setUTCDate(appHostFeature.getUTCDate()+4-dayNum),dayNum=new Date(Date.UTC(appHostFeature.getUTCFullYear(),0,1)),Math.ceil(((appHostFeature-dayNum)/864e5+1)/7)),"1"===_usersettings.default.get(userSettingsKey,!1))?Promise.resolve():(_usersettings.default.set(userSettingsKey,"1",!1),options=text,Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)}).catch(getResolvedPromise))}function ExpirementalPlaybackWarnings(){this.name="Experimental playback warnings",this.type="preplayintercept",this.id="expirementalplaybackwarnings"}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,ExpirementalPlaybackWarnings.prototype.intercept=function(options){options=options.item;return options?"iso"===options.Container||"blurayiso"===options.Container||"dvdiso"===options.Container?showMessage("Playback of ISO files in this app is experimental. Some titles may not work at all. For a better experience, consider converting to mkv video files, or use an Emby app with native ISO support.","isoexpirementalinfo","nativeisoplayback"):"bluray"===options.Container?showMessage("Playback of Bluray folders in this app is experimental. Some titles may not work at all. For a better experience, consider converting to mkv video files, or use an Emby app with native Bluray folder support.","blurayexpirementalinfo","nativeblurayplayback"):"dvd"===options.Container?showMessage("Playback of Dvd folders in this app is experimental. Some titles may not work at all. For a better experience, consider converting to mkv video files, or use an Emby app with native Dvd folder support.","dvdexpirementalinfo","nativedvdplayback"):Promise.resolve():Promise.resolve()};_exports.default=ExpirementalPlaybackWarnings});
|
||||
1
modules/common/playback/playaccessvalidation.js
Normal file
1
modules/common/playback/playaccessvalidation.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../globalize.js","./../../emby-apiclient/connectionmanager.js"],function(_exports,_globalize,_connectionmanager){function showErrorMessage(){return options=_globalize.default.translate("MessagePlayAccessRestricted"),Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)}).then(function(){return Promise.reject()});var options}function PlayAccessValidation(){this.name="Playback validation",this.type="preplayintercept",this.id="playaccessvalidation",this.order=-2}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,PlayAccessValidation.prototype.intercept=function(options){var item=options.item;return(item=item&&item.ServerId)?_connectionmanager.default.getApiClient(item).getCurrentUser().then(function(user){return user.Policy.EnableMediaPlayback?Promise.resolve():options.fullscreen?showErrorMessage():Promise.reject()}):Promise.resolve()};_exports.default=PlayAccessValidation});
|
||||
1
modules/common/playback/playbackactions.js
Normal file
1
modules/common/playback/playbackactions.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./playbackmanager.js","./../globalize.js","./../../emby-apiclient/connectionmanager.js"],function(_exports,_playbackmanager,_globalize,_connectionmanager){function promptUserToPlayActiveRecording(timer,displayItem,options){var items=[];return items.push({name:_globalize.default.translate("PlayFromLivePosition"),id:"playlive",icon:""}),items.push({name:_globalize.default.translate("PlayFromStartOfRecording"),id:"playrecording",icon:""}),function(options){return Emby.importModule("./modules/actionsheet/actionsheet.js").then(function(ActionSheet){return ActionSheet.show(options)})}({items:items,item:displayItem,text:_globalize.default.translate("ThisChannelIsActivelyRecording"),hasItemIcon:!0,longPreview:!0}).then(function(result){return"playrecording"===result?function(timer,options){return _connectionmanager.default.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.default.play({items:[result]}):_playbackmanager.default.play(options)})}(timer,options):"playlive"===result?_playbackmanager.default.play(options):options.cancelResult?Promise.reject(options.cancelResult):Promise.reject()})}function playChannelWithTimerId(displayItem,timerId,options){return _connectionmanager.default.getApiClient(displayItem).getLiveTvTimer(timerId).then(function(timer){return function(timer,displayItem,options){var now=Date.now();return now>=Date.parse(timer.StartDate)&&now<Date.parse(timer.EndDate)?promptUserToPlayActiveRecording(timer,displayItem,options):_playbackmanager.default.play(options)}(timer,displayItem,options)})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;_exports.default={play:function(options){var _options$items;if(1===(null==(_options$items=options.items)?void 0:_options$items.length)){var item=options.items[0];switch(item.Type){case"TvChannel":return function(item,options){var _item$CurrentProgram=null==(_item$CurrentProgram=item.CurrentProgram)?void 0:_item$CurrentProgram.TimerId;return _item$CurrentProgram?playChannelWithTimerId(item.CurrentProgram||item,_item$CurrentProgram,options):_playbackmanager.default.play(options)}(item,options);case"Program":return function(item,options){var timerId=item.TimerId;return timerId?playChannelWithTimerId(item,timerId,options):_playbackmanager.default.play(options)}(item,options)}}return _playbackmanager.default.play(options)}}});
|
||||
1
modules/common/playback/playbackmanager.js
Normal file
1
modules/common/playback/playbackmanager.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/common/playback/playbackvalidation.js
Normal file
1
modules/common/playback/playbackvalidation.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./playbackmanager.js","./../../emby-apiclient/apiclient.js"],function(_exports,_playbackmanager,_apiclient){function validatePlayback(options){var feature="playback";if("playback"===(feature=!options.item||"TvChannel"!==options.item.Type&&"Recording"!==options.item.Type?feature:"livetv")){var player=_playbackmanager.default.getCurrentPlayer();if(player&&!player.isLocalPlayer)return Promise.resolve()}return function(feature,options){return Emby.importModule("./modules/registrationservices/registrationservices.js").then(function(registrationServices){return registrationServices.validateFeature(feature,options)})}(feature,options).then(function(result){result&&result.enableTimeLimit&&(stopAutoStopTimer(),autoStopTimeout=setTimeout(onAutoStopTimeout,63e3))})}var autoStopTimeout;function onAutoStopTimeout(){stopAutoStopTimer(),_playbackmanager.default.stop()}function stopAutoStopTimer(){autoStopTimeout&&(clearTimeout(autoStopTimeout),autoStopTimeout=null)}function PlaybackValidation(){this.name="Playback validation",this.type="preplayintercept",this.id="playbackvalidation",this.order=-1}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,PlaybackValidation.prototype.intercept=function(options){return!options.fullscreen||options.item&&_apiclient.default.isLocalItem(options.item)?Promise.resolve():validatePlayback(options)};_exports.default=PlaybackValidation});
|
||||
1
modules/common/playback/playersettingsmenu.js
Normal file
1
modules/common/playback/playersettingsmenu.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/common/playback/playqueueconfirmation.js
Normal file
1
modules/common/playback/playqueueconfirmation.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../globalize.js","./../../dialog/dialog.js","./playbackmanager.js"],function(_exports,_globalize,_dialog,_playbackmanager){function PlayQueueConfirmation(){this.name="Play Queue Confirmation",this.type="preplayintercept",this.id="playqueueconfirmation"}function showConfirmation(playOptions){var player=_playbackmanager.default.getCurrentPlayer(),options={text:_globalize.default.translate("AfterThisPlaysConfirmation")},items=[];return items.push({name:_globalize.default.translate("Keep"),id:"keep",type:"submit"}),items.push({name:_globalize.default.translate("Clear"),id:"clear"}),items.push({name:_globalize.default.translate("Cancel"),id:"cancel",type:"cancel"}),options.buttons=items,(0,_dialog.default)(options).then(function(result){return"cancel"===result?Promise.reject():"keep"===result?function(options,player){var currentPlaylistIndex=_playbackmanager.default.getCurrentPlaylistIndex(player);return-1===currentPlaylistIndex?Promise.resolve():_playbackmanager.default.getPlaylist({StartIndex:currentPlaylistIndex},player).then(function(result){var items=options.items,result=result.Items;if(!result.length)return Promise.resolve();items.push.apply(items,babelHelpers.toConsumableArray(result))})}(playOptions,player):Promise.resolve()})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,PlayQueueConfirmation.prototype.intercept=function(options){var item=options.item;if(item&&"play"===options.command&&"Audio"===options.mediaType&&_playbackmanager.default.isPlayingAudio()&&options.fullscreen){item=_playbackmanager.default.getCurrentPlaylistLength();if(1<item)return showConfirmation(options)}return Promise.resolve()};_exports.default=PlayQueueConfirmation});
|
||||
1
modules/common/playback/playqueuemanager.js
Normal file
1
modules/common/playback/playqueuemanager.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/common/playback/sleeptimermenu.js
Normal file
1
modules/common/playback/sleeptimermenu.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../globalize.js","./../../actionsheet/actionsheet.js","./playbackmanager.js","./../dataformatter.js"],function(_exports,_globalize,_actionsheet,_playbackmanager,_dataformatter){function showToast(options){Emby.importModule("./modules/toast/toast.js").then(function(toast){return toast(options)})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;_exports.default={show:function(options){for(var player=options.player,menuItems=[],currentMode=_playbackmanager.default.getSleepTimerMode(player),now=(currentMode&&"None"!==currentMode&&menuItems.push({name:_globalize.default.translate("TurnOffTimer"),id:"stoptimer"}),menuItems.push({name:_globalize.default.translate("AfterCurrentItem"),id:"afteritem"}),Date.now()),increments=[3e5,6e5,9e5,12e5,18e5,27e5,36e5,72e5,108e5,144e5],i=0,length=increments.length;i<length;i++){var time=now+increments[i],date=new Date(time);menuItems.push({name:_dataformatter.default.formatRelativeTime(date,!1),id:time})}return _actionsheet.default.show({items:menuItems,positionTo:options.positionTo,positionX:options.positionX,positionY:options.positionY,transformOrigin:options.transformOrigin,noTextWrap:options.noTextWrap,title:_globalize.default.translate("HeaderStopPlayback"),hasItemSelectionState:!1}).then(function(result){switch(result){case"afteritem":_playbackmanager.default.setSleepTimer({sleepTimerMode:"AfterItem"},player),showToast({text:_globalize.default.translate("SleepTimerIsSet"),icon:""});break;case"stoptimer":_playbackmanager.default.setSleepTimer({sleepTimerMode:"None"},player),showToast({text:_globalize.default.translate("SleepTimerIsOff"),icon:""});break;default:var _time=parseInt(result);_time&&!isNaN(_time)&&(_playbackmanager.default.setSleepTimer({sleepTimerMode:"AtTime",sleepTimerEndTime:new Date(_time)},player),showToast({text:_globalize.default.translate("SleepTimerIsSet"),icon:""}))}})}}});
|
||||
Reference in New Issue
Block a user