Greasy Fork

Greasy Fork is available in English.

【One】懒人神器,懒人福利,全新架构,性能更出众————只需一个脚本包揽所有功能 长期更新,放心食用

功能介绍:1、ScriptsCat脚本猫脚本查询 2、CSDN页面清理 3、页面磁力链接提取

在您安装前,Greasy Fork 希望您知道此脚本声明其包含了一些负面功能。这些功能也许会使脚本作者获利,而不能给您带来任何直接的金钱收益。

作者可从这份脚本获得佣金,例如通过修改链接地址或提供优惠券代码以包含推荐或附属代码。 脚本作者的说明: 此提示为GreasyFork代码规范要求含有查券功能的脚本必须添加,实际使用无任何强制跳转,代码可查,请知悉。

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name           【One】懒人神器,懒人福利,全新架构,性能更出众————只需一个脚本包揽所有功能 长期更新,放心食用
// @namespace      https://www.wandhi.com/
// @description    功能介绍:1、ScriptsCat脚本猫脚本查询 2、CSDN页面清理 3、页面磁力链接提取
// @license        MIT
// @version        1.1.7
// @author         MaxZhang
// @include        *://*
// @require        https://lib.baomitu.com/jquery/1.12.4/jquery.min.js
// @require        https://lib.baomitu.com/limonte-sweetalert2/11.4.7/sweetalert2.all.min.js
// @grant          GM_setClipboard
// @grant          unsafeWindow
// @grant          GM_xmlhttpRequest
// @grant          GM_info
// @grant          GM_cookie
// @grant          GM_addStyle
// @grant          GM.addStyle
// @grant          GM_getValue
// @grant          GM_setValue
// @grant          GM.getValue
// @grant          GM.setValue
// @grant          GM_notification
// @grant          GM_openInTab
// @grant          GM_deleteValue
// @grant          GM_registerMenuCommand
// @grant          GM_unregisterMenuCommand
// @grant          GM_download
// @connect        api.wandhi.com
// @connect        cdn.jsdelivr.net
// @connect        tool.manmanbuy.com
// @connect        gwdang.com
// @connect        scriptcat.org
// @connect        quark.cn
// @compatible     firefox
// @compatible     chrome
// @compatible     opera safari edge
// @compatible     safari
// @compatible     edge
// @run-at         document-end
// @antifeature    referral-link 此提示为GreasyFork代码规范要求含有查券功能的脚本必须添加,实际使用无任何强制跳转,代码可查,请知悉。
// ==/UserScript==

