1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

First separation commit.

Added LICENSE, README.md, CONTRIBUTORS.md
This commit is contained in:
Erwin de Haan 2019-01-09 12:36:54 +01:00
parent 09513af31b
commit 4678528d00
657 changed files with 422 additions and 0 deletions

View file

@ -0,0 +1,43 @@
define(["playbackManager", "itemHelper"], function(playbackManager, itemHelper) {
"use strict";
function getRequirePromise(deps) {
return new Promise(function(resolve, reject) {
require(deps, resolve)
})
}
function validatePlayback(options) {
var feature = "playback";
if (!options.item || "TvChannel" !== options.item.Type && "Recording" !== options.item.Type || (feature = "livetv"), "playback" === feature) {
var player = playbackManager.getCurrentPlayer();
if (player && !player.isLocalPlayer) return Promise.resolve()
}
return getRequirePromise(["registrationServices"]).then(function(registrationServices) {
return registrationServices.validateFeature(feature, options).then(function(result) {
result && result.enableTimeLimit && startAutoStopTimer()
})
})
}
function startAutoStopTimer() {
stopAutoStopTimer(), autoStopTimeout = setTimeout(onAutoStopTimeout, 63e3)
}
function onAutoStopTimeout() {
stopAutoStopTimer(), playbackManager.stop()
}
function stopAutoStopTimer() {
var timeout = autoStopTimeout;
timeout && (clearTimeout(timeout), autoStopTimeout = null)
}
function PlaybackValidation() {
this.name = "Playback validation", this.type = "preplayintercept", this.id = "playbackvalidation", this.order = -1
}
var autoStopTimeout;
return PlaybackValidation.prototype.intercept = function(options) {
return options.fullscreen ? options.item && itemHelper.isLocalItem(options.item) ? Promise.resolve() : validatePlayback(options) : Promise.resolve()
}, PlaybackValidation
});