2023-08-17 20:33:56 +08:00
|
|
|
//上下文常量将在上方由程序注入
|
|
|
|
|
//const PROCESS_NAME = "进程名";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Web/PC端 直播页JS注入
|
|
|
|
|
* 正则: @".*:\/\/live.douyin\.com\/\d+"
|
|
|
|
|
**/
|
|
|
|
|
|
|
|
|
|
/*注入脚本 定时触发全局keydown,避免直播流被无操作阻断*/
|
|
|
|
|
|
|
|
|
|
// 创建一个虚拟的按键事件
|
|
|
|
|
const simulatedEvent = new KeyboardEvent('keydown', {
|
|
|
|
|
key: 'Virtual_Alt',
|
|
|
|
|
keyCode: 18, //alt
|
|
|
|
|
bubbles: true,
|
|
|
|
|
cancelable: true
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 获取要分派事件的目标元素,例如文档的根元素
|
|
|
|
|
const targetElement = document.documentElement;
|
|
|
|
|
|
|
|
|
|
// 设置定时器,每隔60秒模拟一次按键事件
|
|
|
|
|
setInterval(() => {
|
|
|
|
|
targetElement.dispatchEvent(simulatedEvent);
|
|
|
|
|
}, 1000 * 60);
|
|
|
|
|
|
|
|
|
|
// 订阅 keydown 事件 (Debug)
|
|
|
|
|
targetElement.addEventListener('keydown', event => {
|
|
|
|
|
if (event.key == "Virtual_Alt") {
|
|
|
|
|
console.log('[防挂机处理] 按下了', event.key);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
/*禁止关闭 Websocket*/
|
|
|
|
|
WebSocket.prototype.close = function () { return; }
|
|
|
|
|
|
|
|
|
|
|
2024-03-10 03:41:14 +08:00
|
|
|
/*判断是否自动关闭 */
|
|
|
|
|
//获取路由参数
|
|
|
|
|
function getQueryString(name) {
|
|
|
|
|
let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
|
|
|
|
|
let r = window.location.search.substr(1).match(reg); //search,查询?后面的参数,并匹配正则
|
|
|
|
|
if (r != null) return unescape(r[2]);
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (getQueryString("pause") === "true" || AUTOPAUSE === true) {
|
|
|
|
|
//自动暂停一次播放
|
|
|
|
|
var pauseIdx = setInterval(() => {
|
|
|
|
|
let playbtn = document.querySelector(".xgplayer-play");
|
|
|
|
|
if (!playbtn) return;
|
|
|
|
|
let status = playbtn.getAttribute("data-state");
|
|
|
|
|
if (status !== "play") return;
|
|
|
|
|
playbtn.click();
|
|
|
|
|
clearInterval(pauseIdx);
|
|
|
|
|
console.log("已自动暂停播放");
|
|
|
|
|
}, 500);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|