🎇🎇🎇防沉迷减点料🎇🎇🎇

[❤️支持全面] 已支持4366,37,9377,游戏狗,u7u9,7724,17yy,qq空间部分游戏,07073,7k7k,4399 4399网页游戏还能到点不踢 [⚡️更加快速] 0.99秒急速减料 [😱别怕大人] 大人来了就按"大人键" [✔️高可用率] 持续更新更靠谱 [🕶 手动减料] 防沉迷减料不成功? 对着防沉迷弹窗按快捷键 [😵‍💫智障减料] 误杀率高, 没卵用的实验性功能 [⛔ 强制登录] 7k7k 未成年限制登录个锤子 👍👍👍 热烈庆祝 GreasyFork 总安装量破千 👏👏👏

La data de 26-07-2022. Vezi ultima versiune.

// ==UserScript==
// @name         🎇🎇🎇防沉迷减点料🎇🎇🎇

// @description  [❤️支持全面] 已支持4366,37,9377,游戏狗,u7u9,7724,17yy,qq空间部分游戏,07073,7k7k,4399 4399网页游戏还能到点不踢 [⚡️更加快速] 0.99秒急速减料 [😱别怕大人] 大人来了就按"大人键" [✔️高可用率] 持续更新更靠谱 [🕶 手动减料] 防沉迷减料不成功? 对着防沉迷弹窗按快捷键 [😵‍💫智障减料] 误杀率高, 没卵用的实验性功能 [⛔ 强制登录] 7k7k 未成年限制登录个锤子 👍👍👍 热烈庆祝 GreasyFork 总安装量破千 👏👏👏

// @namespace    https://fcmsb250.github.io/
// @version      4.8.3
// @icon         https://dsy4567.github.io/logo.svg
// @author       dsy4567 https://greasyfork.org/zh-CN/users/822325 | https://github.com/dsy4567
// @run-at       document-start
// @require      https://code.jquery.com/jquery-3.6.0.min.js
// @license      GPL-3.0

// @match        *://*.17yy.com/*
// @match        *://*.4399.com/*
// @match        *://*.7k7k.com/*
// @match        *://*.aiwan4399.com/*
// @match        *://*.iwan4399.com/*
// @match        *://*.zxwyouxi.com/*
// @match        *://*.5054399.net/*
// @match        *://*.5054399.com/*
// @match        *://h5.07073.com/*
// @match        *://*.7724.com/*
// @match        *://*.u7u9.com/*
// @match        *://*.gamedog.cn/*
// @match        *://*.9377.com/*
// @match        *://*.37.com/*
// @match        *://*.4366.com/*

// @grant        GM_addStyle
// @grant        GM_addValueChangeListener
// @grant        GM_getValue
// @grant        GM_info
// @grant        GM_notification
// @grant        GM_openInTab
// @grant        GM_registerMenuCommand
// @grant        GM_setValue
// @grant        GM_unregisterMenuCommand
// @grant        unsafeWindow

// @homepageURL  https://fcmsb250.github.io/
// @supportURL   https://github.com/dsy4567/Fucking-Anti-Indulgence/

// ==/UserScript==

/**
 *  ________ ___  ___  ________  ___  __            ___  _________
 * |\  _____\\  \|\  \|\   ____\|\  \|\  \         |\  \|\___   ___\     |
 * \ \  \__/\ \  \\\  \ \  \___|\ \  \/  /|_       \ \  \|___ \  \_|     |
 *  \ \   __\\ \  \\\  \ \  \    \ \   ___  \       \ \  \   \ \  \      |
 *   \ \  \_| \ \  \\\  \ \  \____\ \  \\ \  \       \ \  \   \ \  \     |
 *    \ \__\   \ \_______\ \_______\ \__\\ \__\       \ \__\   \ \__\   \|/
 *     \|__|    \|_______|\|_______|\|__| \|__|        \|__|    \|__|    v
 *
 * ________________________________________________________________
 * |                                                              |
 * |                       未成年限制登录提醒                     |
 * |                                                              |
 * |您使用的是未成年账号,仅周五、周六、周日及法定节假日晚上8:00- |
 * |9:00可以游戏!当前已被限制!                                  |
 * |                                                              |
 * |            ______________________________________            |
 * |            |           下次可玩游戏时段         |            |
 * |            |                                    |            |
 * |            |         本周五晚上8:00-9:00        |            |
 * |            |____________________________________|            |
 * |                                                              |
 * |温馨提示:                                                    |
 * |1.如果身份信息有误,请点击》》申请修改《《                    |
 * |2.如果您身份信息已经变动,可点击》》刷新身份《《              |
 * |                ____________    ____________                  |
 * |                |          |    |          |                  |
 * |                | 更换账号 |    |   确定   |                  |
 * |                |__________|    |__________|                  |
 * |______________________________________________________________|
 */

