EmbyCrackedClient/web/modules/common/playback/playbackvalidation.js

1 line
1.4 KiB
JavaScript
Raw Permalink Normal View History

2025-06-25 11:46:04 +08:00
import playbackManager from"./playbackmanager.js";import ApiClient from"./../../emby-apiclient/apiclient.js";function validateFeature(feature,options){return Emby.importModule("./modules/registrationservices/registrationservices.js").then(function(registrationServices){return registrationServices.validateFeature(feature,options)})}function validatePlayback(options){let feature="playback";if("playback"===(feature=!options.item||"TvChannel"!==options.item.Type&&"Recording"!==options.item.Type?feature:"livetv")){var player=playbackManager.getCurrentPlayer();if(player&&!player.isLocalPlayer)return Promise.resolve()}return validateFeature(feature,options).then(function(result){result&&result.enableTimeLimit&&startAutoStopTimer()})}let autoStopTimeout;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}PlaybackValidation.prototype.intercept=function(options){return!options.fullscreen||options.item&&ApiClient.isLocalItem(options.item)?Promise.resolve():validatePlayback(options)};export default PlaybackValidation;