Greasy Fork

Greasy Fork is available in English.

DMHY download helper

A dmhy.org download userscript.

目前为 2019-05-17 提交的版本,查看 最新版本

// ==UserScript==
// @name         DMHY download helper
// @namespace    https://github.com/kuoruan
// @match        *://share.dmhy.org/
// @match        *://share.dmhy.org/topics/list/*
// @match        *://share.dmhy.org/topics/list?*
// @require      https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.min.js
// @grant        GM_addStyle
// @grant        GM_setClipboard
// @source       https://github.com/kuoruan/dmhy-download-helper.git
// @version      1.0.0
// @author       Xingwang Liao
// @description  A dmhy.org download userscript.
// @homepage     https://github.com/kuoruan/dmhy-download-helper#readme
// @supportURL   https://github.com/kuoruan/dmhy-download-helper/issues
// ==/UserScript==

!function(modules) {
    var installedModules = {};
    function __webpack_require__(moduleId) {
        if (installedModules[moduleId]) return installedModules[moduleId].exports;
        var module = installedModules[moduleId] = {
            i: moduleId,
            l: !1,
            exports: {}
        };
        return modules[moduleId].call(module.exports, module, module.exports, __webpack_require__), 
        module.l = !0, module.exports;
    }
    __webpack_require__.m = modules, __webpack_require__.c = installedModules, __webpack_require__.d = function(exports, name, getter) {
        __webpack_require__.o(exports, name) || Object.defineProperty(exports, name, {
            enumerable: !0,
            get: getter
        });
    }, __webpack_require__.r = function(exports) {
        "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(exports, Symbol.toStringTag, {
            value: "Module"
        }), Object.defineProperty(exports, "__esModule", {
            value: !0
        });
    }, __webpack_require__.t = function(value, mode) {
        if (1 & mode && (value = __webpack_require__(value)), 8 & mode) return value;
        if (4 & mode && "object" == typeof value && value && value.__esModule) return value;
        var ns = Object.create(null);
        if (__webpack_require__.r(ns), Object.defineProperty(ns, "default", {
            enumerable: !0,
            value: value
        }), 2 & mode && "string" != typeof value) for (var key in value) __webpack_require__.d(ns, key, function(key) {
            return value[key];
        }.bind(null, key));
        return ns;
    }, __webpack_require__.n = function(module) {
        var getter = module && module.__esModule ? function() {
            return module.default;
        } : function() {
            return module;
        };
        return __webpack_require__.d(getter, "a", getter), getter;
    }, __webpack_require__.o = function(object, property) {
        return Object.prototype.hasOwnProperty.call(object, property);
    }, __webpack_require__.p = "", __webpack_require__(__webpack_require__.s = 22);
}([ function(module, exports) {
    module.exports = Vue;
}, function(module, exports, __webpack_require__) {
    "use strict";
    module.exports = function(useSourceMap) {
        var list = [];
        return list.toString = function() {
            return this.map(function(item) {
                var content = function(item, useSourceMap) {
                    var content = item[1] || "", cssMapping = item[3];
                    if (!cssMapping) return content;
                    if (useSourceMap && "function" == typeof btoa) {
                        var sourceMapping = (sourceMap = cssMapping, "/*# sourceMappingURL=data:application/json;charset=utf-8;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + " */"), sourceURLs = cssMapping.sources.map(function(source) {
                            return "/*# sourceURL=" + cssMapping.sourceRoot + source + " */";
                        });
                        return [ content ].concat(sourceURLs).concat([ sourceMapping ]).join("\n");
                    }
                    var sourceMap;
                    return [ content ].join("\n");
                }(item, useSourceMap);
                return item[2] ? "@media " + item[2] + "{" + content + "}" : content;
            }).join("");
        }, list.i = function(modules, mediaQuery) {
            "string" == typeof modules && (modules = [ [ null, modules, "" ] ]);
            for (var alreadyImportedModules = {}, i = 0; i < this.length; i++) {
                var id = this[i][0];
                null != id && (alreadyImportedModules[id] = !0);
            }
            for (i = 0; i < modules.length; i++) {
                var item = modules[i];
                null != item[0] && alreadyImportedModules[item[0]] || (mediaQuery && !item[2] ? item[2] = mediaQuery : mediaQuery && (item[2] = "(" + item[2] + ") and (" + mediaQuery + ")"), 
                list.push(item));
            }
        }, list;
    };
}, function(module, exports, __webpack_require__) {
    var content = __webpack_require__(11);
    "string" == typeof content ? GM_addStyle(content) : GM_addStyle(content.toString());
}, function(module, exports, __webpack_require__) {
    var content = __webpack_require__(13);
    "string" == typeof content ? GM_addStyle(content) : GM_addStyle(content.toString());
}, function(module, exports, __webpack_require__) {
    var content = __webpack_require__(15);
    "string" == typeof content ? GM_addStyle(content) : GM_addStyle(content.toString());
}, function(module, exports, __webpack_require__) {
    var content = __webpack_require__(17);
    "string" == typeof content ? GM_addStyle(content) : GM_addStyle(content.toString());
}, function(module, exports, __webpack_require__) {
    var content = __webpack_require__(19);
    "string" == typeof content ? GM_addStyle(content) : GM_addStyle(content.toString());
}, function(module, exports, __webpack_require__) {
    var content = __webpack_require__(21);
    "string" == typeof content ? GM_addStyle(content) : GM_addStyle(content.toString());
}, function(module, exports, __webpack_require__) {
    var content = __webpack_require__(9);
    "string" == typeof content ? GM_addStyle(content) : GM_addStyle(content.toString());
}, function(module, exports, __webpack_require__) {
    (module.exports = __webpack_require__(1)(!1)).push([ module.i, "body{position:relative}#topic_list .even:hover,#topic_list .even:hover td,#topic_list .odd:hover,#topic_list .odd:hover td{background-color:#0eb9e7}", "" ]);
}, function(module, __webpack_exports__, __webpack_require__) {
    "use strict";
    var _userscript_style_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_stylus_loader_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ToolBar_vue_vue_type_style_index_0_id_65511fdb_lang_stylus_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
    __webpack_require__.n(_userscript_style_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_stylus_loader_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ToolBar_vue_vue_type_style_index_0_id_65511fdb_lang_stylus_scoped_true___WEBPACK_IMPORTED_MODULE_0__).a;
}, function(module, exports, __webpack_require__) {
    (module.exports = __webpack_require__(1)(!1)).push([ module.i, ".tool-bar[data-v-65511fdb]{background-color:#247;color:#fff;display:none}.tool-bar.top[data-v-65511fdb]{border-bottom:1px solid #fff}.tool-bar.bottom[data-v-65511fdb]{border-top:1px solid #fff}.tool-bar.visible[data-v-65511fdb]{display:block}.wrapper[data-v-65511fdb]{display:flex;height:auto;flex-direction:row;align-items:center}.wrapper label[data-v-65511fdb]{margin-left:10px}.wrapper .title[data-v-65511fdb]{padding:8px 15px;border-right:2px solid #fff}.wrapper .checkbox[data-v-65511fdb]{width:14px;height:14px;vertical-align:middle}.wrapper .btn-wrapper[data-v-65511fdb]{margin-left:10px}.wrapper .btn-wrapper .btn[data-v-65511fdb]{padding:2px 5px;color:#247;background-color:#fff;border:1px solid #247;margin:0 5px;outline:none}", "" ]);
}, function(module, __webpack_exports__, __webpack_require__) {
    "use strict";
    var _userscript_style_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_stylus_loader_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_CheckboxHeader_vue_vue_type_style_index_0_id_92d07b40_lang_stylus_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
    __webpack_require__.n(_userscript_style_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_stylus_loader_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_CheckboxHeader_vue_vue_type_style_index_0_id_92d07b40_lang_stylus_scoped_true___WEBPACK_IMPORTED_MODULE_0__).a;
}, function(module, exports, __webpack_require__) {
    (module.exports = __webpack_require__(1)(!1)).push([ module.i, ".header[data-v-92d07b40]{cursor:default}.header .select-all[data-v-92d07b40]{width:14px;height:14px}.header .title[data-v-92d07b40]{margin-left:5px}", "" ]);
}, function(module, __webpack_exports__, __webpack_require__) {
    "use strict";
    var _userscript_style_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_stylus_loader_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_CheckboxItem_vue_vue_type_style_index_0_id_5a2a5aa6_lang_stylus_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
    __webpack_require__.n(_userscript_style_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_stylus_loader_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_CheckboxItem_vue_vue_type_style_index_0_id_5a2a5aa6_lang_stylus_scoped_true___WEBPACK_IMPORTED_MODULE_0__).a;
}, function(module, exports, __webpack_require__) {
    (module.exports = __webpack_require__(1)(!1)).push([ module.i, ".select[data-v-5a2a5aa6]{width:14px;height:14px}", "" ]);
}, function(module, __webpack_exports__, __webpack_require__) {
    "use strict";
    var _userscript_style_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_stylus_loader_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Toast_vue_vue_type_style_index_0_id_0321d2b2_lang_stylus_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);
    __webpack_require__.n(_userscript_style_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_stylus_loader_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Toast_vue_vue_type_style_index_0_id_0321d2b2_lang_stylus_scoped_true___WEBPACK_IMPORTED_MODULE_0__).a;
}, function(module, exports, __webpack_require__) {
    (module.exports = __webpack_require__(1)(!1)).push([ module.i, ".toast[data-v-0321d2b2]{display:none;padding:10px 20px;position:fixed;left:50%;bottom:30px;z-index:99;border-radius:2px;background-color:#333;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.toast.show[data-v-0321d2b2]{display:block;-webkit-animation:fadein-data-v-0321d2b2 .5s,fadeout-data-v-0321d2b2 .5s 2.5s;animation:fadein-data-v-0321d2b2 .5s,fadeout-data-v-0321d2b2 .5s 2.5s}.toast .text[data-v-0321d2b2]{color:#fff;font-size:14px;line-height:1.5}@-webkit-keyframes fadein-data-v-0321d2b2{0%{bottom:0;opacity:0}to{bottom:30px;opacity:1}}@keyframes fadein-data-v-0321d2b2{0%{bottom:0;opacity:0}to{bottom:30px;opacity:1}}@-webkit-keyframes fadeout-data-v-0321d2b2{0%{bottom:30px;opacity:1}to{bottom:0;opacity:0}}@keyframes fadeout-data-v-0321d2b2{0%{bottom:30px;opacity:1}to{bottom:0;opacity:0}}", "" ]);
}, function(module, __webpack_exports__, __webpack_require__) {
    "use strict";
    var _userscript_style_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_stylus_loader_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Popup_vue_vue_type_style_index_0_id_6be7b2a8_lang_stylus_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6);
    __webpack_require__.n(_userscript_style_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_stylus_loader_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Popup_vue_vue_type_style_index_0_id_6be7b2a8_lang_stylus_scoped_true___WEBPACK_IMPORTED_MODULE_0__).a;
}, function(module, exports, __webpack_require__) {
    (module.exports = __webpack_require__(1)(!1)).push([ module.i, '.overlay[data-v-6be7b2a8]{position:fixed;top:0;bottom:0;left:0;right:0;text-align:center;background-color:rgba(0,0,0,.3)}.overlay[data-v-6be7b2a8]:after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.overlay .popup[data-v-6be7b2a8]{display:inline-block;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;border:1px solid #247;padding:2px}.overlay .popup.middle[data-v-6be7b2a8]{vertical-align:middle}', "" ]);
}, function(module, __webpack_exports__, __webpack_require__) {
    "use strict";
    var _userscript_style_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_stylus_loader_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_LinksPopup_vue_vue_type_style_index_0_id_6c1bc523_lang_stylus_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7);
    __webpack_require__.n(_userscript_style_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_node_modules_stylus_loader_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_LinksPopup_vue_vue_type_style_index_0_id_6c1bc523_lang_stylus_scoped_true___WEBPACK_IMPORTED_MODULE_0__).a;
}, function(module, exports, __webpack_require__) {
    (module.exports = __webpack_require__(1)(!1)).push([ module.i, ".btn[data-v-6c1bc523]{padding:2px 5px;color:#247;background-color:#fff;border:1px solid #247;outline:none}.popup-header[data-v-6c1bc523]{background-color:#247;padding:5px;display:flex;flex-direction:row;align-items:center}.popup-header h4[data-v-6c1bc523]{font-size:14px;text-align:left;font-weight:400;line-height:1.5;color:#fff;flex:1 1 0}.popup-body[data-v-6c1bc523]{padding:5px;background-color:#fff}.popup-body .links-box[data-v-6c1bc523]{background-color:#eef;background-image:none;border:1px solid #247;color:#333;padding:4px 8px;font-size:12px;line-height:1.5;overflow:auto;resize:none;cursor:text}.popup-footer[data-v-6c1bc523]{padding:5px;background-color:#cdf;display:flex;flex-direction:row;align-items:center}.popup-footer .btn[data-v-6c1bc523]:not(:first-child){margin-left:10px}.popup-footer p[data-v-6c1bc523]{text-align:right;flex:1 1 0;margin:0}", "" ]);
}, function(module, __webpack_exports__, __webpack_require__) {
    "use strict";
    __webpack_require__.r(__webpack_exports__);
    __webpack_require__(8);
    var external_Vue_ = __webpack_require__(0), external_Vue_default = __webpack_require__.n(external_Vue_), render = function() {
        var _vm = this, _h = _vm.$createElement, _c = _vm._self._c || _h;
        return _c("div", {
            staticClass: "tool-bar",
            class: [ _vm.position, {
                visible: _vm.visible
            } ]
        }, [ _c("div", {
            staticClass: "wrapper"
        }, [ _c("span", {
            staticClass: "title"
        }, [ _vm._v("下载助手") ]), _c("label", {
            attrs: {
                for: "clean-" + _vm.position
            }
        }, [ _vm._v("清理链接:") ]), _c("input", {
            directives: [ {
                name: "model",
                rawName: "v-model",
                value: _vm.opts.clean,
                expression: "opts.clean"
            } ],
            staticClass: "checkbox",
            attrs: {
                id: "clean-" + _vm.position,
                type: "checkbox"
            },
            domProps: {
                checked: Array.isArray(_vm.opts.clean) ? _vm._i(_vm.opts.clean, null) > -1 : _vm.opts.clean
            },
            on: {
                change: function($event) {
                    var $$a = _vm.opts.clean, $$el = $event.target, $$c = !!$$el.checked;
                    if (Array.isArray($$a)) {
                        var $$i = _vm._i($$a, null);
                        $$el.checked ? $$i < 0 && _vm.$set(_vm.opts, "clean", $$a.concat([ null ])) : $$i > -1 && _vm.$set(_vm.opts, "clean", $$a.slice(0, $$i).concat($$a.slice($$i + 1)));
                    } else _vm.$set(_vm.opts, "clean", $$c);
                }
            }
        }), _c("label", {
            attrs: {
                for: "separator-" + _vm.position
            }
        }, [ _vm._v("分隔符:") ]), _c("select", {
            directives: [ {
                name: "model",
                rawName: "v-model",
                value: _vm.opts.separator,
                expression: "opts.separator"
            } ],
            attrs: {
                id: "separator-" + _vm.position
            },
            on: {
                change: function($event) {
                    var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {
                        return o.selected;
                    }).map(function(o) {
                        return "_value" in o ? o._value : o.value;
                    });
                    _vm.$set(_vm.opts, "separator", $event.target.multiple ? $$selectedVal : $$selectedVal[0]);
                }
            }
        }, [ _c("option", {
            attrs: {
                value: "\n"
            }
        }, [ _vm._v("\\n") ]), _c("option", {
            attrs: {
                value: "\r\n"
            }
        }, [ _vm._v("\\r\\n") ]), _c("option", {
            attrs: {
                value: "\t"
            }
        }, [ _vm._v("\\t") ]), _c("option", {
            attrs: {
                value: " "
            }
        }, [ _vm._v("空格") ]), _c("option", {
            attrs: {
                value: ","
            }
        }, [ _vm._v(",") ]) ]), _c("div", {
            staticClass: "btn-wrapper"
        }, [ _c("button", {
            staticClass: "btn",
            on: {
                click: function($event) {
                    return _vm.$emit("copy", _vm.opts);
                }
            }
        }, [ _vm._v("复制") ]), _c("button", {
            staticClass: "btn",
            on: {
                click: function($event) {
                    return _vm.$emit("show", _vm.opts);
                }
            }
        }, [ _vm._v("显示") ]) ]) ]) ]);
    };
    function magnetLinksWithOptions(magnetLinks, opts) {
        return !magnetLinks || magnetLinks.length <= 0 ? [] : opts.clean ? magnetLinks.map(l => l.substring(0, l.indexOf("&"))) : [ ...magnetLinks ];
    }
    function getDefaultLinebreak() {
        let linebreak = "\n";
        return navigator.userAgent.indexOf("Windows") > -1 && (linebreak = "\r\n"), linebreak;
    }
    render._withStripped = !0;
    var components_ToolBarvue_type_script_lang_js_ = {
        name: "ToolBar",
        props: {
            position: {
                type: String,
                default: "top"
            }
        },
        data: () => ({
            visible: !1,
            opts: {
                clean: !1,
                separator: getDefaultLinebreak()
            }
        })
    };
    __webpack_require__(10);
    function normalizeComponent(scriptExports, render, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {
        var hook, options = "function" == typeof scriptExports ? scriptExports.options : scriptExports;
        if (render && (options.render = render, options.staticRenderFns = staticRenderFns, 
        options._compiled = !0), functionalTemplate && (options.functional = !0), scopeId && (options._scopeId = "data-v-" + scopeId), 
        moduleIdentifier ? (hook = function(context) {
            (context = context || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) || "undefined" == typeof __VUE_SSR_CONTEXT__ || (context = __VUE_SSR_CONTEXT__), 
            injectStyles && injectStyles.call(this, context), context && context._registeredComponents && context._registeredComponents.add(moduleIdentifier);
        }, options._ssrRegister = hook) : injectStyles && (hook = shadowMode ? function() {
            injectStyles.call(this, this.$root.$options.shadowRoot);
        } : injectStyles), hook) if (options.functional) {
            options._injectStyles = hook;
            var originalRender = options.render;
            options.render = function(h, context) {
                return hook.call(context), originalRender(h, context);
            };
        } else {
            var existing = options.beforeCreate;
            options.beforeCreate = existing ? [].concat(existing, hook) : [ hook ];
        }
        return {
            exports: scriptExports,
            options: options
        };
    }
    var component = normalizeComponent(components_ToolBarvue_type_script_lang_js_, render, [], !1, null, "65511fdb", null);
    component.options.__file = "src/components/ToolBar.vue";
    var ToolBar = component.exports, CheckboxHeadervue_type_template_id_92d07b40_scoped_true_lang_pug_render = function() {
        var _vm = this, _h = _vm.$createElement, _c = _vm._self._c || _h;
        return _c("th", {
            staticClass: "header",
            attrs: {
                width: "40"
            }
        }, [ _c("input", {
            directives: [ {
                name: "model",
                rawName: "v-model",
                value: _vm.checked,
                expression: "checked"
            } ],
            staticClass: "select-all",
            attrs: {
                type: "checkbox"
            },
            domProps: {
                checked: Array.isArray(_vm.checked) ? _vm._i(_vm.checked, null) > -1 : _vm.checked
            },
            on: {
                change: [ function($event) {
                    var $$a = _vm.checked, $$el = $event.target, $$c = !!$$el.checked;
                    if (Array.isArray($$a)) {
                        var $$i = _vm._i($$a, null);
                        $$el.checked ? $$i < 0 && (_vm.checked = $$a.concat([ null ])) : $$i > -1 && (_vm.checked = $$a.slice(0, $$i).concat($$a.slice($$i + 1)));
                    } else _vm.checked = $$c;
                }, function($event) {
                    return _vm.$emit("change", $event.target.checked);
                } ]
            }
        }) ]);
    };
    CheckboxHeadervue_type_template_id_92d07b40_scoped_true_lang_pug_render._withStripped = !0;
    var components_CheckboxHeadervue_type_script_lang_js_ = {
        name: "CheckboxHeader",
        data: () => ({
            checked: !1
        })
    }, CheckboxHeader_component = (__webpack_require__(12), normalizeComponent(components_CheckboxHeadervue_type_script_lang_js_, CheckboxHeadervue_type_template_id_92d07b40_scoped_true_lang_pug_render, [], !1, null, "92d07b40", null));
    CheckboxHeader_component.options.__file = "src/components/CheckboxHeader.vue";
    var CheckboxHeader = CheckboxHeader_component.exports, CheckboxItemvue_type_template_id_5a2a5aa6_scoped_true_lang_pug_render = function() {
        var _vm = this, _h = _vm.$createElement, _c = _vm._self._c || _h;
        return _c("td", {
            attrs: {
                width: "40"
            }
        }, [ _c("input", {
            directives: [ {
                name: "model",
                rawName: "v-model",
                value: _vm.checked,
                expression: "checked"
            } ],
            staticClass: "select",
            attrs: {
                type: "checkbox",
                "data-index": _vm.index
            },
            domProps: {
                checked: Array.isArray(_vm.checked) ? _vm._i(_vm.checked, null) > -1 : _vm.checked
            },
            on: {
                change: [ function($event) {
                    var $$a = _vm.checked, $$el = $event.target, $$c = !!$$el.checked;
                    if (Array.isArray($$a)) {
                        var $$i = _vm._i($$a, null);
                        $$el.checked ? $$i < 0 && (_vm.checked = $$a.concat([ null ])) : $$i > -1 && (_vm.checked = $$a.slice(0, $$i).concat($$a.slice($$i + 1)));
                    } else _vm.checked = $$c;
                }, function($event) {
                    return _vm.$emit("change", $event.target.checked);
                } ]
            }
        }) ]);
    };
    CheckboxItemvue_type_template_id_5a2a5aa6_scoped_true_lang_pug_render._withStripped = !0;
    var components_CheckboxItemvue_type_script_lang_js_ = {
        name: "CheckboxItem",
        props: {
            index: {
                type: Number,
                default: 0
            },
            magnet: {
                type: String,
                default: ""
            }
        },
        data: () => ({
            checked: !1
        })
    }, CheckboxItem_component = (__webpack_require__(14), normalizeComponent(components_CheckboxItemvue_type_script_lang_js_, CheckboxItemvue_type_template_id_5a2a5aa6_scoped_true_lang_pug_render, [], !1, null, "5a2a5aa6", null));
    CheckboxItem_component.options.__file = "src/components/CheckboxItem.vue";
    var CheckboxItem = CheckboxItem_component.exports, Toastvue_type_template_id_0321d2b2_scoped_true_lang_pug_render = function() {
        var _h = this.$createElement, _c = this._self._c || _h;
        return _c("div", {
            staticClass: "toast",
            class: {
                show: this.show
            }
        }, [ _c("span", {
            staticClass: "text"
        }, [ this._v(this._s(this.text)) ]) ]);
    };
    Toastvue_type_template_id_0321d2b2_scoped_true_lang_pug_render._withStripped = !0;
    var components_Toastvue_type_script_lang_js_ = {
        name: "Toast",
        data: () => ({
            text: "",
            show: !1,
            timer: 0
        }),
        methods: {
            display(text) {
                this.timer && (window.clearTimeout(this.timer), this.timer = 0), this.text = text, 
                this.show = !0;
                const _self = this;
                this.timer = window.setTimeout(function() {
                    _self.show = !1, _self.text = "", _self.timer = 0;
                }, 3e3);
            }
        }
    }, Toast_component = (__webpack_require__(16), normalizeComponent(components_Toastvue_type_script_lang_js_, Toastvue_type_template_id_0321d2b2_scoped_true_lang_pug_render, [], !1, null, "0321d2b2", null));
    Toast_component.options.__file = "src/components/Toast.vue";
    var Toast = Toast_component.exports, LinksPopupvue_type_template_id_6c1bc523_scoped_true_lang_pug_render = function() {
        var _vm = this, _h = _vm.$createElement, _c = _vm._self._c || _h;
        return _c("popup", {
            attrs: {
                "z-index": _vm.zIndex,
                middle: !1,
                "margin-top": 100
            },
            on: {
                "overlay-click": function($event) {
                    return _vm.$emit("close");
                }
            }
        }, [ _c("div", {
            staticClass: "popup-header"
        }, [ _c("h4", [ _vm._v("查看链接") ]), _c("button", {
            staticClass: "btn",
            on: {
                click: function($event) {
                    return _vm.$emit("close");
                }
            }
        }, [ _vm._v("关闭") ]) ]), _c("div", {
            staticClass: "popup-body"
        }, [ _c("textarea", {
            directives: [ {
                name: "model",
                rawName: "v-model",
                value: _vm.content,
                expression: "content"
            } ],
            ref: "textarea",
            staticClass: "links-box",
            style: _vm.textStyle,
            attrs: {
                rows: "10",
                cols: "80"
            },
            domProps: {
                value: _vm.content
            },
            on: {
                input: function($event) {
                    $event.target.composing || (_vm.content = $event.target.value);
                }
            }
        }) ]), _c("div", {
            staticClass: "popup-footer"
        }, [ _c("button", {
            staticClass: "btn",
            on: {
                click: _vm.resetContent
            }
        }, [ _vm._v("重置") ]), _c("button", {
            staticClass: "btn",
            on: {
                click: _vm.selectAll
            }
        }, [ _vm._v("全选") ]), _c("button", {
            staticClass: "btn",
            on: {
                click: _vm.copySelected
            }
        }, [ _vm._v("复制选中") ]), _c("button", {
            staticClass: "btn",
            on: {
                click: _vm.copyAll
            }
        }, [ _vm._v("复制全部") ]), _c("p", [ _vm._v("共 " + _vm._s(_vm.links.length) + " 条链接") ]) ]) ]);
    };
    LinksPopupvue_type_template_id_6c1bc523_scoped_true_lang_pug_render._withStripped = !0;
    var Popupvue_type_template_id_6be7b2a8_scoped_true_lang_pug_render = function() {
        var _vm = this, _h = _vm.$createElement, _c = _vm._self._c || _h;
        return _c("div", {
            staticClass: "overlay",
            style: {
                "z-index": _vm.zIndex
            },
            on: {
                click: function($event) {
                    return $event.target !== $event.currentTarget ? null : _vm.$emit("overlay-click");
                },
                touchmove: _vm.onScroll,
                mousewheel: _vm.onScroll
            }
        }, [ _c("div", {
            staticClass: "popup",
            class: {
                middle: _vm.middle
            },
            style: {
                "margin-top": _vm.marginTop + "px"
            }
        }, [ _vm._t("default") ], 2) ]);
    };
    Popupvue_type_template_id_6be7b2a8_scoped_true_lang_pug_render._withStripped = !0;
    var components_Popupvue_type_script_lang_js_ = {
        name: "Popup",
        props: {
            zIndex: {
                type: Number,
                default: 10
            },
            middle: {
                type: Boolean,
                default: !1
            },
            marginTop: {
                type: Number,
                default: 0
            }
        },
        methods: {
            onScroll(evt) {
                const el = evt.target, {overflow: overflow, overflowY: overflowY, overflowX: overflowX} = window.getComputedStyle(el);
                (!/(auto|scroll)/.test(overflow + overflowX + overflowY) || 0 === el.scrollTop && evt.deltaY < 0 || Math.abs(el.scrollTop - (el.scrollHeight - el.clientHeight)) <= 1 && evt.deltaY > 0) && evt.preventDefault();
            }
        }
    }, Popup_component = (__webpack_require__(18), normalizeComponent(components_Popupvue_type_script_lang_js_, Popupvue_type_template_id_6be7b2a8_scoped_true_lang_pug_render, [], !1, null, "6be7b2a8", null));
    Popup_component.options.__file = "src/components/Popup.vue";
    var components_LinksPopupvue_type_script_lang_js_ = {
        name: "LinksPopup",
        components: {
            Popup: Popup_component.exports
        },
        props: {
            zIndex: {
                type: Number,
                default: 10
            },
            links: {
                type: Array,
                default: () => []
            },
            options: {
                type: Object,
                default: () => ({
                    separator: getDefaultLinebreak()
                })
            }
        },
        data: () => ({
            content: ""
        }),
        created() {
            this.resetContent();
        },
        watch: {
            links() {
                this.resetContent();
            }
        },
        computed: {
            textStyle() {
                return [ "\n", "\r\n" ].indexOf(this.options.separator) > -1 && this.links.length > 1 ? {
                    "white-space": "nowrap",
                    "word-wrap": "normal"
                } : {
                    "white-space": "pre-wrap",
                    "word-wrap": "break-all"
                };
            }
        },
        methods: {
            resetContent() {
                this.content = this.links.join(this.options.separator);
            },
            copySelected() {
                const target = this.$refs.textarea;
                if (target) {
                    const start = target.selectionStart, finish = target.selectionEnd;
                    if (start < 0 || finish <= start) return void this.$toast.display("所选内容为空!");
                    try {
                        const text = this.content.substring(start, finish);
                        GM_setClipboard(text, "{ type: 'text', mimetype: 'text/plain'}"), this.$toast.display("复制成功");
                    } catch (e) {
                        this.$toast.display("复制失败");
                    }
                } else this.$toast.display("获取文本框失败");
            },
            copyAll() {
                if (this.content) try {
                    GM_setClipboard(this.content, "{ type: 'text', mimetype: 'text/plain'}"), this.$toast.display("复制成功");
                } catch (e) {
                    this.$toast.display("复制失败");
                } else this.$toast.display("文本框内容为空");
            },
            selectAll() {
                const target = this.$refs.textarea;
                target ? target.select() : this.$toast.display("获取文本框失败");
            }
        }
    }, LinksPopup_component = (__webpack_require__(20), normalizeComponent(components_LinksPopupvue_type_script_lang_js_, LinksPopupvue_type_template_id_6c1bc523_scoped_true_lang_pug_render, [], !1, null, "6c1bc523", null));
    LinksPopup_component.options.__file = "src/components/LinksPopup.vue";
    var LinksPopup = LinksPopup_component.exports;
    function createToolbar(propsData) {
        return new (external_Vue_default.a.extend(ToolBar))({
            propsData: propsData
        }).$mount();
    }
    const list = function(selector) {
        const HeaderVM = external_Vue_default.a.extend(CheckboxHeader), ItemVM = external_Vue_default.a.extend(CheckboxItem);
        return new external_Vue_default.a({
            el: selector,
            data: () => ({
                header: null,
                all: [],
                selected: []
            }),
            mounted() {
                this.$nextTick(function() {
                    const table = this.$el;
                    if (table.tHead && table.tBodies) {
                        table.tHead.rows && table.tHead.rows.length > 0 && this.insertHeaderToRow(table.tHead.rows[0]);
                        let index = 0;
                        for (let i = 0, len = table.tBodies.length; i < len; i++) {
                            let body = table.tBodies[i];
                            for (let j = 0, rowLen = body.rows.length; j < rowLen; j++) this.insertCheckBoxToRow(body.rows[j], index++);
                        }
                    } else if (table.rows) for (let i = 0, len = table.rows.length; i < len; i++) {
                        let row = table.rows[i];
                        0 === i ? this.insertHeaderToRow(row) : this.insertCheckBoxToRow(row, i - 1);
                    }
                });
            },
            beforeDestroy() {
                this.header && (this.header.$off("change"), this.header = null), this.all.forEach(item => {
                    item.$off("change");
                }), this.all.splice(0, this.all.length), this.selected.splice(0, this.selected.length);
            },
            computed: {
                links() {
                    return this.selected.map(item => item.magnet).filter(m => !!m);
                }
            },
            watch: {
                links(val) {
                    this.$emit("change", val);
                }
            },
            methods: {
                insertHeaderToRow(row) {
                    const th = new HeaderVM();
                    th.$on("change", this.onSelectAllChange), th.$mount(), row.insertBefore(th.$el, row.cells[0]), 
                    this.header = th;
                },
                insertCheckBoxToRow(row, index) {
                    const linkDOM = row.querySelector(".arrow-magnet"), tdDOM = row.insertCell(0), td = new ItemVM({
                        propsData: {
                            index: index,
                            magnet: linkDOM ? linkDOM.href : ""
                        }
                    }), _self = this;
                    td.$on("change", function(checked) {
                        _self.onItemSelectChange(td, checked);
                    }), td.$mount(tdDOM), this.all.push(td);
                },
                onSelectAllChange(checked) {
                    this.all.forEach(function(item) {
                        item.checked = checked;
                    }), checked ? this.selected = [ ...this.all ] : this.selected.splice(0, this.selected.length);
                },
                onItemSelectChange(item, checked) {
                    const selectedIndex = this.selected.indexOf(item);
                    checked && selectedIndex < 0 ? this.selected.push(item) : !checked && selectedIndex > -1 && this.selected.splice(selectedIndex, 1), 
                    this.header && (this.header.checked = this.all.length === this.selected.length);
                }
            }
        });
    }("#topic_list");
    if (list.$el && list.$el.parentNode) {
        const toast = function() {
            const toast = new (external_Vue_default.a.extend(Toast))().$mount();
            return document.body.appendChild(toast.$el), Object.defineProperty(external_Vue_default.a.prototype, "$toast", {
                value: toast
            }), toast;
        }();
        let popupIndex = 10;
        const onCopyClick = function(opts) {
            const links = magnetLinksWithOptions(list.links, opts);
            if (links.length > 0) try {
                const content = links.join(opts.separator);
                GM_setClipboard(content, "{ type: 'text', mimetype: 'text/plain'}"), toast.display("复制成功!");
            } catch (e) {
                toast.display("复制失败,请重试。");
            }
        }, onShowClick = function(opts) {
            const links = magnetLinksWithOptions(list.links, opts);
            if (links.length > 0) {
                const popup = (propsData = {
                    zIndex: popupIndex++,
                    links: links,
                    options: opts
                }, new (external_Vue_default.a.extend(LinksPopup))({
                    propsData: propsData
                }).$mount());
                popup.$on("close", function() {
                    popup.$off("close");
                    try {
                        popup.$el.remove();
                    } catch (e) {
                        document.body.removeChild(popup.$el);
                    }
                }), document.body.appendChild(popup.$el);
            }
            var propsData;
        }, tableContainer = list.$el.parentNode.parentNode;
        if (tableContainer.className.indexOf("table") > -1) {
            const headerToolbar = createToolbar({
                position: "top"
            });
            headerToolbar.$on("copy", onCopyClick), headerToolbar.$on("show", onShowClick);
            const bottomToobar = createToolbar({
                position: "bottom"
            });
            bottomToobar.$on("copy", onCopyClick), bottomToobar.$on("show", onShowClick), tableContainer.insertBefore(headerToolbar.$el, tableContainer.firstChild), 
            tableContainer.appendChild(bottomToobar.$el), list.$on("change", function(values) {
                const isEmpty = values.length <= 0;
                headerToolbar.visible = !isEmpty, bottomToobar.visible = !isEmpty;
            });
        }
    }
} ]);