"use strict";
var D = new Date();

// if (self == top) {
//     if (
//         GM_getValue("版本") != GM_info.script.version &&
//         GM_info.script.version == "4.8.1.1"
//     ) {
//         GM_notification(
//             "快看看有什么新功能吧",
//             "🎇🎇🎇防沉迷减点料🎇🎇🎇 更新完毕",
//             "",
//             () => {
//                 GM_openInTab(
//                     "https://greasyfork.org/zh-CN/scripts/437233-%E9%98%B2%E6%B2%89%E8%BF%B7%E5%8A%A0%E7%82%B9%E6%96%99"
//                 );
//             }
//         );
//     }
// }

function 改变值(值, 默认值, 回调) {
    if (GM_getValue(值, 默认值) == "1") {
        GM_setValue(值, "0");
    } else if (GM_getValue(值, 默认值) == "0") {
        GM_setValue(值, "1");
    } else {
        GM_setValue(值, 默认值);
    }
    if (回调) {
        回调();
    }
}
function 初始化值(值, 默认值, 回调) {
    if (GM_getValue(值, "天知道是啥") == "天知道是啥") {
        GM_setValue(值, 默认值);
    }
    if (回调) {
        回调();
    }
}
function 检测状态(值) {
    if (GM_getValue(值) == "1") {
        return "✅已启用 ";
    } else if (GM_getValue(值) == "0") {
        return "❌已停用 ";
    } else {
        return "⚠️配置错误 ";
    }
}
function qs(选择器) {
    return document.querySelector(选择器);
}
function qsa(选择器) {
    return document.querySelectorAll(选择器);
}

// GM_setValue("版本", GM_info.script.version);
初始化值("安装日期", String(Math.floor(D.getTime() / 1000 / 60 / 60 / 24)));
初始化值("已提建议", "0");
初始化值("停用快捷键", "0");
初始化值("开发环境", "0");

var 用了多少天 =
    Math.ceil(D.getTime() / 1000 / 60 / 60 / 24) -
    Number(GM_getValue("安装日期"));
var 减料成功 = 0;
var 一个弹窗的样式 = { remove: () => {} };
var 最后一个菜单id = 0;
var 游戏真实地址_17yy = "";
/**
 * @type {Function}
 */
var _playLoading;
var 开发者配置 = {};

const 网址 = location.href;
const 脚本信息 = JSON.stringify({
    浏览器: navigator.userAgent,
    脚本能更新: GM_info.scriptWillUpdate,
    脚本版本: GM_info.script.version,
    脚本更新地址: GM_info.script.updateURL,
    脚本管理器: GM_info.scriptHandler,
    脚本管理器版本: GM_info.version,
    用多久: 用了多少天,
});

if (GM_getValue("开发环境") == "1") {
    开发者配置.启用控制台输出 = 1;
    // 开发者配置.启用调试 = 1;
    开发者配置.禁用自动防沉迷减料 = 1;
    开发者配置.在控制台使用脚本变量函数和GM = 1;
} else {
    开发者配置.启用控制台输出 = 0;
    开发者配置.启用调试 = 0;
    开发者配置.禁用自动防沉迷减料 = 0;
    开发者配置.在控制台使用脚本变量函数和GM = 0;
}

var 一堆伞兵玩意 = [
    "#addiv",
    "#anti-indulge",
    "#anti-indulge-prompt",
    "#Anti_mask",
    "#Anti_open",
    "#app > div > div.cover.splash",
    "#chCoverDiv",
    "#codepop6",
    "#cover",
    "#div_dialog",
    "#easyDialogBox",
    "#fcmIframe",
    "#Guide",
    "#loginCertify",
    "#messageBox",
    "#overlay",
    "#page_wallpaper > div.xiaowei.xiaowei-orange > div.xw-left > div.xw-game > div.xw-top > div > div",
    "#pop2",
    "#pusher",
    "#shadow",
    "#swfdiv > div.box",
    "#tc100",
    "#yx_log",

    ".codegs",
    ".cmMask",
    ".fixedModal",
    ".mask",
    ".play_load",
    ".popup-c",
    ".realName",
    ".sdkDialog",
    ".toolDialog",
    ".ui-forbidden",
    ".webtipss",

    "body > div.show_box.popup_bg",
];

/**
 * 为某个字符串获取两个字符串中间的字符串(不包括那两个字符串)
 * @param {String} 开始
 * @param {String} 结束
 * @param {String} 值
 * @param {String} 类型 "1": 网址, "2": 字母 + 数字, "3": 数字
 * @param {String} 前面追加
 * @returns {String}
 */
