您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
湘潭学院学习网站
// ==UserScript== // @name xiang-video // @namespace http://tampermonkey.net/ // @version 0.4 // @description 湘潭学院学习网站 // @author galan99 // @match www2.xtdx.superchutou.com/* // @license MIT // @grant none // ==/UserScript== /* 使用es6声明 */ /* jshint esversion: 6 */ (async function () { "use strict"; function random(min, max) { return Math.floor(Math.random() * (max - min)) + min; } function sleep(time) { return new Promise((resolve) => setTimeout(resolve, time)); } function extend(destination, source) { for (var property in source) destination[property] = source[property]; return destination; } // 模拟人工点击 https://stackoverflow.com/questions/6157929/how-to-simulate-a-mouse-click-using-javascript /** * 使用 * simulate(document.getElementById("btn"), "click"); * simulate(document.getElementById("btn"), "click", { pointerX: 123, pointerY: 321 }) * * */ function simulate(element, eventName) { var eventMatchers = { HTMLEvents: /^(?:load|unload|abort|error|select|change|submit|reset|focus|blur|resize|scroll)$/, MouseEvents: /^(?:click|dblclick|mouse(?:down|up|over|move|out))$/, }; var defaultOptions = { pointerX: 0, pointerY: 0, button: 0, ctrlKey: false, altKey: false, shiftKey: false, metaKey: false, bubbles: true, cancelable: true, }; var options = extend(defaultOptions, arguments[2] || {}); var oEvent, eventType = null; for (var name in eventMatchers) { if (eventMatchers[name].test(eventName)) { eventType = name; break; } } if (!eventType) throw new SyntaxError( "Only HTMLEvents and MouseEvents interfaces are supported" ); if (document.createEvent) { oEvent = document.createEvent(eventType); if (eventType == "HTMLEvents") { oEvent.initEvent(eventName, options.bubbles, options.cancelable); } else { oEvent.initMouseEvent( eventName, options.bubbles, options.cancelable, document.defaultView, options.button, options.pointerX, options.pointerY, options.pointerX, options.pointerY, options.ctrlKey, options.altKey, options.shiftKey, options.metaKey, options.button, element ); } element.dispatchEvent(oEvent); } else { options.clientX = options.pointerX; options.clientY = options.pointerY; var evt = document.createEventObject(); oEvent = extend(evt, options); element.fireEvent("on" + eventName, oEvent); } return element; } // 方法2 // document.getElementById('testTarget').dispatchEvent(new MouseEvent('click', {shiftKey: true})) // 方法3 // Simulate human click in JavaScript https://stackoverflow.com/questions/7457603/simulate-human-click-in-javascript function callClickEvent(element) { var evt = document.createEvent("HTMLEvents"); evt.initEvent("click", true, true); element.dispatchEvent(evt); } function callClickEvent2(element) { var evt = document.createEvent("MouseEvents"); evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); element.dispatchEvent(evt); } var status = (await Notification.requestPermission()) === "granted"; var popNotice = function () { if (Notification.permission == "granted") { var notification = new Notification("验证失败:", { body: "视频需要验证,请手动点击按钮进行验证", icon: "//image.zhangxinxu.com/image/study/s/s128/mm1.jpg", }); } }; async function run() { var code_el = document.querySelector("#SM_BTN_1"); var slideBtn = document.querySelector(".slidetounlock"); if (slideBtn) { if (status) { popNotice(); } await sleep(1000 * 60 * 10); } if (code_el) { var timeNum = random(1, 5); await sleep(timeNum * 1000); simulate(code_el, "click"); await sleep(1500); slideBtn = document.querySelector(".slidetounlock"); if (slideBtn) { if (status) { popNotice(); } console.log("自动验证失败,请手动验证"); return; } console.log("自动验证成功"); await sleep(1000 * 60 * 2); run(); } else { await sleep(1000); run(); } } run(); })();