Greasy Fork

Greasy Fork is available in English.

UOOC和U校园ai版自动解除失去焦点暂停、检测确认按钮、自动重播刷时长(!!!自行更新配置,在代码配置里面!!!)

2024/10/9 12:58:31

当前为 2024-10-09 提交的版本,查看 最新版本

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name        UOOC和U校园ai版自动解除失去焦点暂停、检测确认按钮、自动重播刷时长(!!!自行更新配置,在代码配置里面!!!)
// @namespace   Violentmonkey Scripts
// @match       https://www.uooc.net.cn/home/learn/index*
// @match       https://ucontent.unipus.cn/*
// @grant       none
// @version     1.2
// @author      -Bright J
// @description 2024/10/9 12:58:31
// ==/UserScript==

const config = {
      releasePause: true, // 是否自动解除视频暂停
      repeated: false,    // 是否重复播放视频
      clickProp: true,    // 是否点击确定
      autoPlay: true,     // 是否自动播放视频
      volume: 0,        // 视频音量0~100
    }

var intervalId = setInterval(function() {
  var currentvideo = document.getElementsByTagName('video')[0];
  if (currentvideo) {
    clearInterval(intervalId); // 关闭本循环

    /**
     * 设置属性
     */
    currentvideo.volume = config.volume / 100;

    /**
       * 自动播放视频
       */
      if (config.autoPlay) {
        currentvideo.play();
      }

      /**
       * 视频播放暂停立马自动解除
       */
      if (config.releasePause){
        setInterval(function () {
          if (currentvideo.paused && currentvideo.currentTime != 0) {
                currentvideo.play();
            }
          }, 1000);
      }


      /***
       * 自动重复播放视频
       */
      // 获取视频元素
      if (config.repeated){
        // 监听视频播放结束事件
        currentvideo.addEventListener('ended', function() {
          // 当视频播放结束时,重置视频播放时间到开始
          currentvideo.currentTime = 0;
          // 再次播放视频
          currentvideo.play();
        });
      }


      /**
       * 点击弹窗确认按钮
       */
      if (config.clickProp){
        var checkInterval = setInterval(function () {
          // 检查是否存在包含“确定”文本的按钮
          setTimeout(function () {
              console.log('检测按钮');
              var confirmButton = document.evaluate('//button[text()="确定"]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
              if (confirmButton) {
                  // 模拟点击“确定”按钮
                  confirmButton.click();
              }
            }, 3000);
          }, 3000);
      }
  } else {
    console.log('等待视频加载,确认加载完成依旧重复这句话则是没有识别到网页视频。。。')
  }
}, 1000)