function 获取中间(开始, 结束, 值, 类型, 前面追加) {
    值 = 值.substring(值.indexOf(开始) + 开始.length);
    if (结束) {
        值 = decodeURI(值.substring(0, 值.indexOf(结束)));
    }
    if (前面追加) {
        值 = 前面追加 + 值;
    }
    switch (类型) {
        case "1":
            if (
                !(
                    值.substring(0, 2) == "//" ||
                    值.substring(0, 7) == "http://" ||
                    值.substring(0, 8) == "https://"
                )
            ) {
                throw new Error("不正确的字符串");
            }
            break;
        case "2":
            if (!/^[0-9a-zA-Z]*$/g.test(值)) {
                throw new Error("不正确的字符串");
            }
            break;
        case "3":
            if (isNaN(Number(值))) {
                throw new Error("不正确的字符串");
            }
            break;

        default:
            break;
    }
    return 值;
}

function 首字母大写(str) {
    str = str[0].toUpperCase() + str.substring(1, str.length);
    return str;
}

function log(a, b, c, d, e, f, g) {
    if (开发者配置.启用控制台输出) console.log(a, b, c, d, e, f, g);
}

function 智障减料() {
    let 游戏元素id或class = ["flash", "game", "play", "youxi", "swf", "flash"];
    let 防沉迷元素id或class = [
        "anti",
        "fcm",
        "verify",
        "mask",
        "certify",
        "dialog",
        "popup",
        "login",
        "cover",
    ];
    let 临时数组 = [];
    let 样式表 = "";

    游戏元素id或class.forEach((str) => {
        临时数组.push(
            "iframe[id*='" + str + "'],",
            "iframe[class*='" + str + "'],",
            "iframe[id*='" + str.toUpperCase() + "'],",
            "iframe[class*='" + str.toUpperCase() + "'],",
            "iframe[id*='" + 首字母大写(str) + "'],",
            "iframe[class*='" + 首字母大写(str) + "'],"
        );
    });
    临时数组.forEach((str) => {
        样式表 += str;
    });
    样式表 += `#ctmdfcm
            {
                display: block !important;
                left: 0 !important;
                top: 0 !important;
                position: absolute !important;
                z-index: 999999 !important;
            }`;
    临时数组 = [];

    防沉迷元素id或class.forEach((str) => {
        临时数组.push(
            "[id*='" + str + "'],",
            "[class*='" + str + "'],",
            "[id*='" + str.toUpperCase() + "'],",
            "[class*='" + str.toUpperCase() + "'],",
            "[id*='" + 首字母大写(str) + "'],",
            "[class*='" + 首字母大写(str) + "'],"
        );
    });
    临时数组.forEach((str) => {
        样式表 += str;
    });
    样式表 += `#ctmdfcm
            {
                display: none !important;
                min-width: 0 !important;
                width: 0 !important;
                max-width: 0 !important;
                min-height: 0 !important;
                height: 0 !important;
                max-height: 0 !important;
                z-index: -999 !important;
                font-size: 0 !important;
                overflow: hidden !important;
            }`;
    临时数组 = [];

    GM_addStyle(样式表);
}

// function get(url, call) {
//     let xhr = new XMLHttpRequest();
//     let response = "";
//     xhr.open("get", url);
//     xhr.send(null);
//     xhr.onload = () => {
//         response = xhr.responseText;
//         call(response);
//     };
// }

// function ajax(o) {
//     let xhr = new XMLHttpRequest();
//     let response = "";
//     xhr.open("post", o.url);
//     xhr.send("action=getStatus&id=" + o.data.id);
//     xhr.onload = () => {
//         response = xhr.responseText;
//         o.success(JSON.parse(response));
//     };
// }

