Greasy Fork

来自缓存

Greasy Fork is available in English.

四川干部网络学院视频自动监控与标签页管理

使用:把要看的视频标签页打开,看完当前标签页视频后,自动关闭当前页面,自动播放看下一个标签页的视频

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         四川干部网络学院视频自动监控与标签页管理
// @namespace    http://tampermonkey.net/
// @version      1.5
// @description  使用:把要看的视频标签页打开,看完当前标签页视频后,自动关闭当前页面,自动播放看下一个标签页的视频
// @author       Thruon
// @match        https://web.scgb.gov.cn/*
// @include      https://web.scgb.gov.cn/*
// @grant        none
// @license      MIT
// @supportURL   3339607643(QQ)
// ==/UserScript==

(function() {
    'use strict';

    let pausedSeconds = 0; // 记录视频暂停的秒数
    let checkInterval; // 状态检测的间隔计时器
    const MAX_PAUSED_TIME = 5; // 最大允许暂停时间(秒)

    function main() {
        console.log('视频开始检测');
/**
        checkInterval = setInterval(() => {
          reloadPage();
          if (document.visibilityState === 'visible' && !document.querySelector('.ivu-tag-color-white')) {
              document.querySelector('#videoPlayer_html5_api').play()
          }else{
              document.querySelector('#videoPlayer_html5_api').pause();
              if (document.querySelector('#videoPlayer_html5_api').paused && document.visibilityState === 'visible') {
                  pausedSeconds++;
                  console.log(`视频已暂停 ${pausedSeconds} 秒`);

                  // 如果暂停超过设定时间
                  if (pausedSeconds >= MAX_PAUSED_TIME) {
                      clearInterval(checkInterval);
                    //  attemptTabManagement();
                  }
              } else {
                  pausedSeconds = 0;
              }
          }
       } , 1000); */

        checkInterval = setInterval(() =>{
            // 播放完当前视频,重新加载一下页面
            palyFinishReload();

            // 获取当前页面是否可见、视频是否播放完毕
            let visib = checkCurrentVisible();
            let finsh = checkVideoFinsh();

            // 如果标签页不可见,停止播放
            if( !visib ) {
                getVideoElement().pause();
                return;
            }
            // 如果视频全部播放完毕,关闭当前标签页
            if( finsh ) {
                clearInterval(checkInterval);
                closeWindow();
            }else {
                // 如果标签页可见并且没有播放完毕,继续播放
                getVideoElement().play();
            }
        } ,1000);
    }

    function closeWindow() {
        setTimeout(() => {
            window.close();
        }, 1000);
    }

    function palyFinishReload() {
        let video = getVideoElement();
        let progress = (video.currentTime / video.duration) * 100;
        if (progress >= 100) {
            location.reload();
        }
    }

    function checkCurrentVisible() {
        if(document.visibilityState === 'visible') {
           return true;
        }
        return false;
    }

    function getVideoElement() {
       return document.querySelector('#videoPlayer_html5_api')
    }

    function checkVideoFinsh() {
        let videoTargetNum = document.getElementsByClassName('name').length;
        let videoFinishNum = document.getElementsByClassName('ivu-tag-text').length;
        if (videoTargetNum === videoFinishNum) {
            return true;
        }
        return false;
    }


    //启动程序
    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', main);
    } else {
        main();
    };


})();