您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
基于SDchao的改编 加入系统级通知和网页签到状态指示功能 合并了去除xxx正在观看的弹幕
// ==UserScript== // @name 腾讯课堂自动签到 Plus // @name:zh-CN 腾讯课堂自动签到 Plus // @namespace http://tampermonkey.net/ // @version 1.2.3 // @description 基于SDchao的改编 加入系统级通知和网页签到状态指示功能 合并了去除xxx正在观看的弹幕 // @description:zh-cn 基于SDchao的改编 加入系统级通知和网页签到状态指示功能 合并了去除xxx正在观看的弹幕 // @author xianfei, thank for SDchao // @match https://ke.qq.com/webcourse/* // @grant none // ==/UserScript== var signNum = 0; var signElement; var intervalFlag; var hasDati = false; var lastHasDati = false; (function() { 'use strict'; setTimeout(()=>{signElement=document.getElementsByClassName("applied-text")[0];},4000); setInterval(clickSign,5000); intervalFlag = setInterval(clearDanmu,1000); console.warn("签到脚本已经加载"); // 请求通知权限 window.addEventListener('load', function () { Notification.requestPermission(function (status) { // 这将使我们能在 Chrome/Safari 中使用 Notification.permission if (Notification.permission !== status) { Notification.permission = status; } }); }); // Your code here... })(); function clearDanmu() { var marquee = document.getElementById("marquee"); if(marquee) { marquee.firstElementChild.innerHTML = ""; clearInterval(intervalFlag); } } function showNotifi(status,str) { console.log(status); // 仅当值为 "granted" 时显示通知 var n = new Notification("腾讯课堂签到助手", {body: str}); // 显示通知 } function clickSign() { 'use strict'; if(signNum==0) signElement.innerHTML = "自动签到已加载"; var elements = document.getElementsByClassName("s-btn s-btn--primary s-btn--m"); var datiElements = document.getElementsByClassName("head-text"); hasDati = false; for(var e of datiElements){if(e.innerHTML.indexOf("选题") !== -1){ hasDati = true; if(lastHasDati==false&&hasDati==true){ console.warn("老师发起了答题"); Notification.requestPermission(showNotifi(status,"老师发起了答题 快去看看!"));} }} if(hasDati) lastHasDati = true; else lastHasDati=false; for(var element of elements) { try { if(element.innerHTML == "签到") { element.click(); signNum = signNum+1; console.warn("签到了"+signNum+"次"); Notification.requestPermission(showNotifi(status,"刚刚进行了签到,已成功签到"+signNum+"次")); signElement.innerHTML = ("已签到"+signNum+"次"); setTimeout(clickConfirm,2000); break; } } catch(e){} } } function clickConfirm() { 'use strict'; var elements2 = document.getElementsByClassName("s-btn s-btn--primary s-btn--m"); for(var i = 0; i < elements2.length; i++) { try { var element = elements2[i]; if(element.innerHTML == "确定") { element.click(); break; } } catch(e){} } }