function 更新菜单() {
    const 一堆菜单 = [
        ["⚠️沉迷于游戏不利于身心健康,请合理安排游戏时间,适度游戏⚠️"],
        ["❤️您已尽情欢乐" + 用了多少天 + "天", undefined, undefined, 1],
        [
            "✨没有防沉迷的游戏平台(作者没有收钱)",
            () => {
                GM_openInTab("https://fcmsb250.github.io/no-anti.html");
            },
            undefined,
            1,
        ],
        [
            "👉再次减料按 alt +  鼠标中键",
            () => {
                减料成功 = 0;
                if (_playLoading) {
                    unsafeWindow.play22.playLoading = _playLoading;
                }
                减料();
                普通减料();
            },
            undefined,
        ],
        [
            "👉大人来了按 shift + 鼠标中键 (解除请再次减料)",
            () => {
                大人来了();
            },
            undefined,
        ],
        [
            "👉手动减料对着防沉迷按 shift + alt + 鼠标右键",
            () => {
                alert("手动减料对着防沉迷按 shift + alt + 鼠标右键");
            },
            undefined,
        ],
        [
            "👉智障减料(不保证实用性)",
            () => {
                GM_setValue("开始智障减料", Math.random());
            },
            undefined,
        ],
        [
            检测状态("停用快捷键") + " 停用快捷键",
            () => {
                改变值("停用快捷键", "0", () => {
                    更新菜单();
                });
            },
            undefined,
        ],
        [
            "👍给个好评/📝反馈问题",
            () => {
                GM_openInTab(
                    "https://greasyfork.org/zh-CN/scripts/437233/feedback"
                );
            },
            undefined,
        ],
        [
            "⛔解决访问错误",
            () => {
                location.href = 网址;
            },
            undefined,
        ],
        [
            "⛔7k7k强制登录",
            () => {
                location.href =
                    "http://www.7k7k.com/swf/204220.htm?fai-doLogin";
            },
            undefined,
        ],
    ];
    最后一个菜单id = 一堆菜单.length;

    // TM
    for (
        let 菜单id = 最后一个菜单id - 一堆菜单.length * 2;
        菜单id < 最后一个菜单id + 一堆菜单.length * 2;
        菜单id++
    ) {
        GM_unregisterMenuCommand(菜单id);
    }

    // VM
    一堆菜单.forEach((菜单) => {
        GM_unregisterMenuCommand(菜单[0]);
    });
    GM_unregisterMenuCommand("✅已启用 停用快捷键");
    GM_unregisterMenuCommand("❌已停用 停用快捷键");
    GM_unregisterMenuCommand("⚠️配置错误 停用快捷键");

    一堆菜单.forEach((菜单) => {
        const 菜单名 = 菜单[0];
        const 函数 = 菜单[1];
        const 快捷键 = 菜单[2];

        最后一个菜单id = GM_registerMenuCommand(菜单名, 函数, 快捷键);
    });
}

function 大人来了() {
    log("[防沉迷减点料] 大人来了");
    try {
        一个弹窗的样式.remove();
        log("[防沉迷减点料] 已去除样式");
    } catch (err) {}

    一个弹窗的样式 = GM_addStyle(
        '*{margin:0;padding:0}ul{list-style:none;}.fl{float:left;}.fr{float:right;}.mysdkDialog{position:absolute;left:50%;top:50vh;margin:-210px 0 0 -309px;width:618px;z-index:20020}.mysdkDialog .myfcmdialog{color:black;position:absolute;left:0;top:0;width:620px;padding-bottom:30px;font-family:"microsoft yahei";font-size:14px;background:#fff;border-radius:8px;}.mysdkDialog .myfcmdialog .close-btn{position:absolute;right:0;top:0;width:40px;height:40px;background-color:red;line-height:40px;cursor:pointer;display:none}.mysdkDialog .myfcmdialog .title{line-height:30px;text-align:center;font-size:22px;font-weight:700;padding:25px 0 0;margin:0 40px;color:#454545;border:0;height:auto;float:none;width:auto;text-indent:0;}.mysdkDialog .myfcmdialog .stitle{text-align:left;line-height:1.6;margin:15px 40px 0;font-size:16px;}.mysdkDialog .myfcmdialog .stitle span{color:#ffa92d;}.mysdkDialog .myfcmdialog .mod-tip{margin:20px 40px 0;background:#F0F0F0;padding:12px 15px;border-radius:4px;color:#333;text-align:left}.mysdkDialog .myfcmdialog .tip-title{font-size:16px;font-weight:400;}.mysdkDialog .myfcmdialog .tip-info{margin-top:5px;line-height:26px;font-size:14px;}.mysdkDialog .myfcmdialog .tip-info li{font-size:16px;line-height:26px}.mysdkDialog .myfcmdialog .tip-info a{color:#FAA61B;text-decoration:underline;margin:0 4px;cursor:pointer;}.mysdkDialog .myfcmdialog .mod-btn{text-align:center;font-size:0;line-height:0;margin:25px 40px 0;}.mysdkDialog .myfcmdialog .mod-btn .btn-fcmprimary{display:inline-block;width:140px;height:38px;line-height:38px;border:1px solid #69bb01;color:#69bb01;font-size:14px;margin:0 15px;border-radius:5px;cursor:pointer;}.mysdkDialog .myfcmdialog .mod-btn .fr,.mysdkDialog .myfcmdialog .mod-btn .fl{width:250px;margin:0;}.mysdkDialog .myfcmdialog .mod-btn .btn-fcmprimary:hover{-webkit-filter:brightness(1);filter:brightness(1)}.mysdkDialog .myfcmdialog .mod-btn .btn-identity{background-color:#69bb01;color:#f8ffef}.fcmIframe{position:absolute;left:50%;top:270px;margin:0 0 0 -309px;width:618px;height:354px;z-index:2019;border:0 none;background-color:#000}.countDown{background:#eee;border-radius:3px;padding:10px;text-align:center;margin:20px 40px 0;font-size:16px;color:#666}.countDown .txt1{font-size:16px;height:28px;line-height:28px;color:#717171;}.countDown .txt2{height:40px;line-height:40px;font-size:26px;font-weight:bold;color:#54ba3d;}.mycmMask{display:none;width:100%;position:absolute;left:0;top:0;background:rgb(0,0,0);}'
    ); // 不知道从哪借(chao)鉴(xi)来的
    let 一个弹窗 = document.createElement("div");
    一个弹窗.className = "mysdkDialog";
    一个弹窗.innerHTML +=
        '<div class="myfcmdialog"><span class="close-btn">关闭</span><h2 class="title">未成年限制登录提醒</h2><div class="stitle">您使用的是未成年账号,仅周五、周六、周日及法定节假日晚上8:00-9:00可以游戏!当前已被限制!</div><div class="countDown" style=""><p class="txt1">下次可玩游戏时段</p><p class="txt2">本周五晚上8:00-9:00</p></div><div class="countDown" style="display:none">当前已限制游戏</div><div class="mod-tip" style=""><h3 class="tip-title">温馨提示:</h3><ul class="tip-info">1.如果身份信息有误,请点击<a href="https://u.4399.com/profile/realname-bizId-1199006632.html" target="_blank">》》申请修改《《</a><br>2.如果您身份信息已经变动,可点击<a target="_self" href="#">》》刷新身份《《</a></ul></div><div class="mod-btn" style=""><span class="btn-fcmprimary">更换账号</span><span class="btn-fcmprimary">确定</span></div></div>';
    // 不知道从哪借(chao)鉴(xi)来的
    document.body.appendChild(一个弹窗);
    let 遮罩 = document.createElement("div");
    遮罩.className = "mycmMask";
    遮罩.style.cssText =
        "height: " +
        document.documentElement.offsetHeight +
        "px; z-index: 9999; display: block";
    遮罩.innerHTML = "";
    document.body.appendChild(遮罩);
}

