油猴小脚本:刷课+选修课
OrangeThinK 2020年02月12日 •  0
本文最后修改于 544 天前,部分内容可能已经过时!

刷课小脚本就是使用Javascript脚本语言,插入到网页当中去,但是我们直接在控制台输出的话就只能实现单次效果,因为一刷新就没了,所以我们借助油猴插件来多次运行

刷课:

1.找到所对应的视频 var vid = document.getElementsByTagName("video")[0];
2.设置视频播放速度,最高16倍速 vid.playbackRate = 10 //10倍速
3.(可选)设置视频静音播放 vid.muted = true;
4.播放视频 vid.play();
5.通过事件监听检测是否播放完成, vid.addEventListener('ended', function() {
},false);
6.播放完成后执行此代码进行下个视频的跳转,此处跳转根据实际表单数据进行修改
document.getElementsByClassName('module-sequence-footer-button--next')[0].children[0].click()
6.1 找到哪个节点按钮是跳到下个视频的
6.2 使用.click()模拟点击该按钮
7.在第五步的function函数里重复61234步骤(因为1234只会执行一遍),或者你可以封装第1234步为XX函数,这样子只需要在初始的时代调用一次XX函数,在第五步里调用一次XX函数,这样子代码也美观一些

参考代码:仅适用于双元课程
// ==UserScript==
// @name         baiyun
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       otk
// @match        http://webvpn.baiyunu.edu.cn/webvpn/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=baiyunu.edu.cn
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    setTimeout(main, 5000);
    function main(){
        console.log(`刷课脚本开始运行`)
        var vid = document.getElementsByTagName("video")[0];
        vid.muted = true;
        vid.playbackRate = 10 //10倍速
        vid.play();
        console.log('开始播放')

        vid.addEventListener('ended', function() {
                console.log('播放结束,切换下一个视频');
        document.getElementsByClassName('module-sequence-footer-button--next')[0].children[0].click()
                console.log(`已切换视频`);
                setTimeout(main, 5000);
                console.log(`开始刷视频`)
                var vid = document.getElementsByTagName("video")[0];
                vid.muted = true;
                vid.playbackRate = 10 //10倍速
                vid.play();
                console.log('开始播放')
        }, false)
    }
})();

选修课

1.先在教务系统上按F12利用js找到要选修的课号表单值ID,记录下来
2.将其选中document.getElementById('kcmcGrid_ct160_xk').checked=true;
3.设置一个变量,用于判断是否都勾上了flag = true;
4.立刻向服务器提交document.getElementById('Button1').click();
5.(可选)设置弹窗666提醒提交已成功alert('666');
6.设置定时器setInterval(test(), 1000);
7.一开抢你就运行,它可能会崩可能会成功,别管它
8.祈祷

参考代码:仅适用于方正系统
function test(){
  var flag = false;
  //kcmcGrid_ctl37_xk代表课号
  document.getElementById('kcmcGrid_ct160_xk').checked=true;
  document.getElementById('kcmcGrid_ct139_xk').checked=true;
  document.getElementById('kcmcGrid_ct148_xk').checked=true;
  flag = true;
  if (flag == true) {
      document.getElementById('Button1').click();
      alert('666');
    }
  }
setInterval(test(), 1000);
我很想你,我们能重新认识一下吗 打赏
请作者吃个鸡腿!
typecho弹出find Input author error怎么回事

该页面评论已关闭