Warning: fopen(/www/sites/update.greasyfork.icu/index/store/temp/6a5d288924ecf8a7c97755d4862b68f8.js): failed to open stream: No space left on device in /www/sites/update.greasyfork.icu/index/scriptControl.php on line 65
// ==UserScript==
// @name yxy_live_auto_sign
// @namespace https://github.com/ufec/yxy_live_auto_sign
// @version 0.1.4
// @description 优学院直播/保利威直播自动签到 fuck ulearning
// @author ufec
// @license MIT
// @homepage https://github.com/ufec/yxy_live_auto_sign
// @supportURL https://github.com/ufec/yxy_live_auto_sign
// @match https://live.polyv.cn/watch/*
// @match https://www.ulearning.cn/ulearning/live.html?channelId=*
// @icon https://static.ulearning.cn/static/course_web/common/img/appicon_2.0.png
// @run-at document-end
// @downloadURL https://update.greasyfork.icu/scripts/450807/yxy_live_auto_sign.user.js
// @updateURL https://update.greasyfork.icu/scripts/450807/yxy_live_auto_sign.meta.js
// ==/UserScript==
(function() {
'use strict';
// 执行签到
function execSign() {
// 签到界面弹窗元素
let signDialog = document.querySelector(
'.plv-iar-btn-default.pws-btn-bg-color.pws-vclass-btn--primary',
);
if (signDialog == null) {
setTimeout(execSign, 3000);
return;
}
// 定位到具体签到Dialog
signDialog = signDialog.parentElement.parentElement.parentElement.parentElement.parentElement;
// 签到按钮
let signButton = null;
document
.querySelectorAll(
'.plv-iar-btn-default.pws-btn-bg-color.pws-vclass-btn--primary',
)
.forEach((btn) => {
if (btn.innerText == '立即签到') {
signButton = btn;
}
});
const polyvLiveAutoSignObserver = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
console.log('mutation: ', mutation);
if (
window.getComputedStyle(mutation.target).getPropertyValue('display') !=
'none'
) {
signButton.click(); // 点击签到按钮
const target = document.querySelector(".g-boundary.c-watch__main__inner"); // 目标元素
const newNode = document.createElement("p"); // 创建新元素
newNode.innerHTML = new Date().toLocaleString() + " 自动签到成功"; // 设置新元素内容
newNode.classList.add("g-boundary"); // 设置新元素样式
newNode.style = "color: #fff; padding: 5px 0;"; // 设置新元素样式
target.parentNode.insertBefore(newNode, target); // 插入到目标元素之前
}
});
});
alert('开始监听签到弹窗, flag is ' + String(polyvLiveAutoSignObserver instanceof MutationObserver));
polyvLiveAutoSignObserver.observe(signDialog, {
attributes: true,
attributeFilter: ['style'],
});
}
// 检查网页是否加载了签到弹窗
function check() {
const liveIframe = document.querySelector('#liveIframe');
if (liveIframe == null) {
setTimeout(check, 3000);
return;
}
// 监听iframe加载完成
liveIframe.onload = () => {
// 跳转到iframe
window.location.href = liveIframe.src;
};
execSign();
}
window.onload = function () {
if (window.location.href.indexOf('live.polyv.cn') > -1) {
// 保利威直播
execSign();
}else{
// 优学院直播
check();
}
};
})(window);