function 减料() {
    if (减料成功) {
        return log("[防沉迷减点料] 减料被取消");
    }

    let 开始 = new Date().getTime();

    let $full_screen_frame = qs("#full_screen_frame");
    let $app_canvas_frame = qs("#app_canvas_frame");
    let $ifm = qs("#ifm");

    if (网址.includes("4399")) {
        // 搞破坏
        if (开发者配置.启用调试) {
            debugger;
        }

        try {
            Object.defineProperty(unsafeWindow, "smevent", {
                value: null, // 原来是Function, 这样做可以使防沉迷报错
                writable: false,
            });
            减料成功 = 1;
        } catch (e) {}
        try {
            Object.defineProperty(unsafeWindow, "PageWebApiSdk", {
                value: null,
                writable: false,
            });
            减料成功 = 1;
        } catch (e) {}
        try {
            Object.defineProperty(unsafeWindow, "getBizid", {
                value: null,
                writable: false,
            });
            减料成功 = 1;
        } catch (e) {}
    } else if (unsafeWindow.play22 && 网址.includes("7k7k.com")) {
        // 7k7k获取游戏直链1
        if (开发者配置.启用调试) {
            debugger;
        }

        try {
            log("[防沉迷减点料] 尝试7k7k防沉迷减料");
            if (开发者配置.启用调试) {
                debugger;
            }
            // unsafeWindow.Play24.prototype.playLoading();
            unsafeWindow.play22.playLoading();
            if (!_playLoading) {
                _playLoading = unsafeWindow.play22.playLoading;
            }
            unsafeWindow.play22.playLoading = () => {}; // 防止重复调用
            减料成功 = 1;
            // unsafeWindow.Play24.prototype.playLoading = ()=> {};
        } catch (err) {
            console.error(err);
        }
    } else if ($ifm && 网址.includes("m.7k7k.com/player")) {
        if (开发者配置.启用调试) {
            debugger;
        }

        if ($ifm.src != location.href && $ifm.src) {
            // 7k7k获取游戏直链2
            try {
                log("[防沉迷减点料] 尝试7k7k手机端防沉迷减料");
                if (开发者配置.启用调试) {
                    debugger;
                }
                减料成功 = 1;
                location.href = $ifm.src;
            } catch (err) {
                console.error(err);
            }
        }
    } else if (网址.includes("h5.7k7k.com/web/H5GAMES.html")) {
        if (开发者配置.启用调试) {
            debugger;
        }

        // 7k7k获取游戏直链3
        try {
            log("[防沉迷减点料] 尝试7k7k h5页游防沉迷减料");
            if (开发者配置.启用调试) {
                debugger;
            }

            $.get(
                "http://h5.7k7k.com/api_redirect/game/start/?client=0&account=" +
                    获取中间("userid=", ";", document.cookie, "2") +
                    "&appkey=" +
                    获取中间("gid=", "&", 网址, "2") +
                    "&uid=" +
                    获取中间("userid=", ";", document.cookie, "2") +
                    "&tid=" +
                    获取中间("tid=", "&", 网址, "2"),
                (json) => {
                    location.href = JSON.parse(json).url;
                }
            );
            减料成功 = 1;
        } catch (err) {
            console.error(err);
        }
    } else if (网址.includes("h5.7k7k.com/game/")) {
        // 7k7k获取游戏直链3
        try {
            if (开发者配置.启用调试) {
                debugger;
            }

            console.log("[防沉迷减点料] 尝试7k7k h5页游(手机端)防沉迷破解");
            _$.get(
                "http://h5.7k7k.com/api_redirect/game/start/?client=0&account=" +
                    获取中间("userid=", ";", document.cookie, "2") +
                    "&appkey=" +
                    // eslint-disable-next-line no-undef
                    unsafeWindow.gid[0] +
                    "&uid=" +
                    获取中间("userid=", ";", document.cookie, "2") +
                    "&tid=" +
                    // eslint-disable-next-line no-undef
                    unsafeWindow.tid,
                (json) => {
                    let url = JSON.parse(json).url;
                    if (url) location.href = url;
                }
            );
            减料成功 = 1;
        } catch (err) {
            console.error(err);
        }
    } else if ($app_canvas_frame) {
        if (开发者配置.启用调试) {
            debugger;
        }

        try {
            if ($app_canvas_frame.src && $app_canvas_frame.src != 网址) {
                log("[防沉迷减点料] 尝试阻止QQ空间自动跳转1");
                if (开发者配置.启用调试) {
                    debugger;
                }
                减料成功 = 1;
                location.href = $app_canvas_frame.src;
            }
        } catch (err) {
            console.error(err);
        }
    } else if ($full_screen_frame) {
        if (开发者配置.启用调试) {
            debugger;
        }

        try {
            if ($full_screen_frame.src && $full_screen_frame.src != 网址) {
                log("[防沉迷减点料] 尝试阻止QQ空间自动跳转2");
                if (开发者配置.启用调试) {
                    debugger;
                }
                减料成功 = 1;
                location.href = $full_screen_frame.src;
            }
        } catch (err) {
            console.error(err);
        }
    } else if (网址.includes("//i.7724.com/user/danjilogin?url=")) {
        if (开发者配置.启用调试) {
            debugger;
        }

        try {
            log("[防沉迷减点料] 尝试7724防沉迷减料");
            // var url = 网址.substring(网址.indexOf("danjilogin?url=") + "danjilogin?url=".length);
            // if (
            //     url.substring(0, 2) == "//" ||
            //     url.substring(0, 7) == "http://" ||
            //     url.substring(0, 8) == "https://"
            // ) {
            // }
            let url = 获取中间("danjilogin?url=", undefined, 网址, "1");
            location.href = url;
            减料成功 = 1;
        } catch (err) {}
    } else if (网址.includes("wvw.9377.com/game_login.php")) {
        if (开发者配置.启用调试) {
            debugger;
        }

        try {
            log("[防沉迷减点料] 尝试9377防沉迷减料");
            $.get(网址, (html) => {
                // var url = html.substring(
                //     html.indexOf('id="iframe" src="') + 'id="iframe" src="'.length,
                //     html.indexOf('" name="mainFrame" scrolling="auto"')
                // );
                let url = 获取中间(
                    'id="iframe" src="',
                    '" name="mainFrame" scrolling="auto"',
                    html,
                    "1"
                );
                location.href = url;
            });
            减料成功 = 1;
        } catch (err) {}
    } else if (网址.includes("game.37.com/play.php")) {
        if (开发者配置.启用调试) {
            debugger;
        }

        try {
            log("[防沉迷减点料] 尝试37防沉迷减料");
            $.get(网址, (html) => {
                // var url = html.substring(
                //     html.indexOf('src="//gameapp.37.com/controller/enter_game.php') +
                //         'src="'.length,
                //     html.indexOf('" id="mainFrame"')
                // );
                let url = 获取中间(
                    'src="//gameapp.37.com/controller/enter_game.php',
                    '" id="mainFrame"',
                    html,
                    "1",
                    "//gameapp.37.com/controller/enter_game.php"
                );
                location.href = url;
            });
            减料成功 = 1;
        } catch (err) {}
    } else if (网址.includes("wvw.4366.com/game_login.php")) {
        if (开发者配置.启用调试) {
            debugger;
        }

        try {
            log("[防沉迷减点料] 尝试4366防沉迷减料");
            $.get(网址, (html) => {
                // var url = html.substring(
                //     html.indexOf('align="left" id="iframe" src="') +
                //         'align="left" id="iframe" src="'.length,
                //     html.indexOf('" name="mainFrame" scrolling="auto"')
                // // );
                // if (
                //     url.substring(0, 2) == "//" ||
                //     url.substring(0, 7) == "http://" ||
                //     url.substring(0, 8) == "https://"
                // ) {
                //     location.href = url;
                // }
                let url = 获取中间(
                    'align="left" id="iframe" src="',
                    '" name="mainFrame" scrolling="auto"',
                    html,
                    "1"
                );
                location.href = url;
            });
            减料成功 = 1;
        } catch (err) {}
    } else if (网址.includes("www.17yy.com/f/play")) {
        if (开发者配置.启用调试) {
            debugger;
        }

        try {
            try {
                if (qs("#flashgame").src == 游戏真实地址_17yy) return;
            } catch (e) {}
            try {
                if (qs("#flash_frame").src == 游戏真实地址_17yy) return;
            } catch (e) {}

            $.ajax({
                url: "http://www.17yy.com/e/payapi/vip_ajax.php",
                data: {
                    action: "getStatus",
                    id: 获取中间("/f/play/", ".html", 网址, "3"),
                },
                type: "POST",
                dataType: "json",
                success: function (resp) {
                    try {
                        qs("#flashgame").src = 游戏真实地址_17yy =
                            "http://" +
                            unsafeWindow.server +
                            "/" +
                            unsafeWindow.classes +
                            "/" +
                            unsafeWindow.date +
                            "/" +
                            resp.data.game_path;
                    } catch (e) {}
                    try {
                        qs("#flash_frame").src = 游戏真实地址_17yy =
                            "http://" +
                            unsafeWindow.server +
                            "/" +
                            unsafeWindow.classes +
                            "/" +
                            unsafeWindow.date +
                            "/" +
                            resp.data.game_path;
                    } catch (e) {}
                },
            });
            减料成功 = 1;
        } catch (err) {}
    }

    if (开发者配置.输出减料时间) {
        log(
            "[防沉迷减点料] 减料结束, 用时" +
                (new Date().getTime() - 开始) +
                "ms"
        );
    }
}

