🏠 Home 

慕享刷课

慕享自动刷课脚本


Installer dette script?
// ==UserScript==
// @name         慕享刷课
// @namespace    http://tampermonkey.net/
// @version      0.1.6
// @description  慕享自动刷课脚本
// @antifeature  慕享自动刷课脚本
// @author       zhanghua65
// @license      MIT
// @match        *://*.moycp.com/*
// @grant        window.onurlchange
// @require      https://lib.baomitu.com/jquery/2.1.4/jquery.min.js
// @run-at       document-end
// ==/UserScript==
var setting = {
// 自动登录功能配置区
//登录账号
username: '',
//登录密码
password: '',
isLogin: true,
//分数未满40分
mark: '40分',
//默认 播放速度 1.5
playbackRate: 1.5,
play: false,
timer: '',
courseIndex: 0
}, _self = unsafeWindow,
url = location.pathname;
$(function () {
'use strict';
function init() {
let urls = location.pathname;
switch (urls) {
case '/login':
//登录
console.log("登录");
login();
break;
case '/studyCenter/studying':
//学习中心
console.log("学习中心");
studying();
break;
case '/courseDetail/catalog':
//课程目录
console.log("课程目录");
catalog();
break;
case '/courseware2':
//观看视频
console.log("观看视频");
courseware2();
break;
default:
location.href = "https://web.moycp.com/login";
break
}
}
//自动登录
function login() {
if (!setting.username && !setting.password) {
return;
}
console.log("登录ing");
let object = $(".choosed[style='display: none;']")
if (object == null) {
$(".free-login").click();
} else {
console.log("已经勾选")
}
$(":text").attr("autocomplete", "off");
$(":password").attr("autocomplete", "new-password");
var focus = new Event('focus');
var input = new Event('input');
var change = new Event('change');
var blur = new Event('blur');
let username = document.getElementsByClassName("username")[0];
username.value = setting.username;
username.dispatchEvent(focus);
username.dispatchEvent(input);
username.dispatchEvent(change);
username.dispatchEvent(blur);
let password = document.getElementsByClassName("password")[0];
password.value = setting.password;
password.dispatchEvent(focus);
password.dispatchEvent(input);
password.dispatchEvent(change);
password.dispatchEvent(blur);
//七天自动登录
if (setting.isLogin) {
$(".el-button.login-btn").click();
setting.isLogin = false
}
}
//选择未学习的课程 ( 分数未满40分)
function studying() {
let infoList = document.querySelectorAll(".detail-info");
for (let i = 0; i < infoList.length; i++) {
let courseName = infoList[i].getElementsByClassName("course-name")[0].innerText;
//跳过新手课程
console.log("courseName", courseName);
if (courseName.indexOf("新手课程") === -1) {
let score = infoList[i].getElementsByClassName("score")[0].innerText;
if (score.indexOf(setting.mark) === -1) {
infoList[i].getElementsByClassName("learn")[0].click();
break;
}
}
}
}
function catalog() {
//显示所有的课件和闯关
let oStudy = document.querySelectorAll(".study-buttons");
if (oStudy.length !== 0) {
for (let i = 0; i < oStudy.length; i++) {
oStudy[i].style.display = "flex"
}
//找到列表中未完成的课
let oDt = document.getElementsByTagName("dd");
for (let i = 0; i < oDt.length; i++) {
let oProgress = oDt[i].getElementsByClassName("progress");
for (let j = 0; j < oProgress.length; j++) {
let oSpan = oProgress[j].lastChild;
if (oSpan.style.width !== '100%') {
let studys = oDt[i].getElementsByClassName("study")[0];
if (studys.innerText === '课件') {
oDt[i].getElementsByClassName("study")[0].click();
return
}
}
if (i === oDt.length - 1) {
location.href = "https://web.moycp.com/studyCenter/studying";
}
}
}
}
}
function courseware2() {
// 查询播放进度
let text = $(".vertical-line-right > .alreadystudy").text();
let playerDocument = document.getElementById("player");
// 检查加载动画是否隐藏
let isLoadingVisible = $("div.pv-loading").is(':visible');
if (playerDocument && !isLoadingVisible) {
// 判断视频插件加载
let videoElements = playerDocument.getElementsByTagName("video");
// 判断视频出现在正##
if (playerDocument.children.length > 0 && videoElements.length > 0) {
if (text.indexOf("100%") === -1) {
// console.log("未完成的视频,需要开始播放");
iconfontClick();
} else {
// console.log("进入已经播放完成的视频");
nextSection();
}
}
}
}
//点击按钮   开始按钮 \ue653  暂停按钮
function iconfontClick() {
if ($("pv-controls > pv-controls-left")) {
var leftDocument = document.getElementsByClassName("pv-controls-left");
let video = document.getElementsByTagName("video")[0];
if (leftDocument !== null && leftDocument !== undefined && leftDocument !== '') {
let pvButton = $(".pv-controls-left > button:first");
let maxProgress = $(".pv-progress-current:first").css("width");
let Progress = $(".pv-progress-current > .pv-progress-current-bg:first").css("width");
if (maxProgress === Progress && pvButton.hasClass("pv-icon-btn-play")) {
// console.log("播放完成,自动停止");
nextSection();
} else if (pvButton.hasClass("pv-icon-pause")) {
// console.log("播放中");
} else {
// console.log("未开始播放")
let volumebtn = $("button.pv-volumebtn:first");
if (volumebtn.hasClass("pv-icon-volumeon")) {
volumebtn.click();
$("div.pv-volume-current").css("height", "0%");
}
video.muted = "0";
video.playbackRate = setting.playbackRate;
pvButton.click()
}
}
}
}
function nextSection() {
// huang
// 获取课程全部元素
let section = $("dd > .catalog-item-section-col2:not(.finish)").parent(".catalog-item-section");
//已经刷完的跳转 主页
if (section && section.length > 0) {
for (let i = 0; i < section.length; i++) {
// 获取当前选中元素
let node = section[i];
if (!node.classList.contains("current")) {
node.click();
return
}
if (i === section.length - 1) {
location.href = "https://web.moycp.com/studyCenter/studying";
}
}
} else {
location.href = "https://web.moycp.com/studyCenter/studyin";
}
}
setting.timer = setInterval(function () {
if (window.onurlchange === null) {
// 监听url变化
window.addEventListener('urlchange', (info) => {
console.log("变化", info);
console.log("我运行了");
});
// 判断页面是否加载完成
if (document.readyState === "complete") {
init();
}
}
}, 500);
});