Files
DanMuRead/BarrageGrab/Scripts/inject/livePage.js
T

61 lines
1.7 KiB
JavaScript
Raw Normal View History

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);
}