function 普通减料() {
    try {
        // 简单暴力的减料方式
        for (let 索引 = 0; 索引 < 一堆伞兵玩意.length; 索引++) {
            const element = 一堆伞兵玩意[索引];
            if (qsa(element)[0]) {
                qsa(element).forEach((el) => {
                    el.remove();
                    log("[防沉迷减点料] -减料成功- " + element);
                });
            }
        }

        [".mycmMask", ".myfcmdialog", ".mysdkDialog"].forEach((element) => {
            if (qsa(element)[0]) {
                qsa(element).forEach((el) => {
                    el.remove();
                    log("[防沉迷减点料] -解除大人来了成功- " + element);
                });
            }
        });

        try {
            一个弹窗的样式.remove();
            log("[防沉迷减点料] 已去除样式");
        } catch (err) {}
    } catch (err) {
        console.error(err);
    }
}

function 减点料() {
    // 多来几次以防万一
    if (!开发者配置.禁用自动防沉迷减料) {
        减料();
        for (let i = 1; i < 10; i++) {
            setTimeout(减料, i * 500);
        }
    }
}

// 加样式表
if (!开发者配置.禁用自动防沉迷减料) {
    let css = "";
    for (let 索引 = 0; 索引 < 一堆伞兵玩意.length; 索引++) {
        const element = 一堆伞兵玩意[索引];
        css += element + ",";
    }
    css += `#ctmdfcm
            {
                display: none !important;
                min-width: 0 !important;
                width: 0 !important;
                max-width: 0 !important;
                min-height: 0 !important;
                height: 0 !important;
                max-height: 0 !important;
                z-index: -999 !important;
                font-size: 0 !important;
                overflow: hidden !important;
            }`;
    GM_addStyle(css);
    log("[防沉迷减点料] 加样式表成功");
}