!function(global, factory) {
    "object" == typeof exports && "undefined" != typeof module ? factory(exports, require("sweetalert2")) : "function" == typeof define && define.amd ? define([ "exports", "sweetalert2" ], factory) : factory((global = "undefined" != typeof globalThis ? globalThis : global || self).One = {}, global.Swal);
}(this, (function(exports, Swal) {
    "use strict";
    function _interopDefaultLegacy(e) {
        return e && "object" == typeof e && "default" in e ? e : {
            default: e
        };
    }
    var Swal__default = _interopDefaultLegacy(Swal), extendStatics = function(d, b) {
        return (extendStatics = Object.setPrototypeOf || {
            __proto__: []
        } instanceof Array && function(d, b) {
            d.__proto__ = b;
        } || function(d, b) {
            for (var p in b) b.hasOwnProperty(p) && (d[p] = b[p]);
        })(d, b);
    };
    function __extends(d, b) {
        function __() {
            this.constructor = d;
        }
        extendStatics(d, b), d.prototype = null === b ? Object.create(b) : (__.prototype = b.prototype, 
        new __);
    }
    var SiteEnum, __assign = function() {
        return (__assign = Object.assign || function __assign(t) {
            for (var s, i = 1, n = arguments.length; i < n; i++) for (var p in s = arguments[i]) Object.prototype.hasOwnProperty.call(s, p) && (t[p] = s[p]);
            return t;
        }).apply(this, arguments);
    };
    function __awaiter$1(thisArg, _arguments, P, generator) {
        return new (P || (P = Promise))((function(resolve, reject) {
            function fulfilled(value) {
                try {
                    step(generator.next(value));
                } catch (e) {
                    reject(e);
                }
            }
            function rejected(value) {
                try {
                    step(generator.throw(value));
                } catch (e) {
                    reject(e);
                }
            }
            function step(result) {
                result.done ? resolve(result.value) : function adopt(value) {
                    return value instanceof P ? value : new P((function(resolve) {
                        resolve(value);
                    }));
                }(result.value).then(fulfilled, rejected);
            }
            step((generator = generator.apply(thisArg, _arguments || [])).next());
        }));
    }
    function __generator$1(thisArg, body) {
        var f, y, t, g, _ = {
            label: 0,
            sent: function() {
                if (1 & t[0]) throw t[1];
                return t[1];
            },
            trys: [],
            ops: []
        };
        return g = {
            next: verb(0),
            throw: verb(1),
            return: verb(2)
        }, "function" == typeof Symbol && (g[Symbol.iterator] = function() {
            return this;
        }), g;
        function verb(n) {
            return function(v) {
                return function step(op) {
                    if (f) throw new TypeError("Generator is already executing.");
                    for (;_; ) try {
                        if (f = 1, y && (t = 2 & op[0] ? y.return : op[0] ? y.throw || ((t = y.return) && t.call(y), 
                        0) : y.next) && !(t = t.call(y, op[1])).done) return t;
                        switch (y = 0, t && (op = [ 2 & op[0], t.value ]), op[0]) {
                          case 0:
                          case 1:
                            t = op;
                            break;

                          case 4:
                            return _.label++, {
                                value: op[1],
                                done: !1
                            };

                          case 5:
                            _.label++, y = op[1], op = [ 0 ];
                            continue;

                          case 7:
                            op = _.ops.pop(), _.trys.pop();
                            continue;

                          default:
                            if (!(t = _.trys, (t = t.length > 0 && t[t.length - 1]) || 6 !== op[0] && 2 !== op[0])) {
                                _ = 0;
                                continue;
                            }
                            if (3 === op[0] && (!t || op[1] > t[0] && op[1] < t[3])) {
                                _.label = op[1];
                                break;
                            }
                            if (6 === op[0] && _.label < t[1]) {
                                _.label = t[1], t = op;
                                break;
                            }
                            if (t && _.label < t[2]) {
                                _.label = t[2], _.ops.push(op);
                                break;
                            }
                            t[2] && _.ops.pop(), _.trys.pop();
                            continue;
                        }
                        op = body.call(thisArg, _);
                    } catch (e) {
                        op = [ 6, e ], y = 0;
                    } finally {
                        f = t = 0;
                    }
                    if (5 & op[0]) throw op[1];
                    return {
                        value: op[0] ? op[1] : void 0,
                        done: !0
                    };
                }([ n, v ]);
            };
        }
    }
    function __read(o, n) {
        var m = "function" == typeof Symbol && o[Symbol.iterator];
        if (!m) return o;
        var r, e, i = m.call(o), ar = [];
        try {
            for (;(void 0 === n || n-- > 0) && !(r = i.next()).done; ) ar.push(r.value);
        } catch (error) {
            e = {
                error: error
            };
        } finally {
            try {
                r && !r.done && (m = i.return) && m.call(i);
            } finally {
                if (e) throw e.error;
            }
        }
        return ar;
    }
    function __spread() {
        for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
        return ar;
    }
    !function(SiteEnum) {
        SiteEnum.All = "All", SiteEnum.TaoBao = "TaoBao", SiteEnum.TMall = "TMall", SiteEnum.JingDong = "JingDong", 
        SiteEnum.Shuma = "Shuma", SiteEnum.IQiYi = "IQiYi", SiteEnum.YouKu = "YouKu", SiteEnum.LeShi = "LeShi", 
        SiteEnum.TuDou = "TuDou", SiteEnum.Tencent_V = "Tencent_V", SiteEnum.MangGuo = "MangGuo", 
        SiteEnum.SoHu = "SoHu", SiteEnum.Acfun = "Acfun", SiteEnum.BiliBili = "BiliBili", 
        SiteEnum.M1905 = "M1905", SiteEnum.PPTV = "PPTV", SiteEnum.YinYueTai = "YinYueTai", 
        SiteEnum.WangYi = "WangYi", SiteEnum.Tencent_M = "Tencent_M", SiteEnum.KuGou = "KuGou", 
        SiteEnum.KuWo = "KuWo", SiteEnum.XiaMi = "XiaMi", SiteEnum.TaiHe = "TaiHe", SiteEnum.QingTing = "QingTing", 
        SiteEnum.LiZhi = "LiZhi", SiteEnum.MiGu = "MiGu", SiteEnum.XiMaLaYa = "XiMaLaYa", 
        SiteEnum.SXB = "SXB", SiteEnum.BDY = "BDY", SiteEnum.BDY1 = "BDY1", SiteEnum.BD_DETAIL_OLD = "BD_DETAIL_OLD", 
        SiteEnum.BD_DETAIL_NEW = "BD_DETAIL_NEW", SiteEnum.BD_DETAIL_Share = "BD_DETAIL_Share", 
        SiteEnum.LZY = "LZY", SiteEnum.SuNing = "SuNing", SiteEnum.Vp = "Vp", SiteEnum.Gwd = "Gwd", 
        SiteEnum.Xxqg = "Xxqg", SiteEnum.CSDN = "CSDN", SiteEnum.FeiShuDoc = "FeiShuDoc", 
        SiteEnum.Juhaowan = "Juhaowan", SiteEnum.MhXin = "MhXin", SiteEnum.NodeSeek = "NodeSeek", 
        SiteEnum.NodeSeekCategory = "NodeSeekCategory", SiteEnum.NodeSeekDetail = "NodeSeekDetail";
    }(SiteEnum || (SiteEnum = {}));
    var LogLevel$1, Core$1 = function() {
        function Core() {}
        return Object.defineProperty(Core, "url", {
            get: function() {
                return window.location.href;
            },
            enumerable: !1,
            configurable: !0
        }), Object.defineProperty(Core, "isTop", {
            get: function() {
                return window.self == window.top;
            },
            enumerable: !1,
            configurable: !0
        }), Core.addStyle = function(content) {
            if (GM_addStyle) GM_addStyle(content); else {
                var style = unsafeWindow.window.document.createElement("style");
                style.innerHTML = content, unsafeWindow.window.document.head.append(style);
            }
        }, Core.sleep = function(t) {
            return __awaiter$1(this, void 0, Promise, (function() {
                return __generator$1(this, (function(_a) {
                    return [ 2, new Promise((function(resolve) {
                        setTimeout(resolve, 1e3 * t);
                    })) ];
                }));
            }));
        }, Core.random = function(arr, n) {
            void 0 === n && (n = 1);
            for (var resArr = [ arr[Math.floor(Math.random() * arr.length)] ], i = 1; i < n; i++) resArr.push(arr[Math.floor(Math.random() * arr.length)]);
            return resArr;
        }, Core.randomNum = function(min, max) {
            var range = max - min;
            return min + Math.round(this.rnd() * range);
        }, Core.rnd = function(seed) {
            return void 0 === seed && (seed = Date.now()), (seed = (9301 * seed + 49297) % 233280) / 233280;
        }, Core.background = function(callback, time) {
            void 0 === time && (time = 5), setInterval((function() {
                callback();
            }), 1e3 * time);
        }, Core.autoLazyload = function(isOk, callback, time) {
            void 0 === time && (time = 5), isOk() ? callback() : setTimeout((function() {
                Core.autoLazyload(isOk, callback, time);
            }), 1e3 * time);
        }, Core.lazyload = function(callback, time) {
            void 0 === time && (time = 5), setTimeout((function() {
                callback();
            }), 1e3 * time);
        }, Core.bodyAppend = function(html) {
            unsafeWindow.document.body.append(html);
        }, Core;
    }(), Logger$1 = function() {
        function Logger() {}
        return Logger.log = function(msg, group, level) {}, Logger.debug = function(msg, group) {
            void 0 === group && (group = "debug"), this.log(msg, group, LogLevel$1.debug);
        }, Logger.info = function(msg, group) {
            void 0 === group && (group = "info"), this.log(msg, group, LogLevel$1.info);
        }, Logger.warn = function(msg, group) {
            void 0 === group && (group = "warning"), this.log(msg, group, LogLevel$1.warn);
        }, Logger.error = function(msg, group) {
            void 0 === group && (group = "error"), this.log(msg, group, LogLevel$1.error);
        }, Logger;
    }();
    function styleInject(css, ref) {
        void 0 === ref && (ref = {});
        var insertAt = ref.insertAt;
        if (css && "undefined" != typeof document) {
            var head = document.head || document.getElementsByTagName("head")[0], style = document.createElement("style");
            style.type = "text/css", "top" === insertAt && head.firstChild ? head.insertBefore(style, head.firstChild) : head.appendChild(style), 
            style.styleSheet ? style.styleSheet.cssText = css : style.appendChild(document.createTextNode(css));
        }
    }
    !function(LogLevel) {
        LogLevel[LogLevel.debug = 0] = "debug", LogLevel[LogLevel.info = 1] = "info", LogLevel[LogLevel.warn = 2] = "warn", 
        LogLevel[LogLevel.error = 3] = "error";
    }(LogLevel$1 || (LogLevel$1 = {}));
    styleInject("#content_views pre,#content_views pre code{-webkit-touch-callout:auto!important;-webkit-user-select:auto!important;-khtml-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.passport-login-container{display:none!important}");
    var LogLevel, __awaiter = function(thisArg, _arguments, P, generator) {
        return new (P || (P = Promise))((function(resolve, reject) {
            function fulfilled(value) {
                try {
                    step(generator.next(value));
                } catch (e) {
                    reject(e);
                }
            }
            function rejected(value) {
                try {
                    step(generator.throw(value));
                } catch (e) {
                    reject(e);
                }
            }
            function step(result) {
                result.done ? resolve(result.value) : function adopt(value) {
                    return value instanceof P ? value : new P((function(resolve) {
                        resolve(value);
                    }));
                }(result.value).then(fulfilled, rejected);
            }
            step((generator = generator.apply(thisArg, _arguments || [])).next());
        }));
    }, __generator = function(thisArg, body) {
        var f, y, t, _ = {
            label: 0,
            sent: function() {
                if (1 & t[0]) throw t[1];
                return t[1];
            },
            trys: [],
            ops: []
        }, g = Object.create(("function" == typeof Iterator ? Iterator : Object).prototype);
        return g.next = verb(0), g.throw = verb(1), g.return = verb(2), "function" == typeof Symbol && (g[Symbol.iterator] = function() {
            return this;
        }), g;
        function verb(n) {
            return function(v) {
                return function step(op) {
                    if (f) throw new TypeError("Generator is already executing.");
                    for (;g && (g = 0, op[0] && (_ = 0)), _; ) try {
                        if (f = 1, y && (t = 2 & op[0] ? y.return : op[0] ? y.throw || ((t = y.return) && t.call(y), 
                        0) : y.next) && !(t = t.call(y, op[1])).done) return t;
                        switch (y = 0, t && (op = [ 2 & op[0], t.value ]), op[0]) {
                          case 0:
                          case 1:
                            t = op;
                            break;

                          case 4:
                            return _.label++, {
                                value: op[1],
                                done: !1
                            };

                          case 5:
                            _.label++, y = op[1], op = [ 0 ];
                            continue;

                          case 7:
                            op = _.ops.pop(), _.trys.pop();
                            continue;

                          default:
                            if (!(t = _.trys, (t = t.length > 0 && t[t.length - 1]) || 6 !== op[0] && 2 !== op[0])) {
                                _ = 0;
                                continue;
                            }
                            if (3 === op[0] && (!t || op[1] > t[0] && op[1] < t[3])) {
                                _.label = op[1];
                                break;
                            }
                            if (6 === op[0] && _.label < t[1]) {
                                _.label = t[1], t = op;
                                break;
                            }
                            if (t && _.label < t[2]) {
                                _.label = t[2], _.ops.push(op);
                                break;
                            }
                            t[2] && _.ops.pop(), _.trys.pop();
                            continue;
                        }
                        op = body.call(thisArg, _);
                    } catch (e) {
                        op = [ 6, e ], y = 0;
                    } finally {
                        f = t = 0;
                    }
                    if (5 & op[0]) throw op[1];
                    return {
                        value: op[0] ? op[1] : void 0,
                        done: !0
                    };
                }([ n, v ]);
            };
        }
    }, Core = function() {
        function Core() {}
        return Object.defineProperty(Core, "url", {
            get: function() {
                return window.location.href;
            },
            enumerable: !1,
            configurable: !0
        }), Object.defineProperty(Core, "isTop", {
            get: function() {
                return window.self == window.top;
            },
            enumerable: !1,
            configurable: !0
        }), Core.addStyle = function(content) {
            if (GM_addStyle) GM_addStyle(content); else {
                var style = unsafeWindow.window.document.createElement("style");
                style.innerHTML = content, unsafeWindow.window.document.head.append(style);
            }
        }, Core.sleep = function(t) {
            return __awaiter(this, void 0, void 0, (function() {
                return __generator(this, (function(_a) {
                    return [ 2, new Promise((function(resolve) {
                        setTimeout(resolve, 1e3 * t);
                    })) ];
                }));
            }));
        }, Core.random = function(arr, n) {
            void 0 === n && (n = 1);
            for (var resArr = [ arr[Math.floor(Math.random() * arr.length)] ], i = 1; i < n; i++) resArr.push(arr[Math.floor(Math.random() * arr.length)]);
            return resArr;
        }, Core.randomNum = function(min, max) {
            var range = max - min;
            return min + Math.round(this.rnd() * range);
        }, Core.rnd = function(seed) {
            return void 0 === seed && (seed = Date.now()), (seed = (9301 * seed + 49297) % 233280) / 233280;
        }, Core.background = function(callback, time) {
            void 0 === time && (time = 5), setInterval((function() {
                callback();
            }), 1e3 * time);
        }, Core.autoLazyload = function(isOk, callback, time) {
            void 0 === time && (time = 5), isOk() ? callback() : setTimeout((function() {
                Core.autoLazyload(isOk, callback, time);
            }), 1e3 * time);
        }, Core.lazyload = function(callback, time) {
            void 0 === time && (time = 5), setTimeout((function() {
                callback();
            }), 1e3 * time);
        }, Core.bodyAppend = function(html) {
            unsafeWindow.document.body.append(html);
        }, Core;
    }();
    !function() {
        function Env() {}
        Env.Sign = "None";
    }();
    !function(LogLevel) {
        LogLevel[LogLevel.debug = 0] = "debug", LogLevel[LogLevel.info = 1] = "info", LogLevel[LogLevel.warn = 2] = "warn", 
        LogLevel[LogLevel.error = 3] = "error";
    }(LogLevel || (LogLevel = {}));
    var Logger = function() {
        function Logger() {}
        return Logger.log = function(msg, level) {
            for (var data = [], _i = 2; _i < arguments.length; _i++) data[_i - 2] = arguments[_i];
            data.forEach((function(e) {
                e.forEach((function(ee) {}));
            }));
        }, Logger.debug = function(msg) {
            for (var data = [], _i = 1; _i < arguments.length; _i++) data[_i - 1] = arguments[_i];
            this.log(msg, LogLevel.debug, data);
        }, Logger.info = function(msg) {
            this.log(msg, LogLevel.info);
        }, Logger.warn = function(msg) {
            this.log(msg, LogLevel.warn);
        }, Logger.error = function(msg) {
            this.log(msg, LogLevel.error);
        }, Logger;
    }(), AppBase = function() {
        function AppBase() {
            var _this = this;
            this.Process = function() {
                _this.loader(), _this.run();
            };
        }
        return AppBase.prototype.unique = function() {
            return this._unique;
        }, AppBase.prototype.linkTest = function(url) {
            var _this = this;
            url || (url = Core.url);
            var flag = !1;
            return this.rules.forEach((function(v, k) {
                v.some((function(r) {
                    if (r.test(url)) return Logger.debug("app:".concat(_this.appName, "_").concat(SiteEnum[k], " test pass")), 
                    flag = !0, _this.site = k, !0;
                })), Logger.warn("app:".concat(_this.appName, " test end"));
            })), flag;
        }, AppBase.prototype.getAppName = function() {
            return this.appName;
        }, AppBase;
    }(), CsdnApp = function(_super) {
        function CsdnApp() {
            var _this = null !== _super && _super.apply(this, arguments) || this;
            return _this.appName = "Csdn", _this.rules = new Map([ [ SiteEnum.CSDN, [ /blog\.csdn\.net/i ] ] ]), 
            _this._unique = !1, _this;
        }
        return __extends(CsdnApp, _super), CsdnApp.prototype.loader = function() {}, CsdnApp.prototype.run = function() {
            Core$1.background(this.adsClear, 3), this.commentClear(), this.articleClean();
        }, CsdnApp.prototype.adsClear = function() {
            CsdnApp.adSelectors.forEach((function(selector) {
                $(selector).remove();
            }));
        }, CsdnApp.prototype.commentClear = function() {
            Core$1.lazyload((function() {
                Logger$1.info("\u8bc4\u8bba\u533a\u6e05\u7406"), $(".comment-list-box").css("overflow", "").css("max-height", ""), 
                $("#commentPage").removeClass("d-none"), $("#btnMoreComment").remove();
            }), 3);
        }, CsdnApp.prototype.articleClean = function() {
            Logger$1.info("\u6587\u7ae0\u533a\u6e05\u7406"), $("#article_content").removeAttr("style"), 
            $(".hide-article-box").remove();
        }, CsdnApp.adSelectors = [ "#footerRightAds", ".side-question-box", "div[id^='dmp_ad']", "div[class^='ad_']", "div[id^='floor-ad_']", ".adsbygoogle" ], 
        CsdnApp;
    }(AppBase), container = new Map, Ioc = function() {
        function Ioc() {}
        return Ioc.register = function(app) {
            var className = app.name.toLowerCase();
            return container.has(className) ? container.get(className) : className ? (container.set(className, window.Reflect.construct(app, [])), 
            container.get(className)) : void 0;
        }, Ioc;
    }(), Config = function() {
        function Config() {}
        return Object.defineProperty(Config, "env", {
            get: function() {
                return GM_info;
            },
            enumerable: !1,
            configurable: !0
        }), Config.get = function(key, defaultValue) {
            void 0 === defaultValue && (defaultValue = "");
            var objStr = GM_getValue(this.encode(key), null);
            if (objStr) {
                var obj = JSON.parse(objStr);
                if (-1 == obj.exp || obj.exp > (new Date).getTime()) return obj.value;
                GM_deleteValue(key);
            }
            return defaultValue;
        }, Config.set = function(key, v, exp) {
            void 0 === exp && (exp = -1);
            var obj = {
                key: key,
                value: v,
                exp: -1 == exp ? exp : (new Date).getTime() + 1e3 * exp
            };
            GM_setValue(this.encode(key), JSON.stringify(obj));
        }, Config.remember = function(key, exp, callback) {
            var _this = this;
            return new Promise((function(reso, reject) {
                var v = _this.get(key, null);
                null == v || "" === v ? callback().then((function(res) {
                    _this.set(key, res, exp), reso(res);
                })).catch((function(e) {
                    reject(e);
                })) : reso(v);
            }));
        }, Config.clear = function(key) {
            GM_deleteValue(key);
        }, Config.decode = function(str) {
            return atob(str);
        }, Config.encode = function(str) {
            return btoa(str);
        }, Config.inc = function(s) {
            var v = Config.get(s, 0);
            v++, Config.set(s, v);
        }, Config;
    }(), GmMenu = function() {
        function GmMenu() {}
        return GmMenu.Register = function(name, callback, showUse) {
            void 0 === showUse && (showUse = !0);
            var k = encodeURIComponent("app_use_" + name);
            showUse && (name = "\ud83d\ude80" + name + "(\u4f7f\u7528\u7edf\u8ba1:" + Config.get(k, 0) + ")"), 
            GM_registerMenuCommand(name, (function() {
                showUse && Config.inc(k), callback();
            }));
        }, GmMenu;
    }(), MagnetRegApp = function(_super) {
        function MagnetRegApp() {
            var _this = null !== _super && _super.apply(this, arguments) || this;
            return _this._unique = !1, _this.appName = "Magnet", _this.rules = new Map([ [ SiteEnum.All, [ /.*/i ] ] ]), 
            _this;
        }
        return __extends(MagnetRegApp, _super), MagnetRegApp.prototype.loader = function() {}, 
        MagnetRegApp.prototype.run = function() {
            GmMenu.Register("\u63d0\u53d6\u78c1\u529b", (function() {
                for (var m, reg = /magnet:\?xt=urn:btih:[0-9a-fA-F]{40}/gm, magnets = []; null != (m = reg.exec(unsafeWindow.document.body.innerText)); ) m.index === reg.lastIndex && reg.lastIndex++, 
                m.forEach((function(match, groupIndex) {
                    magnets.push(match);
                }));
                if (magnets.length > 0) {
                    var newMagnets = magnets.filter((function(e, i) {
                        return magnets.indexOf(e) === i;
                    }));
                    Swal__default.default.fire({
                        title: "\u78c1\u529b\u96c6",
                        input: "textarea",
                        inputValue: newMagnets.join("\r"),
                        confirmButtonColor: "#3085d6",
                        cancelButtonColor: "#d33",
                        confirmButtonText: "\u6211\u597d\u4e86"
                    });
                } else Swal__default.default.fire({
                    toast: !0,
                    position: "top",
                    showConfirmButton: !1,
                    timerProgressBar: !0,
                    title: "\u4ec0\u4e48\u4e5f\u6ca1\u63d0\u53d6\u5230",
                    icon: "warning",
                    timer: 2e3
                });
            }));
        }, MagnetRegApp;
    }(AppBase), Str = function() {
        function Str() {}
        return Str.trim = function(source, char) {
            return source.replace(new RegExp("^\\" + char + "+|\\" + char + "+$", "g"), "");
        }, Str;
    }(), Http = function() {
        function Http() {}
        return Http.ajax = function(option, header) {
            var _a;
            void 0 === header && (header = new Map);
            var head = new HttpHeaders;
            head["User-Agent"] = null !== (_a = null === navigator || void 0 === navigator ? void 0 : navigator.userAgent) && void 0 !== _a ? _a : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114", 
            head.Accept = "application/atom+xml,application/xml,text/xml,application/json,text/plain,*/*", 
            (null == header ? void 0 : header.size) > 0 && header.forEach((function(v, k) {
                head[k] = v;
            })), Logger.debug("http head info:", head), option.headers || (option.headers = head);
            try {
                GM_xmlhttpRequest(option);
            } catch (e) {
                Logger.error(e);
            }
        }, Http.getFormData = function(data) {
            if (data instanceof Map) {
                var fd_1 = new FormData;
                data.forEach((function(v, k) {
                    var _v;
                    _v = "string" == typeof v ? v.toString() : JSON.stringify(v), fd_1.append(k, _v);
                })), data = fd_1;
            }
            return data;
        }, Http._getData = function(data, contentType) {
            if (void 0 === contentType && (contentType = "json"), data instanceof Map) {
                var fd_2 = new FormData;
                data.forEach((function(v, k) {
                    fd_2.append(k, v);
                })), data = fd_2;
            }
            var res = "";
            if ("json" == contentType) {
                var obj_1 = Object.create(null);
                data.forEach((function(k, v) {
                    obj_1[v] = k;
                })), res = JSON.stringify(obj_1);
            } else data.forEach((function(k, v) {
                res += "".concat(v, "=").concat(encodeURIComponent(k.toString()), "&");
            })), res = Str.trim(res, "&");
            return res;
        }, Http.post = function(url, data, contentType, timeOut) {
            return void 0 === timeOut && (timeOut = 10), new Promise((function(resolve, reject) {
                Http.ajax({
                    url: url,
                    method: "POST",
                    data: Http.getFormData(data),
                    timeout: 1e3 * timeOut,
                    onload: function(response) {
                        var _a;
                        try {
                            var res = null !== (_a = JSON.parse(response.responseText)) && void 0 !== _a ? _a : response.responseText;
                            resolve(res);
                        } catch (error) {
                            Logger.debug(error), reject();
                        }
                    },
                    onerror: function(response) {
                        reject(response);
                    },
                    ontimeout: function() {
                        reject("\u8bf7\u6c42\u8d85\u65f6");
                    }
                });
            }));
        }, Http.get = function(url, data, head, time_out) {
            return void 0 === head && (head = new Map), void 0 === time_out && (time_out = 10), 
            new Promise((function(resolve, reject) {
                Http.ajax({
                    url: url,
                    method: "GET",
                    timeout: 1e3 * time_out,
                    onload: function(response) {
                        var _a;
                        try {
                            var res = null !== (_a = JSON.parse(response.responseText)) && void 0 !== _a ? _a : response.responseText;
                            resolve(res);
                        } catch (error) {
                            Logger.debug(error), reject();
                        }
                    },
                    onerror: function(response) {
                        reject(response);
                    },
                    ontimeout: function() {
                        reject("\u8bf7\u6c42\u8d85\u65f6");
                    }
                }, head);
            }));
        }, Http;
    }(), HttpHeaders = function HttpHeaders() {}, ScriptsFind = function(_super) {
        function ScriptsFind() {
            var _this = null !== _super && _super.apply(this, arguments) || this;
            return _this._unique = !1, _this.appName = "ScriptsFind", _this.rules = new Map([ [ SiteEnum.All, [ /.*/i ] ] ]), 
            _this;
        }
        return __extends(ScriptsFind, _super), ScriptsFind.prototype.loader = function() {}, 
        ScriptsFind.prototype.run = function() {
            return __awaiter$1(this, void 0, Promise, (function() {
                var domain, data;
                return __generator$1(this, (function(_a) {
                    switch (_a.label) {
                      case 0:
                        return domain = unsafeWindow.window.location.host, null != (data = Config.get("scriptscat_query_" + domain, null)) ? [ 3, 2 ] : [ 4, Http.get("https://scriptcat.org/api/v2/scripts?domain=" + domain) ];

                      case 1:
                        data = _a.sent(), Config.set("scriptscat_query_" + domain, data, 7200), _a.label = 2;

                      case 2:
                        return GmMenu.Register("\u5f53\u524d\u7f51\u7ad9\u53ef\u7528\u811a\u672c:" + data.data.total, (function() {
                            GM_openInTab("https://scriptcat.org/search?keyword=" + domain, {
                                active: !0
                            });
                        })), [ 2 ];
                    }
                }));
            }));
        }, ScriptsFind;
    }(AppBase), Hook = function() {
        function Hook() {}
        return Hook.HookHidden = function(v) {
            Object.defineProperty(window.document, "hidden", {
                value: v
            }), null == window.webkitHidden && (window.webkitHidden = !1), Object.defineProperty(window.document, "webkitHidden", {
                value: v
            });
        }, Hook.hookVisibility = function(v) {
            Object.defineProperty(window.document, "visibilityState", {
                value: v
            });
        }, Hook.hookXmlHttpRequest = function(condition, callback) {
            XMLHttpRequest.prototype._open = XMLHttpRequest.prototype.open, XMLHttpRequest.prototype.open = function() {
                for (var args = [], _i = 0; _i < arguments.length; _i++) args[_i] = arguments[_i];
                var _a = __read(args, 2), method = _a[0], url = _a[1];
                condition(method, url, this) && callback(this), this._open.apply(this, __spread(args));
            };
        }, Hook;
    }(), FeiShuDocApp = function(_super) {
        function FeiShuDocApp() {
            var _this = null !== _super && _super.apply(this, arguments) || this;
            return _this._unique = !1, _this.appName = "\u98de\u4e66\u6587\u6863\u590d\u5236", 
            _this.rules = new Map([ [ SiteEnum.FeiShuDoc, [ /bytedance\.feishu\.cn/i, /feishu\.cn\/docx/i, /feishu\.cn\/sheets/i, /feishu\.cn\/wiki/i ] ] ]), 
            _this;
        }
        return __extends(FeiShuDocApp, _super), FeiShuDocApp.prototype.loader = function() {
            Logger$1.debug("\u98de\u4e66\u6587\u6863hook"), Hook.hookXmlHttpRequest((function(method, url, xml) {
                return url.includes("space/api/suite/permission/document/actions/state/") && "POST" == method;
            }), (function(xml) {
                xml.addEventListener("readystatechange", (function() {
                    var _a;
                    if (4 === xml.readyState) {
                        var response = xml.response;
                        try {
                            response = JSON.parse(response);
                        } catch (e) {}
                        Logger$1.debug("\u98de\u4e66\u62e6\u622a:response"), Logger$1.debug(response), 1 !== (null === (_a = response.data.actions) || void 0 === _a ? void 0 : _a.copy) && (response.data.actions.copy = 1, 
                        response.data.actions.duplicate = 1, response.data.actions.export = 1, Object.defineProperty(xml, "response", {
                            get: function() {
                                return response;
                            }
                        }), Object.defineProperty(xml, "responseText", {
                            get: function() {
                                return JSON.stringify(response);
                            }
                        }));
                    }
                }), !1);
            }));
        }, FeiShuDocApp.prototype.run = function() {}, FeiShuDocApp;
    }(AppBase), RightClickFreeApp = function(_super) {
        function RightClickFreeApp() {
            var _this = null !== _super && _super.apply(this, arguments) || this;
            return _this._unique = !1, _this.appName = "\u53f3\u952e\u9650\u5236\u89e3\u9664", 
            _this.rules = new Map([ [ SiteEnum.All, [ /.*/i ] ] ]), _this;
        }
        return __extends(RightClickFreeApp, _super), RightClickFreeApp.prototype.loader = function() {}, 
        RightClickFreeApp.prototype.run = function() {
            GmMenu.Register("\u89e3\u9664\u53f3\u952e\u9650\u5236", (function() {
                RightClickFreeApp.rcFree();
            }));
        }, RightClickFreeApp.rcFree = function() {
            function t(e) {
                e.stopPropagation(), e.stopImmediatePropagation && e.stopImmediatePropagation();
            }
            document.querySelectorAll("*").forEach((function(e) {
                "none" === window.getComputedStyle(e, null).getPropertyValue("user-select") && e.style.setProperty("user-select", "text", "important");
            })), [ "copy", "cut", "contextmenu", "selectstart", "mousedown", "mouseup", "mousemove", "keydown", "keypress", "keyup" ].forEach((function(e) {
                document.documentElement.addEventListener(e, t, {
                    capture: !0
                });
            })), Swal__default.default.fire({
                toast: !0,
                position: "top",
                showConfirmButton: !1,
                timerProgressBar: !0,
                title: "\u9650\u5236\u89e3\u9664\u6210\u529f",
                icon: "warning",
                timer: 2e3
            });
        }, RightClickFreeApp;
    }(AppBase), AdBlockApp = function(_super) {
        function AdBlockApp() {
            var _this = null !== _super && _super.apply(this, arguments) || this;
            return _this._unique = !1, _this.appName = "AdBlock", _this.rules = new Map([ [ SiteEnum.Juhaowan, [ /www\.juhaowan\.club/i ] ], [ SiteEnum.MhXin, [ /mhxin\.com\/manhua/i ] ] ]), 
            _this.rule = [ {
                site: SiteEnum.CSDN,
                selector: [ ".__zy_flash" ]
            }, {
                site: SiteEnum.MhXin,
                hook: [ "tg.wmqfey.com/sc/6276", "diy.dcqs4.com/sh/to/1380", "diy.wcdc5.com/sh/to/1381", "tc.6tofsu.com:8001/d/6276", "tpic.kszvmqo.cn/2021/12/31155849600.txt" ]
            } ], _this;
        }
        return __extends(AdBlockApp, _super), AdBlockApp.prototype.loader = function() {}, 
        AdBlockApp.prototype.run = function() {
            var that = this;
            that.rule.forEach((function(item) {
                var _a, _b;
                item.site === that.site && (null === (_a = item.selector) || void 0 === _a || _a.forEach((function(selector) {
                    setInterval((function() {
                        $(selector).remove();
                    }), 1e3);
                })), (null === (_b = item.hook) || void 0 === _b ? void 0 : _b.length) && Hook.hookXmlHttpRequest((function(method, url, xml) {
                    for (var _a, _b, i = 0; null !== (_b = i < (null === (_a = item.hook) || void 0 === _a ? void 0 : _a.length)) && void 0 !== _b && _b; i++) if (url.includes(item.hook[i])) return !0;
                    return !1;
                }), (function(xml) {
                    xml.addEventListener("readystatechange", (function() {
                        4 === xml.readyState && (Object.defineProperty(xml, "response", {
                            get: function() {
                                return "";
                            }
                        }), Object.defineProperty(xml, "responseText", {
                            get: function() {
                                return "";
                            }
                        }));
                    }), !1);
                })));
            }));
        }, AdBlockApp;
    }(AppBase), CommonFeature = function(_super) {
        function CommonFeature() {
            var _this = null !== _super && _super.apply(this, arguments) || this;
            return _this._unique = !1, _this.appName = "CommonFeature", _this.rules = new Map([ [ SiteEnum.All, [ /.*/i ] ] ]), 
            _this;
        }
        return __extends(CommonFeature, _super), CommonFeature.prototype.loader = function() {}, 
        CommonFeature.prototype.run = function() {
            GmMenu.Register("\u5f00\u542f\u7f51\u9875\u7f16\u8f91", (function() {
                unsafeWindow.document.body.contentEditable = "true", unsafeWindow.document.designMode = "on";
            }));
        }, CommonFeature;
    }(AppBase);
    function createButton(props) {
        var children = props.children, _a = props.className, className = void 0 === _a ? "" : _a, _b = props.type, type = void 0 === _b ? "button" : _b, _c = props.tag, tag = void 0 === _c ? "button" : _c, $button = $("<" + tag + ' class="normal button ' + className + '">' + children + "</" + tag + ">");
        return "button" === tag && $button.prop("type", type), $button;
    }
    styleInject(".nodeseek-topic-preview-btn{background-color:#e2e8f0;border:none;border-color:initial;border-image:initial;border-radius:3px;color:#64748b;cursor:pointer;font-size:13px;outline:none;visibility:hidden}.post-list-item:hover .nodeseek-topic-preview-btn{visibility:visible}.nodeseek-topic-actions{display:inline-flex;gap:2px 10px;pointer-events:auto;position:relative;z-index:2}");
    styleInject("body .button.normal,body .button.super{align-items:center;background:#f1f5f9;border:none;border-color:initial;border-image:initial;border-radius:6px;box-shadow:0 1.8px 0 e2e8f0,0 1.8px 0 #f1f5f9;color:#64748b;cursor:pointer;display:inline-flex;font-family:inherit;font-size:14px;font-weight:500;gap:5px;height:28px;line-height:28px;outline:none;padding:0 12px;position:relative;text-shadow:none;transition:color .25s,background-color .25s,box-shadow .25s;user-select:none;white-space:nowrap}body .button.normal:is(:hover:enabled,:active:enabled),body .button.super:is(:hover:enabled,:active:enabled){background:#e2e8f0;border:none initial;border-color:initial;border-image:initial;box-shadow:0 1.8px 0 #cbd5e1,0 1.8px 0 #f1f5f9;color:#475569;font-weight:500;text-shadow:none}.one-modal-mask{background-color:rgba(0,0,0,.25);inset:0;overflow:hidden;overflow-y:auto;padding:min(2vh,60px);position:fixed;z-index:888}.one-modal-main{border-radius:10px;box-sizing:border-box;flex-direction:column;height:100%;margin:0 auto;overflow:hidden;position:relative;width:800px}.one-modal-header,.one-modal-main{background-color:#fff;display:flex}.one-modal-header{align-items:center;border-bottom:1px solid #e2e8f0;gap:0 20px;padding:15px 20px 20px}.one-modal-title{font-size:16px;font-weight:700;overflow:hidden;padding:2px 0;text-overflow:ellipsis;white-space:nowrap}.one-modal-actions{align-items:center;display:flex;gap:0 10px;margin-left:auto}.one-modal-content{flex:1}#Main.one-topic-preview>.box{border:none;box-shadow:none}.one-modal-comments{inset:0;overflow-y:auto;padding:0 20px;position:absolute;visibility:hidden}.one-modal-comments.one-tab-content-active{visibility:visible;z-index:20}.one-modal-comment-tabs{align-items:center;background-color:var(--button-background-color);border-radius:4px;display:flex;font-size:14px;font-weight:400;gap:4px;padding:4px 5px}.one-modal-comment-tabs>[data-tab-key]{border-radius:4px;cursor:pointer;padding:4px 5px}.one-modal-comment-tabs>[data-tab-key]:hover{background-color:var(--one-color-button-background-hover)}.one-modal-comment-tabs>[data-tab-key].one-tab-active{background-color:var(--one-color-accent-100);color:var(--one-color-foreground)}.one-modal-content{flex:1 1 0%;outline:none;overflow-y:auto;overflow:hidden;overscroll-behavior-y:contain;position:relative;width:100%}.one-topic-preview-frame{border:none initial;border-color:initial;border-image:initial;height:100%;width:100%}");
    var NodeSeekPreview = function(_super) {
        function NodeSeekPreview() {
            var _this = null !== _super && _super.apply(this, arguments) || this;
            return _this.rules = new Map([ [ SiteEnum.NodeSeekCategory, [ /nodeseek\.com\/categories/i ] ] ]), 
            _this._unique = !1, _this.appName = "NodeSeekPreview", _this;
        }
        return __extends(NodeSeekPreview, _super), NodeSeekPreview.prototype.loader = function() {}, 
        NodeSeekPreview.prototype.run = function() {
            this.InitList();
        }, NodeSeekPreview.prototype.InitList = function() {
            var $detailBtn = createButton({
                children: "\u8fdb\u5165\u4e3b\u9898",
                className: "special",
                tag: "a"
            }), modal = function createModal(props) {
                var mouseDownTarget, root = props.root, title = props.title, onMount = props.onMount, onOpen = props.onOpen, onClose = props.onClose, $mask = $('<div class="one-modal-mask">'), $content = $('<div class="one-modal-content">'), $closeBtn = createButton({
                    children: "\u5173\u95ed<kbd>Esc</kbd>",
                    className: "one-modal-close-btn"
                }), $title = $('<div class="one-modal-title">' + (null != title ? title : "") + "</div>"), $actions = $('<div class="one-modal-actions">').append($closeBtn), $header = $('<div class="one-modal-header">').append($title, $actions), $main = $('<div class="one-modal-main">').append($header, $content).on("click", (function(ev) {
                    ev.stopPropagation();
                })), $container = $mask.append($main).hide(), modalElements = {
                    $mask: $mask,
                    $main: $main,
                    $header: $header,
                    $container: $container,
                    $title: $title,
                    $actions: $actions,
                    $content: $content
                }, boundEvent = !1, mouseDownHandler = function(ev) {
                    mouseDownTarget = ev.target;
                }, mouseUpHandler = function(ev) {
                    mouseDownTarget === $mask.get(0) && ev.target === $mask.get(0) && ev.currentTarget === ev.target && handleModalClose();
                }, keyupHandler = function(ev) {
                    "Escape" === ev.key && handleModalClose();
                }, handleModalClose = function() {
                    $mask.off("mousedown", mouseDownHandler), $mask.off("mouseup", mouseUpHandler), 
                    $(document).off("keydown", keyupHandler), boundEvent = !1, $container.fadeOut("fast"), 
                    document.body.classList.remove("one-modal-open"), null == onClose || onClose(modalElements);
                };
                return $closeBtn.on("click", handleModalClose), null == onMount || onMount(modalElements), 
                root && root.append($container), __assign(__assign({}, modalElements), {
                    open: function() {
                        setTimeout((function() {
                            boundEvent || ($mask.on("mousedown", mouseDownHandler), $mask.on("mouseup", mouseUpHandler), 
                            $(document).on("keydown", keyupHandler), boundEvent = !0);
                        })), $container.fadeIn("fast"), document.body.classList.add("one-modal-open"), null == onOpen || onOpen(modalElements);
                    },
                    close: handleModalClose
                });
            }({
                root: $("body"),
                onMount: function(_a) {
                    _a.$actions.prepend($detailBtn);
                },
                onClose: function(_a) {
                    var $title = _a.$title, $content = _a.$content;
                    $title.empty(), $content.empty();
                }
            }), btn = $('<span class="nodeseek-topic-actions"><button class="nodeseek-topic-preview-btn">\u9884\u89c8</button></span>'), list = $(".post-title a");
            Logger$1.debug("NodeSeekPreview list:" + list.length), list.each((function(i, e) {
                var relativeUrl = $(e).attr("href");
                Logger$1.debug("NodeSeekPreview relativeUrl:" + relativeUrl);
                var absoluteUrl = new URL(relativeUrl, unsafeWindow.window.location.origin), title = $(e).text();
                btn.clone().on("click", (function() {
                    Logger$1.debug("NodeSeekPreview click"), modal.open(), Logger$1.debug("NodeSeekPreview open:" + absoluteUrl.href), 
                    modal.$title.html(title), modal.$content.html('<iframe src="' + absoluteUrl.href + '" class="one-topic-preview-frame"></iframe>');
                })).appendTo($(e).parent());
            }));
        }, NodeSeekPreview;
    }(AppBase), One = function() {
        function One() {
            this.services = [ Ioc.register(CommonFeature), Ioc.register(CsdnApp), Ioc.register(NodeSeekPreview), Ioc.register(MagnetRegApp), Ioc.register(FeiShuDocApp), Ioc.register(RightClickFreeApp), Ioc.register(AdBlockApp), Ioc.register(ScriptsFind) ];
        }
        return One.prototype.run = function() {
            this.services.every((function(element) {
                return !element.linkTest() || (new Promise((function(resolve) {
                    resolve(1);
                })).then(element.Process), Logger.debug("element unique:" + element.unique()), !element.unique());
            }));
        }, One;
    }();
    (new One).run(), exports.One = One, Object.defineProperty(exports, "__esModule", {
        value: !0
    });
}));