EmbyCrackedClient/web/modules/confirmstillplaying/plugin.js

1 line
1.9 KiB
JavaScript
Raw Permalink Normal View History

2025-06-25 11:46:04 +08:00
import globalize from"./../common/globalize.js";import events from"./../emby-apiclient/events.js";import userSettings from"./../common/usersettings/usersettings.js";import inputManager from"./../common/inputmanager.js";import playbackManager from"./../common/playback/playbackmanager.js";import mouseManager from"./../input/mouse.js";import MethodTimer from"./../common/methodtimer.js";function showConfirm(options){return Emby.importModule("./modules/common/dialogs/confirm.js").then(function(confirm){return confirm(options)})}function enabled(){return 0<userSettings.stillWatchingTimeMs()}function confirmStillPlaying(){var minIdleTime=userSettings.stillWatchingTimeMs();return minIdleTime<=0||inputManager.idleTime()<minIdleTime||Date.now()-mouseManager.lastMouseInputTime()<minIdleTime?Promise.resolve():showConfirm({title:null,text:globalize.translate("AreYouStillWatching"),confirmText:globalize.translate("HeaderContinueWatching"),cancelText:globalize.translate("Stop"),cancelResult:"cancel",timeout:6e4})}export default function(){this.name="Are You Still Watching?",this.type="preplayintercept",this.id="stillplaying",this.intercept=function(options){return clearConfirmTimer(),"Video"===options.mediaType&&options.fullscreen?confirmStillPlaying():Promise.resolve()};let confirmTimeout;function clearConfirmTimer(){var timeout=confirmTimeout;timeout&&(timeout.destroy(),confirmTimeout=null)}function onConfirmTimeout(){confirmStillPlaying().catch(function(result){"cancel"!==result&&"_timeout"!==result||playbackManager.stop()})}events.on(playbackManager,"playbackstart",function(e,player,state){"Video"===(state.NowPlayingItem||{}).MediaType&&player.isLocalPlayer&&!player.isExternalPlayer&&enabled()?(clearConfirmTimer(),confirmTimeout=new MethodTimer({onInterval:onConfirmTimeout,timeoutMs:3e4,type:"interval"})):clearConfirmTimer()}),events.on(playbackManager,"playbackstop",clearConfirmTimer)}