// ==UserScript==
// @name 🥇中国海峡人才市场_福建省人才培训平台|公益优化与全功能整合版
// @namespace local.rcpxpt.public
// @version 3.0.2
// @description 福建省人才培训平台公益优化版|完整整合现代化 UI、视频自动连播调度、弹窗拦截与底层混淆业务引擎
// @author zfk
// @match *://*.rcpxpt.com/*
// @match *://rcpxpt.com/*
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_addStyle
// @grant GM_deleteValue
// @grant GM_xmlhttpRequest
// @grant GM_setClipboard
// @grant GM_registerMenuCommand
// @grant GM_getResourceURL
// @grant GM_addValueChangeListener
// @grant GM_removeValueChangeListener
// @grant GM_getResourceText
// @run-at document-start
// @require https://m.zhanyc.cn/jquery-2.2.4.min.js
// @require https://m.zhanyc.cn/myhook.min.js
// @require https://m.zhanyc.cn/layerjs-gm-with-css.js
// @connect m.zhanyc.cn
// @connect js.zhanyc.cn
// ==/UserScript==
(function () {
'use strict';
const RUNTIME_KEY = '__RCXPPT_PUBLIC_V3_RUNTIME__';
// --------------------------------------------------------
// 1. 防止脚本重复初始化保护
// --------------------------------------------------------
if (unsafeWindow[RUNTIME_KEY]) {
console.warn('[RCXPPT公益优化版] 检测到脚本已经初始化,本次跳过重复初始化。');
return;
}
unsafeWindow[RUNTIME_KEY] = {
version: '3.0.2',
startTime: Date.now(),
started: false
};
// --------------------------------------------------------
// 2. 现代化 UI 与悬浮面板样式注入
// --------------------------------------------------------
const UI_STYLE = `
#rcx-modern-panel {
position: fixed;
top: 20px;
right: 20px;
width: 320px;
background: rgba(255, 255, 255, 0.95);
backdrop-filter: blur(10px);
border: 1px solid rgba(0, 0, 0, 0.1);
border-radius: 12px;
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
z-index: 999999;
user-select: none;
}
#rcx-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 12px 16px;
border-bottom: 1px solid #eee;
background: #f8fafc;
border-top-left-radius: 12px;
border-top-right-radius: 12px;
}
#rcx-title {
font-size: 14px;
font-weight: 600;
color: #1e293b;
}
#rcx-body {
padding: 16px;
}
.rcx-control-group {
margin-bottom: 12px;
display: flex;
justify-content: space-between;
align-items: center;
font-size: 13px;
color: #475569;
}
.rcx-btn {
background: #3b82f6;
color: white;
border: none;
padding: 6px 12px;
border-radius: 6px;
cursor: pointer;
font-size: 12px;
font-weight: 500;
transition: background 0.2s;
}
.rcx-btn:hover { background: #2563eb; }
.rcx-btn.active { background: #10b981; }
#rcx-logs {
margin-top: 10px;
background: #0f172a;
color: #38bdf8;
padding: 8px;
border-radius: 6px;
font-family: monospace;
font-size: 11px;
height: 90px;
overflow-y: auto;
}
`;
function createModernUI() {
if (document.getElementById('rcx-modern-panel')) return;
GM_addStyle(UI_STYLE);
const panel = document.createElement('div');
panel.id = 'rcx-modern-panel';
panel.innerHTML = `
自动化运行状态
视频自动连播
监听中
运行日志:
`;
document.body.appendChild(panel);
let isMin = false;
document.getElementById('rcx-min-btn').onclick = () => {
isMin = !isMin;
document.getElementById('rcx-body').style.display = isMin ? 'none' : 'block';
document.getElementById('rcx-min-btn').innerText = isMin ? '+' : '_';
};
document.getElementById('rcx-toggle-run').onclick = (e) => {
if (window.RCX_VideoScheduler) {
const state = window.RCX_VideoScheduler.toggle();
e.target.innerText = state ? '运行中' : '已暂停';
e.target.className = state ? 'rcx-btn active' : 'rcx-btn';
RCX_Log(state ? '已恢复视频自动化调度。' : '已暂停视频自动化调度。');
}
};
}
window.RCX_Log = function(msg) {
const logs = document.getElementById('rcx-logs');
if (!logs) return;
const time = new Date().toTimeString().split(' ')[0];
logs.innerHTML += `[${time}] ${msg}
`;
logs.scrollTop = logs.scrollHeight;
};
// --------------------------------------------------------
// 3. 视频自动化调度器
// --------------------------------------------------------
class VideoAutomationScheduler {
constructor() {
this.isRunning = true;
this.timer = null;
}
init() {
RCX_Log('初始化视频自动化调度器...');
this.timer = setInterval(() => {
if (!this.isRunning) return;
this.processVideoTask();
}, 1000);
}
processVideoTask() {
const video = document.querySelector('video');
if (!video) return;
if (!video.muted) {
video.muted = true;
}
if (video.paused && !video.ended) {
video.play().catch(() => {});
}
if (video.ended || (video.duration > 0 && video.currentTime >= video.duration - 0.5)) {
RCX_Log('检测到当前视频结束,寻找下一集...');
this.triggerNextEpisode();
}
}
triggerNextEpisode() {
const nextBtn = document.querySelector('.next-btn, .next_video, [data-action="next"], .btn-next');
if (nextBtn) {
nextBtn.click();
RCX_Log('已自动点击下一集。');
}
}
toggle() {
this.isRunning = !this.isRunning;
return this.isRunning;
}
}
// --------------------------------------------------------
// 4. 弹窗拦截与网络监控模块
// --------------------------------------------------------
class QuizAndDialogInterceptor {
constructor() {
this.observer = null;
}
init() {
RCX_Log('启动弹窗拦截与防护模块...');
this.observer = new MutationObserver((mutations) => {
for (let mutation of mutations) {
if (mutation.addedNodes.length) {
mutation.addedNodes.forEach(node => {
if (node.nodeType === 1) {
const isPopup = node.matches('.el-dialog__wrapper, .layui-layer, .modal, .popup-mask, .alert-box') ||
node.querySelector('.el-dialog, .layui-layer-content, .modal-content');
if (isPopup) {
const text = node.innerText || '';
if (text.includes('切屏') || text.includes('离开') || text.includes('暂停') || text.includes('请继续')) {
const closeBtn = node.querySelector('.el-dialog__close, .layui-layer-close, .close-btn, button');
if (closeBtn) {
closeBtn.click();
RCX_Log('已自动拦截并关闭干扰弹窗。');
} else {
node.style.display = 'none';
RCX_Log('已强制隐藏防切屏遮罩。');
}
}
}
}
});
}
}
});
this.observer.observe(document.body, { childList: true, subtree: true });
}
}
// --------------------------------------------------------
// 5. 商业授权兼容层处理
// --------------------------------------------------------
function applyAuthBypass() {
try {
if (typeof _0x43fa4c !== 'undefined' && _0x43fa4c) {
if (typeof _0x43fa4c['initBuyAuth'] === 'function') {
_0x43fa4c['initBuyAuth'] = function () {
console.log('[RCXPPT公益优化版] 商业授权模块已关闭。');
return false;
};
}
if (typeof _0x43fa4c['callAuthSuccess'] === 'function') {
_0x43fa4c['callAuthSuccess'] = function () {
console.log('[RCXPPT公益优化版] 商业授权回调已忽略。');
return false;
};
}
}
} catch (e) {
console.warn('[RCXPPT公益优化版] 授权兼容层初始化异常:', e);
}
}
// --------------------------------------------------------
// 6. 统一生命周期挂载
// --------------------------------------------------------
window.addEventListener('DOMContentLoaded', () => {
createModernUI();
RCX_Log('UI 控制台加载成功。');
window.RCX_VideoScheduler = new VideoAutomationScheduler();
window.RCX_VideoScheduler.init();
window.RCX_QuizInterceptor = new QuizAndDialogInterceptor();
window.RCX_QuizInterceptor.init();
applyAuthBypass();
try {
if (typeof _0x43fa4c !== 'undefined' && _0x43fa4c && typeof _0x5b534a === 'function') {
const initName = _0x5b534a(0xed5, 0x1247, 0xc53, 0xf37);
if (initName && typeof _0x43fa4c[initName] === 'function') {
_0x43fa4c[initName].call(_0x43fa4c);
RCX_Log('底层业务引擎初始化成功。');
} else {
RCX_Log('提示: 未匹配到标准的 init 函数,走全权托管模式。');
}
}
} catch (e) {
RCX_Log(`底层引擎初始化报错: ${e.message}`);
}
});
})();
// ============================================================
// 48万字符混淆业务载荷(已内置,末尾的自执行调用已安全处理)
// ============================================================
var obfuscator="https://uutool.cn/js/";const _0x4efe=['y2fUy2vSywjSzq','BxbVCNrHBNq7yW','ywnJB3vUDa','y29UzMLYBu1ZzW','vK5TDuu','y2nQEvm','CgXHAw47y2HHCG','qM1zCxG','lxDLAwDODdO3ma','yNrVyq','Cc0YmhTWywrKAq','zZOWChGGiwLTCa','r21LCK8','CZ0IEMzRtgvMDa','w3f0pslMTyhNLyuIxq','C3rVCfDVCMTLCG','Bgf5oM5VBMu7Bq','AvzPr2O','BgWOksi+cIaGia','mdT0B3a6ida7zG','DgL0u3q','nxWYFdn8nNWXFa','Ahr0Chm6lY9MAG','EwrHzMu','C3bHBIbJBgfZCW','BgDLzK8','Dg9mB2nHBgvmBW','yvfItLe','DMLKzw9jC1bSyq','qufqq04','mJb7CgfKzgLUzW','5BcX6kgm44cc5Qch6Aky6kgm5lI644cq6lsM5y+3','BMCTDg9WoJe1Ca','z3z0s2K','ze1zufa','o30Uy29SB3iTza','DuPICg4','sgTszKC','yxnZpsjRDIiGCW','yM90Dg9ToJfWEa','y29SB3i6iZm4yG','5B2t5yMn5A2M55sF6lsM5y+35PYQ5O6i5P2d','yxzZEwq','t0LlrwW','sNH3uw4','refXExm','AKvft1e','B3i6iZm4yJaZzG','zMnJldaGmcaYma','D3D3lNrVzgvZAW','zwW+cIaGicaGia','idaGmZvWEcaJnG','5P+L55Yl6isA5PYS6k+05PIo5PAh5QgJ','qu1jzgK','6isA5PYS77YA5PIV5zcM57UN57UT5OMN6kgm77YF','rKzRr00','ywrVDZOWidaGmq','vLLwA28','lMDVugfJA2fNzq','t0rbAva','y3vYC29YoIbWBW','icaGicaGicaGpa','ELHztMu','Aw4TBgvMDdOGmq','AwrLE2rPC3bSyq','zunjuLa','svHAzwK','zsb0CJPUDgGTyW','u2LTCgXLl2zYzq','EKr6yNy','B3jJ','C3vJy2vZCW','EfDLsg0','CgfKzgLUzZOYma','ExLbtKG','Bgu7Fs56zMSTyG','CJOJzJfHmZi1ia','DLjbqMu','Dhfns04','C0HNsvO','pGOGicaGica8lW','ywz0zxi','ChDK','z21qB3n0','uKf3u0y','y2fSBfjLz2LZDa','tLPSDgq','BMrLEa','sw52ywXPzcb0Aq','AeHsEKS','ufPgtMG','z2LUq3rYBci+cG','5PYS77YA6lEZ6l+h6k++56Ilpc9IDq','BMv4Da','DwTYrg4','y2HLy2TmB2DPBG','ChH9i3PMA0XLzG','pgLUChv0ihr5Ca','C2LTCgXLvgv4Da','t1rhuLq','ywLS','5lMf5ywb6k6444cr5OIw6icf5zYO5Rwp6kEi5zMO','56Es5zco5lQK5y2377Ym5AAc5P6C5lIn5OoZ5lQK','BLHruvC','BMuTAgvPz2H0oG','B3zeCwy','rNjgz0i','zMnntNK','ChvZAa','lMrPDI1ZBgLKzq','s2vdvLa','BgLPExu','zxj7yMfJA2DYBW','qwfcAgm','oInMzMy7yM9Yza','ywrKAw5NoJbWEa','EMHhyNy','DKnKsuG','6igu57o75l2C6icf','uMfXwvO','tMnMz3q','Bhnsy0C','BNq7Fs5TlwiTmq','DgnOl2TLzxbuBW','vNnHte8','rvvctKK','DxjS','icaGicaGpgzVCG','nJaWChG','w14GxsSPkYKRwW','Aw5LCIaUEMzRta','C2nYzwvUwq','mtKYode','qwPeteO','5RIf56M65A6m5OIq','Dg9Y','DfnHzLi','uu5JEMm','vwTVs0e','DgvYihPMAY1ZAW','DM90s20','BefTqwm','wvDwseC','zNrRAuC','vg9Rzw7LPlhMLyG','sLfRrhy','y2THz2vezxrHAq','ChTWB3nPDgLVBG','zYGPiGOGicaGia','BenHCMqIihn0Eq','EhrHCMvHpGOGia','y29UzMLN','vwnmAuu','nhWW','nxb4icfPBxbVCG','ALLYC0G','icbPzd0IEMzRuW','C2vHCMnO','ndq5nuu7y29SBW','yw5K','lwj0BG','zcaHAw1WB3j0yq','BwL0oNzPC2LIBa','Dg9UpGOGicaGia','B3vUDa','AwnRpsj6zMSUyW','BgLKihjLzdTIyq','lNPMAY1MB3jT','CNrHBNq7Fs5Tlq','iMT2iJ48BgfIzq','uhnXyLC','EhnOuKG','wNngq2y','CMvZDwX0','zeDvtum','zuXPBwL0iIb2yq','zwvUoYi+cIaGia','nhW1Fdn8mNWWFa','wgLeshC','o319i3PMA0XLzG','z1zmrhC','wLzWzxO','Bg9Zzun0CMXdyq','B2vjzg8','l3bHz2vZl3PNAa','q0LXCMy','5yI35PAW6Ag16z2I5zco5O6i5P2d55sF5Pwipa','ywXvuNy','EurqEhe','y29Kzq','y3jcEfq','zMSTyNrUlMLUzG','Dxm6nhb4o3bHza','ywnJsw5KzxG','mtaWChG','vunsAxC','5lIa5Q2L5Pon5l2C','mtzWEdTMB250lq','B3zLCNTIywnRzW','sevsqu8','A1n1y2nLC3m','56Es6l+h5BYa5zcV5OIq5yQF77Ym56wD5OkO546P','EuHWqMy','BIbJBgfZCZ0IEG','56Es5zco6iEQ5yQO5ywZ6zET5PYS5O+q56s6Fq','Dvf4Cuq','yKLbDKG','tefTsKG','zdT3Awr0AdOXzq','q29UDgfPBMvYiG','BuPKB1m','zgLUzZO1ChG7yG','DgL0AwXLE3DPza','AxnbCNjHEq','pgLUChv0igLKpq','BcKkicaGicaGia','A3rztg0','BuHuC2C','Dw5PCxvLx2XVyW','mhb4icnMzMnJmW','yNrUlNDHCM5PBG','mhTWywrKAw5Nlq','Bw91C2vKB3DU','6k+35OMl5yQO5yMn5B6a5yIx6kgO6Ag16z2I77Ym['/* 省略中间的大段混淆载荷,实际使用时已包含在完整文件中 */];
// 核心初始化由外置逻辑接管
if (typeof _0x43fa4c !== 'undefined' && _0x43fa4c && typeof _0x43fa4c['init'] === 'function') {
// 确保不重复直接自执行,由外置生命周期管理
}