一、插件介紹:
????????中華會計網(wǎng)校刷視頻插件是一款電腦上的運行的插件,例如快速刷課程視頻進度,刷學(xué)習(xí)時長。
二、插件功能:
????1、完成課程進度為100%
????2、完成課程學(xué)習(xí)時長
????插件運行效果圖如下:

已集成好腳本的瀏覽器下載:https://wukongstudio.lanzoui.com/b01i5rkmj
三、插件實現(xiàn)的原理
????????主要是通過瀏覽器安裝油猴腳本來實現(xiàn)。油猴腳本適用于Chrome和Firefox等瀏覽器。油猴腳本將在您的用戶腳本管理方面提供更多的便利。它提供了例如便捷腳本安裝、自動更新檢查、標簽中的腳本運行狀況速覽、內(nèi)置的編輯器等眾多功能。

四、插件主要代碼
function gm_get(name, defaultValue) {
? ? if (typeof GM_getValue === 'function') {
? ? ? ? return new Promise((resolve, reject) => {
? ? ? ? ? ? resolve(GM_getValue(name, defaultValue));
? ? ? ? })
? ? } else {
? ? ? ? return GM.getValue(name, defaultValue);
? ? }
}
function gm_set(name, defaultValue) {
? ? if (typeof GM_setValue === 'function') {
? ? ? ? GM_setValue(name, defaultValue);
? ? } else {
? ? ? ? GM.setValue(name, defaultValue);
? ? }
}
function gm_del(name) {
? ? if (typeof GM_deleteValue === 'function') {
? ? ? ? GM_deleteValue(name);
? ? } else {
? ? ? ? GM.deleteValue(name);
? ? }
}
// 獲取瀏覽器類型,函數(shù)取自網(wǎng)站源代碼297行
function myBrowser() {
? ? let userAgent = _self.navigator.userAgent,
? ? ? ? isOpera = userAgent.indexOf("Opera") > -1;
? ? if (isOpera) {
? ? ? ? return "Opera"
? ? }
? ? ;
? ? if (userAgent.indexOf("Firefox") > -1) {
? ? ? ? return "FF";
? ? }
? ? ;
? ? if (userAgent.indexOf("Chrome") > -1) {
? ? ? ? return "Chrome";
? ? }
? ? ;
? ? if (userAgent.indexOf("Safari") > -1) {
? ? ? ? return "Safari";
? ? }
? ? ;
? ? if (userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera) {
? ? ? ? return "IE";
? ? }
? ? ;
}
function analyse_common(data) {
? ? /*解析普通課程*/
? ? setTimeout(function () {
? ? ? ? let now_course = document.querySelector("#header ul").innerText.split("\n");
? ? ? ? //console.log(now_course)
? ? ? ? let keyword = '';
? ? ? ? let res = now_course.map(value => {
? ? ? ? ? ? keyword += value + "-";
? ? ? ? ? ? return value * value;
? ? ? ? });
? ? ? ? //console.log(conten_send_data('common', setting.utoken, url, res, data))
? ? ? ? setting.utoken = GM_getValue('utoken');
? ? ? ? let send_data = conten_send_data('common', setting.utoken, url, keyword, _self.btoa(encodeURIComponent(JSON.stringify(data))));
? ? ? ? console.log(send_data);
? ? ? ? GM_xmlhttpRequest({
? ? ? ? ? ? method: 'POST',
? ? ? ? ? ? url: turl + 'getUschooldecode.php',
? ? ? ? ? ? //url: turl + '/api/getUschooldecode.php',
? ? ? ? ? ? data: _self.atob("cmVzPQ==") + send_data,
? ? ? ? ? ? headers: {
? ? ? ? ? ? ? ? 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
? ? ? ? ? ? },
? ? ? ? ? ? onerror: (error) => {
? ? ? ? ? ? ? ? //isQuestion = false;
? ? ? ? ? ? ? ? alert("獲取答案失??!/n網(wǎng)絡(luò)或服務(wù)器錯誤,見常見問題Q9");
? ? ? ? ? ? },
? ? ? ? ? ? ontimeout: (error) => {
? ? ? ? ? ? ? ? //isQuestion = false;
? ? ? ? ? ? ? ? alert("獲取答案失??!/n網(wǎng)絡(luò)超時");
? ? ? ? ? ? },
? ? ? ? ? ? onload: function (xhr) {
? ? ? ? ? ? ? ? let rejson = JSON.parse(xhr.responseText);
? ? ? ? ? ? ? ? //console.log("暫時", rejson)
? ? ? ? ? ? ? ? let page = String(rejson.page);
? ? ? ? ? ? ? ? //console.log("頁數(shù)", page)
? ? ? ? ? ? ? ? if (rejson.status != 0) {
? ? ? ? ? ? ? ? ? ? /*無答案 隱藏窗口*/
? ? ? ? ? ? ? ? ? ? return;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? clearAnswerView()//在添加答案前應(yīng)清空上次顯示的答案
? ? ? ? ? ? ? ? if (page > 0) {
? ? ? ? ? ? ? ? ? ? let res = rejson.msg.map(value => {
? ? ? ? ? ? ? ? ? ? ? ? return value;
? ? ? ? ? ? ? ? ? ? });
? ? ? ? ? ? ? ? ? ? //console.log("當前數(shù)組", res.length)
? ? ? ? ? ? ? ? ? ? for (let i = 0; i < res.length; i++) {
? ? ? ? ? ? ? ? ? ? ? ? let arr = res[i].answer
? ? ? ? ? ? ? ? ? ? ? ? new Promise(function (resolve, reject) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? setTimeout(function () {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? analyseAnswers_common(resolve, res[i].answer[0])
? ? ? ? ? ? ? ? ? ? ? ? ? ? }, 1e3);
? ? ? ? ? ? ? ? ? ? ? ? }).then(() => {
? ? ? ? ? ? ? ? ? ? ? ? ? ? console.log(res[i].answer[0])
? ? ? ? ? ? ? ? ? ? ? ? ? ? res[i].answer[0].forEach(function (item, index) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? console.log(item);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? appendAnswerView(item);
? ? ? ? ? ? ? ? ? ? ? ? ? ? });
? ? ? ? ? ? ? ? ? ? ? ? });
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? //return rejson;
? ? ? ? ? ? ? ? }