// 一些无关紧要的代码
(async () => {
    GM_addValueChangeListener(
        "开始智障减料",
        (name, old_value, new_value, remote) => {
            智障减料();
        }
    );

    if (self == top) {
        //判断是否在iframe中
        // 烦人的提醒
        if (用了多少天 >= 3 && GM_getValue("已提建议") == "0") {
            GM_setValue("已提建议", "1");
            GM_notification(
                "请给我提点建议,帮助这个脚本变得更好",
                "🎇🎇🎇防沉迷减点料🎇🎇🎇 用的怎样?",
                "",
                () => {
                    GM_openInTab(
                        "https://greasyfork.org/zh-CN/scripts/437233/feedback"
                    );
                }
            );
        }
        更新菜单();

        // 精美图片
        log(
            "%c    ",
            "font-size:512px;background-size:100% 100%;background-repeat:no-repeat;background-image:url(https://fcmsb250.github.io/fuck-anti.webp);"
        );
    }

    // 快捷键
    document.addEventListener(
        "mousedown",
        function (e) {
            if (GM_getValue("停用快捷键") == "0") {
                if (e.button == 1 && e.shiftKey && !e.altKey) {
                    大人来了();
                }
                if (e.button == 2 && e.shiftKey && e.altKey) {
                    let el = document.elementFromPoint(e.x, e.y);
                    log(
                        "[防沉迷减点料] -手动减料成功- ." +
                            el.className +
                            " #" +
                            el.id +
                            " <" +
                            el.tagName +
                            ">"
                    );
                    el.style.display = "none";
                }
                if (e.button == 1 && e.altKey && !e.shiftKey) {
                    减料成功 = 0;
                    减料();
                    普通减料();
                }
            }
        },
        true
    );

    if (网址.includes("ptlogin.4399.com")) {
        setTimeout(() => {
            if (document.querySelector(".ptlogin_btn")) {
                document
                    .querySelector(".ptlogin_btn")
                    .addEventListener("mouseup", () => {
                        alert("请在稍后刷新网页");
                    });
            }
        }, 1000);
    }

    if (location.host == "www.7k7k.com") {
        try {
            document.querySelector("div.login_no").title =
                "✨防沉迷减点料支持7k7k强制登录, 请移步至脚本菜单";
        } catch (e) {}

        if (location.href.includes("fai-doLogin"))
            document
                .querySelector("div.login_no > div.h_login.login_btn > span")
                .click();
    }

    if (qs("script[src*='chpenmljpdpkebnohfbbdpfelabcnlnp']")) {
        GM_registerMenuCommand(
            "⚠️您已经安装了防沉迷终结者, 不推荐二者同时使用"
        );
    }

    if (开发者配置.在控制台使用脚本变量函数和GM) {
        unsafeWindow.更新在控制台使用的脚本变量函数和GM = () => {
            // GM_*
            unsafeWindow._GM_addStyle = GM_addStyle;
            unsafeWindow._GM_getValue = GM_getValue;
            unsafeWindow._GM_info = GM_info;
            unsafeWindow._GM_notification = GM_notification;
            unsafeWindow._GM_openInTab = GM_openInTab;
            unsafeWindow._GM_registerMenuCommand = GM_registerMenuCommand;
            unsafeWindow._GM_setValue = GM_setValue;
            unsafeWindow._GM_unregisterMenuCommand = GM_unregisterMenuCommand;

            // 普通变量
            unsafeWindow._D = D;
            unsafeWindow._最后一个菜单id = 最后一个菜单id;
            // unsafeWindow._玩了几分钟 = 玩了几分钟;
            unsafeWindow._用了多少天 = 用了多少天;
            unsafeWindow._减料成功 = 减料成功;
            unsafeWindow._脚本信息 = 脚本信息;
            unsafeWindow._开发者配置 = 开发者配置;
            unsafeWindow._一堆伞兵玩意 = 一堆伞兵玩意;

            // 自定函数
            unsafeWindow._改变值 = 改变值;
            unsafeWindow._初始化值 = 初始化值;
            unsafeWindow._检测状态 = 检测状态;
            unsafeWindow._更新菜单 = 更新菜单;
            unsafeWindow._大人来了 = 大人来了;
            // unsafeWindow._检测网址是否包含指定字符串 =
            //     检测网址是否包含指定字符串;
            // unsafeWindow._游戏中 = 游戏中;
            unsafeWindow._减料 = 减料;
            unsafeWindow._普通减料 = 普通减料;
            unsafeWindow._减点料 = 减点料;
            unsafeWindow._一个弹窗的样式 = 一个弹窗的样式;
        };
        unsafeWindow.更新在控制台使用的脚本变量函数和GM();
    }

    log(
        "[防沉迷减点料] " + 网址 + "\n\n脚本信息: ",
        脚本信息,
        "\n\n开发者配置: ",
        开发者配置
    );

    log(
        "[防沉迷减点料] 脚本执行完毕, 用时" +
            (new Date().getTime() - D.getTime()) +
            "ms ",
        网址
    );
})();

addEventListener("load", () => {
    减点料();

    setTimeout(() => {
        // 以防万一
        qsa("canvas").forEach((element) => {
            element.addEventListener(
                "mousedown",
                function (e) {
                    if (GM_getValue("停用快捷键") == "0") {
                        if (e.button == 1 && e.shiftKey) {
                            大人来了();
                        }
                        if (e.button == 1 && e.altKey) {
                            减料成功 = 0;
                            减料();
                        }
                    }
                },
                true
            );
        });
    }, 5000);

});

减点料();