Continue playing MISSAV

Prevents the video from stopping when clicking off-screen.

As of 09.12.2023. See ბოლო ვერსია.

// ==UserScript==
// @name         Continue playing MISSAV
// @name:ja      Continue playing MISSAV
// @namespace    http://tampermonkey.net/
// @version      2023-12-09-02
// @description  Prevents the video from stopping when clicking off-screen.
// @description:ja 画面外クリック時に動画が停止するのを防ぎます。
// @author       musuni
// @match        https://missav.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=hyperts.net
// @grant        none
// @license MIT
// ==/UserScript==

(function () {
    'use strict'

    window.addEventListener('load', (event) => {
        const getStackTrace = () => {
            const obj = {}
            Error.captureStackTrace(obj, getStackTrace)
            return obj.stack
        }

        const pausedByUser = (stackTrace) => {
            return stackTrace.includes('at wt.togglePlay')
        }

        const sleep = ms => {
            return new Promise(resolve => setTimeout(resolve, ms))
        }

        const waitUntilPlayerLoaded = async () => {
            while (!window.player) {
                console.log('not yet...')
                await sleep(100)
            }
            console.log('loaded!')
        }
        waitUntilPlayerLoaded()

        window.player.pause = () => {
            if (pausedByUser(getStackTrace())) {
                window.player.media.pause()
            }
        }
    })
})()