// ==UserScript==
// @name 🔥🔥小说下载器,支持部分VIP网站🔥🔥
// @namespace https://www.softrr.cn/
// @version 1.0.2
// @author hackhase
// @description 小说一键下载,点击一键下载后,会自动抓取小说章节目录,完成后会打包成zip,小说格式为txt
// @license MIT
// @icon https://p1-tt.byteimg.com/origin/novel-static/a3621391ca2e537045168afda6722ee9
// @match *://fanqienovel.com/*
// @match *://*.dushuge.com/*
// @require https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.global.prod.js
// @require data:application/javascript,%3Bwindow.Vue%3DVue%3B
// @require https://cdn.jsdelivr.net/npm/[email protected]/dist/index.full.min.js
// @resource element-plus/dist/index.css https://cdn.jsdelivr.net/npm/[email protected]/dist/index.css
// @connect www.softrr.cn
// @connect fanqienovel.com
// @connect www.dushuge.com
// @grant GM_addStyle
// @grant GM_getResourceText
// @grant GM_xmlhttpRequest
// @grant unsafeWindow
// ==/UserScript==
(e=>{if(typeof GM_addStyle=="function"){GM_addStyle(e);return}const r=document.createElement("style");r.textContent=e,document.head.append(r)})(' @charset "UTF-8";:root{font-family:Inter,Avenir,Helvetica,Arial,sans-serif;font-size:16px;line-height:24px;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.card{padding:2em}#app{height:100px}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","\u5FAE\u8F6F\u96C5\u9ED1",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645,.045,.355,1);--el-transition-function-fast-bezier:cubic-bezier(.23,1,.32,1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px}:root{color-scheme:light;--el-color-primary:#409eff;--el-color-primary-light-3:#79bbff;--el-color-primary-light-5:#a0cfff;--el-color-primary-light-7:#c6e2ff;--el-color-primary-light-8:#d9ecff;--el-color-primary-light-9:#ecf5ff;--el-color-primary-dark-2:#337ecc;--el-color-success:#67c23a;--el-color-success-light-3:#95d475;--el-color-success-light-5:#b3e19d;--el-color-success-light-7:#d1edc4;--el-color-success-light-8:#e1f3d8;--el-color-success-light-9:#f0f9eb;--el-color-success-dark-2:#529b2e;--el-color-warning:#e6a23c;--el-color-warning-light-3:#eebe77;--el-color-warning-light-5:#f3d19e;--el-color-warning-light-7:#f8e3c5;--el-color-warning-light-8:#faecd8;--el-color-warning-light-9:#fdf6ec;--el-color-warning-dark-2:#b88230;--el-color-danger:#f56c6c;--el-color-danger-light-3:#f89898;--el-color-danger-light-5:#fab6b6;--el-color-danger-light-7:#fcd3d3;--el-color-danger-light-8:#fde2e2;--el-color-danger-light-9:#fef0f0;--el-color-danger-dark-2:#c45656;--el-color-error:#f56c6c;--el-color-error-light-3:#f89898;--el-color-error-light-5:#fab6b6;--el-color-error-light-7:#fcd3d3;--el-color-error-light-8:#fde2e2;--el-color-error-light-9:#fef0f0;--el-color-error-dark-2:#c45656;--el-color-info:#909399;--el-color-info-light-3:#b1b3b8;--el-color-info-light-5:#c8c9cc;--el-color-info-light-7:#dedfe0;--el-color-info-light-8:#e9e9eb;--el-color-info-light-9:#f4f4f5;--el-color-info-dark-2:#73767a;--el-bg-color:#ffffff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#ffffff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#ffffff;--el-box-shadow:0px 12px 32px 4px rgba(0,0,0,.04),0px 8px 20px rgba(0,0,0,.08);--el-box-shadow-light:0px 0px 12px rgba(0,0,0,.12);--el-box-shadow-lighter:0px 0px 6px rgba(0,0,0,.12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0,0,0,.08),0px 12px 32px rgba(0,0,0,.12),0px 8px 16px -8px rgba(0,0,0,.16);--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:rgba(0,0,0,.8);--el-overlay-color-light:rgba(0,0,0,.7);--el-overlay-color-lighter:rgba(0,0,0,.5);--el-mask-color:rgba(255,255,255,.9);--el-mask-color-extra-light:rgba(255,255,255,.3);--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transform-origin:center top;transition:var(--el-transition-md-fade)}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transform-origin:center bottom;transition:var(--el-transition-md-fade)}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transform-origin:top left;transition:var(--el-transition-md-fade)}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.el-icon{--color:inherit;align-items:center;display:inline-flex;height:1em;justify-content:center;line-height:1em;position:relative;width:1em;fill:currentColor;color:var(--color);font-size:inherit}.el-icon.is-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}.el-progress{align-items:center;display:flex;line-height:1;position:relative}.el-progress__text{color:var(--el-text-color-regular);font-size:14px;line-height:1;margin-left:5px;min-width:50px}.el-progress__text i{display:block;vertical-align:middle}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{left:0;margin:0;position:absolute;text-align:center;top:50%;transform:translateY(-50%);width:100%}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{display:inline-block;vertical-align:middle}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{display:block;margin-right:0;padding-right:0}.el-progress--text-inside .el-progress-bar{margin-right:0;padding-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:var(--el-color-success)}.el-progress.is-success .el-progress__text{color:var(--el-color-success)}.el-progress.is-warning .el-progress-bar__inner{background-color:var(--el-color-warning)}.el-progress.is-warning .el-progress__text{color:var(--el-color-warning)}.el-progress.is-exception .el-progress-bar__inner{background-color:var(--el-color-danger)}.el-progress.is-exception .el-progress__text{color:var(--el-color-danger)}.el-progress-bar{box-sizing:border-box;flex-grow:1}.el-progress-bar__outer{background-color:var(--el-border-color-lighter);border-radius:100px;height:6px;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{background-color:var(--el-color-primary);border-radius:100px;height:100%;left:0;line-height:1;position:absolute;text-align:right;top:0;transition:width .6s ease;white-space:nowrap}.el-progress-bar__inner:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-progress-bar__inner--indeterminate{-webkit-animation:indeterminate 3s infinite;animation:indeterminate 3s infinite;transform:translateZ(0)}.el-progress-bar__inner--striped{background-image:linear-gradient(45deg,rgba(0,0,0,.1) 25%,transparent 0,transparent 50%,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) 75%,transparent 0,transparent);background-size:1.25em 1.25em}.el-progress-bar__inner--striped.el-progress-bar__inner--striped-flow{-webkit-animation:striped-flow 3s linear infinite;animation:striped-flow 3s linear infinite}.el-progress-bar__innerText{color:#fff;display:inline-block;font-size:12px;margin:0 5px;vertical-align:middle}@-webkit-keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@-webkit-keyframes indeterminate{0%{left:-100%}to{left:100%}}@keyframes indeterminate{0%{left:-100%}to{left:100%}}@-webkit-keyframes striped-flow{0%{background-position:-100%}to{background-position:100%}}@keyframes striped-flow{0%{background-position:-100%}to{background-position:100%}}.modal-wrapper[data-v-1bdd90d5]{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:9999}.modal[data-v-1bdd90d5]{background-color:#fff;padding:20px;border-radius:5px}.header[data-v-1bdd90d5]{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.header h2[data-v-1bdd90d5]{margin:0;font-size:20px;font-weight:700}.header button[data-v-1bdd90d5]{border:none;background-color:transparent;font-size:20px;cursor:pointer}.content[data-v-1bdd90d5]{max-height:400px;overflow:auto;font-size:16px;display:flex;justify-content:space-between}.content .produce p[data-v-1bdd90d5]{margin-top:15px}.content .produce .ipt[data-v-1bdd90d5]{margin-top:15px;height:30px;border-radius:5px;padding-left:10px}.content .img[data-v-1bdd90d5]{display:flex;align-items:center;justify-content:center}.content .img img[data-v-1bdd90d5]{width:180px}input[data-v-1bdd90d5]::-webkit-input-placeholder{color:#aab2bd;font-size:14px;padding-left:5px}.downLoad_container[data-v-4764a741]{width:160px;position:fixed;right:10px;top:80px;color:#111;z-index:999;display:flex;flex-direction:column}.downLoad_container .prase[data-v-4764a741],.downLoad_container .down[data-v-4764a741]{margin-bottom:10px;width:100px;height:30px;font-size:14px;background-color:red;color:#fff;border-radius:10%;z-index:999}.downLoad_container .prase[data-v-4764a741]:hover,.downLoad_container .down[data-v-4764a741]:hover{background-color:#87ceeb;color:#fff} ');
(async function (vue, elementPlus) {
'use strict';
const hasOwnProperty = Object.prototype.hasOwnProperty;
const hasOwn = (val, key) => hasOwnProperty.call(val, key);
const isFunction = (val) => typeof val === "function";
const isString = (val) => typeof val === "string";
const isObject = (val) => val !== null && typeof val === "object";
function fromPairs(pairs) {
var index = -1, length = pairs == null ? 0 : pairs.length, result = {};
while (++index < length) {
var pair = pairs[index];
result[pair[0]] = pair[1];
}
return result;
}
const isUndefined = (val) => val === void 0;
const isNumber = (val) => typeof val === "number";
const isStringNumber = (val) => {
if (!isString(val)) {
return false;
}
return !Number.isNaN(Number(val));
};
function addUnit(value, defaultUnit = "px") {
if (!value)
return "";
if (isNumber(value) || isStringNumber(value)) {
return `${value}${defaultUnit}`;
} else if (isString(value)) {
return value;
}
}
/*! Element Plus Icons Vue v2.3.1 */
var check_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "Check",
__name: "check",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M406.656 706.944 195.84 496.256a32 32 0 1 0-45.248 45.248l256 256 512-512a32 32 0 0 0-45.248-45.248L406.592 706.944z"
})
]));
}
});
var check_default = check_vue_vue_type_script_setup_true_lang_default;
var circle_check_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "CircleCheck",
__name: "circle-check",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"
}),
vue.createElementVNode("path", {
fill: "currentColor",
d: "M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752l265.344-265.408z"
})
]));
}
});
var circle_check_default = circle_check_vue_vue_type_script_setup_true_lang_default;
var circle_close_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "CircleClose",
__name: "circle-close",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248z"
}),
vue.createElementVNode("path", {
fill: "currentColor",
d: "M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"
})
]));
}
});
var circle_close_default = circle_close_vue_vue_type_script_setup_true_lang_default;
var close_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "Close",
__name: "close",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"
})
]));
}
});
var close_default = close_vue_vue_type_script_setup_true_lang_default;
var warning_filled_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "WarningFilled",
__name: "warning-filled",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256m0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4"
})
]));
}
});
var warning_filled_default = warning_filled_vue_vue_type_script_setup_true_lang_default;
const epPropKey = "__epPropKey";
const definePropType = (val) => val;
const isEpProp = (val) => isObject(val) && !!val[epPropKey];
const buildProp = (prop, key) => {
if (!isObject(prop) || isEpProp(prop))
return prop;
const { values, required, default: defaultValue, type, validator } = prop;
const _validator = values || validator ? (val) => {
let valid = false;
let allowedValues = [];
if (values) {
allowedValues = Array.from(values);
if (hasOwn(prop, "default")) {
allowedValues.push(defaultValue);
}
valid || (valid = allowedValues.includes(val));
}
if (validator)
valid || (valid = validator(val));
if (!valid && allowedValues.length > 0) {
const allowValuesText = [...new Set(allowedValues)].map((value) => JSON.stringify(value)).join(", ");
vue.warn(`Invalid prop: validation failed${key ? ` for prop "${key}"` : ""}. Expected one of [${allowValuesText}], got value ${JSON.stringify(val)}.`);
}
return valid;
} : void 0;
const epProp = {
type,
required: !!required,
validator: _validator,
[epPropKey]: true
};
if (hasOwn(prop, "default"))
epProp.default = defaultValue;
return epProp;
};
const buildProps = (props) => fromPairs(Object.entries(props).map(([key, option]) => [
key,
buildProp(option, key)
]));
const withInstall = (main, extra) => {
main.install = (app2) => {
for (const comp of [main, ...Object.values(extra != null ? extra : {})]) {
app2.component(comp.name, comp);
}
};
if (extra) {
for (const [key, comp] of Object.entries(extra)) {
main[key] = comp;
}
}
return main;
};
const defaultNamespace = "el";
const statePrefix = "is-";
const _bem = (namespace, block, blockSuffix, element, modifier) => {
let cls = `${namespace}-${block}`;
if (blockSuffix) {
cls += `-${blockSuffix}`;
}
if (element) {
cls += `__${element}`;
}
if (modifier) {
cls += `--${modifier}`;
}
return cls;
};
const namespaceContextKey = Symbol("namespaceContextKey");
const useGetDerivedNamespace = (namespaceOverrides) => {
const derivedNamespace = namespaceOverrides || (vue.getCurrentInstance() ? vue.inject(namespaceContextKey, vue.ref(defaultNamespace)) : vue.ref(defaultNamespace));
const namespace = vue.computed(() => {
return vue.unref(derivedNamespace) || defaultNamespace;
});
return namespace;
};
const useNamespace = (block, namespaceOverrides) => {
const namespace = useGetDerivedNamespace(namespaceOverrides);
const b = (blockSuffix = "") => _bem(namespace.value, block, blockSuffix, "", "");
const e = (element) => element ? _bem(namespace.value, block, "", element, "") : "";
const m = (modifier) => modifier ? _bem(namespace.value, block, "", "", modifier) : "";
const be = (blockSuffix, element) => blockSuffix && element ? _bem(namespace.value, block, blockSuffix, element, "") : "";
const em = (element, modifier) => element && modifier ? _bem(namespace.value, block, "", element, modifier) : "";
const bm = (blockSuffix, modifier) => blockSuffix && modifier ? _bem(namespace.value, block, blockSuffix, "", modifier) : "";
const bem = (blockSuffix, element, modifier) => blockSuffix && element && modifier ? _bem(namespace.value, block, blockSuffix, element, modifier) : "";
const is = (name, ...args) => {
const state = args.length >= 1 ? args[0] : true;
return name && state ? `${statePrefix}${name}` : "";
};
const cssVar = (object) => {
const styles = {};
for (const key in object) {
if (object[key]) {
styles[`--${namespace.value}-${key}`] = object[key];
}
}
return styles;
};
const cssVarBlock = (object) => {
const styles = {};
for (const key in object) {
if (object[key]) {
styles[`--${namespace.value}-${block}-${key}`] = object[key];
}
}
return styles;
};
const cssVarName = (name) => `--${namespace.value}-${name}`;
const cssVarBlockName = (name) => `--${namespace.value}-${block}-${name}`;
return {
namespace,
b,
e,
m,
be,
em,
bm,
bem,
is,
cssVar,
cssVarName,
cssVarBlock,
cssVarBlockName
};
};
var _export_sfc$1 = (sfc, props) => {
const target = sfc.__vccOpts || sfc;
for (const [key, val] of props) {
target[key] = val;
}
return target;
};
const iconProps = buildProps({
size: {
type: definePropType([Number, String])
},
color: {
type: String
}
});
const __default__$1 = vue.defineComponent({
name: "ElIcon",
inheritAttrs: false
});
const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
...__default__$1,
props: iconProps,
setup(__props) {
const props = __props;
const ns = useNamespace("icon");
const style2 = vue.computed(() => {
const { size, color } = props;
if (!size && !color)
return {};
return {
fontSize: isUndefined(size) ? void 0 : addUnit(size),
"--color": color
};
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("i", vue.mergeProps({
class: vue.unref(ns).b(),
style: vue.unref(style2)
}, _ctx.$attrs), [
vue.renderSlot(_ctx.$slots, "default")
], 16);
};
}
});
var Icon = /* @__PURE__ */ _export_sfc$1(_sfc_main$3, [["__file", "icon.vue"]]);
const ElIcon = withInstall(Icon);
const progressProps = buildProps({
type: {
type: String,
default: "line",
values: ["line", "circle", "dashboard"]
},
percentage: {
type: Number,
default: 0,
validator: (val) => val >= 0 && val <= 100
},
status: {
type: String,
default: "",
values: ["", "success", "exception", "warning"]
},
indeterminate: {
type: Boolean,
default: false
},
duration: {
type: Number,
default: 3
},
strokeWidth: {
type: Number,
default: 6
},
strokeLinecap: {
type: definePropType(String),
default: "round"
},
textInside: {
type: Boolean,
default: false
},
width: {
type: Number,
default: 126
},
showText: {
type: Boolean,
default: true
},
color: {
type: definePropType([
String,
Array,
Function
]),
default: ""
},
striped: Boolean,
stripedFlow: Boolean,
format: {
type: definePropType(Function),
default: (percentage) => `${percentage}%`
}
});
const _hoisted_1$2 = ["aria-valuenow"];
const _hoisted_2$1 = { viewBox: "0 0 100 100" };
const _hoisted_3$1 = ["d", "stroke", "stroke-linecap", "stroke-width"];
const _hoisted_4$1 = ["d", "stroke", "opacity", "stroke-linecap", "stroke-width"];
const _hoisted_5$1 = { key: 0 };
const __default__ = vue.defineComponent({
name: "ElProgress"
});
const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
...__default__,
props: progressProps,
setup(__props) {
const props = __props;
const STATUS_COLOR_MAP = {
success: "#13ce66",
exception: "#ff4949",
warning: "#e6a23c",
default: "#20a0ff"
};
const ns = useNamespace("progress");
const barStyle = vue.computed(() => ({
width: `${props.percentage}%`,
animationDuration: `${props.duration}s`,
backgroundColor: getCurrentColor(props.percentage)
}));
const relativeStrokeWidth = vue.computed(() => (props.strokeWidth / props.width * 100).toFixed(1));
const radius = vue.computed(() => {
if (["circle", "dashboard"].includes(props.type)) {
return Number.parseInt(`${50 - Number.parseFloat(relativeStrokeWidth.value) / 2}`, 10);
}
return 0;
});
const trackPath = vue.computed(() => {
const r = radius.value;
const isDashboard = props.type === "dashboard";
return `
M 50 50
m 0 ${isDashboard ? "" : "-"}${r}
a ${r} ${r} 0 1 1 0 ${isDashboard ? "-" : ""}${r * 2}
a ${r} ${r} 0 1 1 0 ${isDashboard ? "" : "-"}${r * 2}
`;
});
const perimeter = vue.computed(() => 2 * Math.PI * radius.value);
const rate = vue.computed(() => props.type === "dashboard" ? 0.75 : 1);
const strokeDashoffset = vue.computed(() => {
const offset = -1 * perimeter.value * (1 - rate.value) / 2;
return `${offset}px`;
});
const trailPathStyle = vue.computed(() => ({
strokeDasharray: `${perimeter.value * rate.value}px, ${perimeter.value}px`,
strokeDashoffset: strokeDashoffset.value
}));
const circlePathStyle = vue.computed(() => ({
strokeDasharray: `${perimeter.value * rate.value * (props.percentage / 100)}px, ${perimeter.value}px`,
strokeDashoffset: strokeDashoffset.value,
transition: "stroke-dasharray 0.6s ease 0s, stroke 0.6s ease, opacity ease 0.6s"
}));
const stroke = vue.computed(() => {
let ret;
if (props.color) {
ret = getCurrentColor(props.percentage);
} else {
ret = STATUS_COLOR_MAP[props.status] || STATUS_COLOR_MAP.default;
}
return ret;
});
const statusIcon = vue.computed(() => {
if (props.status === "warning") {
return warning_filled_default;
}
if (props.type === "line") {
return props.status === "success" ? circle_check_default : circle_close_default;
} else {
return props.status === "success" ? check_default : close_default;
}
});
const progressTextSize = vue.computed(() => {
return props.type === "line" ? 12 + props.strokeWidth * 0.4 : props.width * 0.111111 + 2;
});
const content = vue.computed(() => props.format(props.percentage));
function getColors(color) {
const span = 100 / color.length;
const seriesColors = color.map((seriesColor, index) => {
if (isString(seriesColor)) {
return {
color: seriesColor,
percentage: (index + 1) * span
};
}
return seriesColor;
});
return seriesColors.sort((a, b) => a.percentage - b.percentage);
}
const getCurrentColor = (percentage) => {
var _a;
const { color } = props;
if (isFunction(color)) {
return color(percentage);
} else if (isString(color)) {
return color;
} else {
const colors = getColors(color);
for (const color2 of colors) {
if (color2.percentage > percentage)
return color2.color;
}
return (_a = colors[colors.length - 1]) == null ? void 0 : _a.color;
}
};
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("div", {
class: vue.normalizeClass([
vue.unref(ns).b(),
vue.unref(ns).m(_ctx.type),
vue.unref(ns).is(_ctx.status),
{
[vue.unref(ns).m("without-text")]: !_ctx.showText,
[vue.unref(ns).m("text-inside")]: _ctx.textInside
}
]),
role: "progressbar",
"aria-valuenow": _ctx.percentage,
"aria-valuemin": "0",
"aria-valuemax": "100"
}, [
_ctx.type === "line" ? (vue.openBlock(), vue.createElementBlock("div", {
key: 0,
class: vue.normalizeClass(vue.unref(ns).b("bar"))
}, [
vue.createElementVNode("div", {
class: vue.normalizeClass(vue.unref(ns).be("bar", "outer")),
style: vue.normalizeStyle({ height: `${_ctx.strokeWidth}px` })
}, [
vue.createElementVNode("div", {
class: vue.normalizeClass([
vue.unref(ns).be("bar", "inner"),
{ [vue.unref(ns).bem("bar", "inner", "indeterminate")]: _ctx.indeterminate },
{ [vue.unref(ns).bem("bar", "inner", "striped")]: _ctx.striped },
{ [vue.unref(ns).bem("bar", "inner", "striped-flow")]: _ctx.stripedFlow }
]),
style: vue.normalizeStyle(vue.unref(barStyle))
}, [
(_ctx.showText || _ctx.$slots.default) && _ctx.textInside ? (vue.openBlock(), vue.createElementBlock("div", {
key: 0,
class: vue.normalizeClass(vue.unref(ns).be("bar", "innerText"))
}, [
vue.renderSlot(_ctx.$slots, "default", { percentage: _ctx.percentage }, () => [
vue.createElementVNode("span", null, vue.toDisplayString(vue.unref(content)), 1)
])
], 2)) : vue.createCommentVNode("v-if", true)
], 6)
], 6)
], 2)) : (vue.openBlock(), vue.createElementBlock("div", {
key: 1,
class: vue.normalizeClass(vue.unref(ns).b("circle")),
style: vue.normalizeStyle({ height: `${_ctx.width}px`, width: `${_ctx.width}px` })
}, [
(vue.openBlock(), vue.createElementBlock("svg", _hoisted_2$1, [
vue.createElementVNode("path", {
class: vue.normalizeClass(vue.unref(ns).be("circle", "track")),
d: vue.unref(trackPath),
stroke: `var(${vue.unref(ns).cssVarName("fill-color-light")}, #e5e9f2)`,
"stroke-linecap": _ctx.strokeLinecap,
"stroke-width": vue.unref(relativeStrokeWidth),
fill: "none",
style: vue.normalizeStyle(vue.unref(trailPathStyle))
}, null, 14, _hoisted_3$1),
vue.createElementVNode("path", {
class: vue.normalizeClass(vue.unref(ns).be("circle", "path")),
d: vue.unref(trackPath),
stroke: vue.unref(stroke),
fill: "none",
opacity: _ctx.percentage ? 1 : 0,
"stroke-linecap": _ctx.strokeLinecap,
"stroke-width": vue.unref(relativeStrokeWidth),
style: vue.normalizeStyle(vue.unref(circlePathStyle))
}, null, 14, _hoisted_4$1)
]))
], 6)),
(_ctx.showText || _ctx.$slots.default) && !_ctx.textInside ? (vue.openBlock(), vue.createElementBlock("div", {
key: 2,
class: vue.normalizeClass(vue.unref(ns).e("text")),
style: vue.normalizeStyle({ fontSize: `${vue.unref(progressTextSize)}px` })
}, [
vue.renderSlot(_ctx.$slots, "default", { percentage: _ctx.percentage }, () => [
!_ctx.status ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$1, vue.toDisplayString(vue.unref(content)), 1)) : (vue.openBlock(), vue.createBlock(vue.unref(ElIcon), { key: 1 }, {
default: vue.withCtx(() => [
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(statusIcon))))
]),
_: 1
}))
])
], 6)) : vue.createCommentVNode("v-if", true)
], 10, _hoisted_1$2);
};
}
});
var Progress = /* @__PURE__ */ _export_sfc$1(_sfc_main$2, [["__file", "progress.vue"]]);
const ElProgress = withInstall(Progress);
const _export_sfc = (sfc, props) => {
const target = sfc.__vccOpts || sfc;
for (const [key, val] of props) {
target[key] = val;
}
return target;
};
const _withScopeId = (n) => (vue.pushScopeId("data-v-1bdd90d5"), n = n(), vue.popScopeId(), n);
const _hoisted_1$1 = { class: "modal" };
const _hoisted_2 = { class: "header" };
const _hoisted_3 = { class: "content" };
const _hoisted_4 = { class: "produce" };
const _hoisted_5 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("p", null, "1、扫描右侧公众号,点击关注!", -1));
const _hoisted_6 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("p", null, "2、在情感棱镜后台回复:验证码", -1));
const _hoisted_7 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("p", null, "3、在下方输入框输入获取的验证码后回车", -1));
const _hoisted_8 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("div", { class: "img" }, [
/* @__PURE__ */ vue.createElementVNode("img", {
src: "data:image/jpeg;base64,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",
alt: ""
})
], -1));
const _sfc_main$1 = {
__name: "Model",
props: {
title: {
type: String,
required: true
},
code: {
type: Number || String
}
},
setup(__props, { expose: __expose }) {
const props = __props;
const visible = vue.ref(false);
const openModal = () => {
visible.value = true;
};
const closeModal = () => {
visible.value = false;
};
__expose({
visible,
openModal,
closeModal
});
const codeValue = vue.ref();
const enterCode = () => {
if (codeValue.value == props.code) {
localStorage.setItem("fcode", codeValue.value);
visible.value = false;
alert("验证成功,请再次点击解析!");
codeValue.value = "";
} else {
alert("验证码错误,请重新输入!");
codeValue.value = "";
}
};
return (_ctx, _cache) => {
return vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", {
class: "modal-wrapper",
onClick: vue.withModifiers(closeModal, ["self"])
}, [
vue.createElementVNode("div", _hoisted_1$1, [
vue.createElementVNode("div", _hoisted_2, [
vue.createElementVNode("h2", null, vue.toDisplayString(__props.title), 1),
vue.createElementVNode("button", { onClick: closeModal }, "X")
]),
vue.createElementVNode("div", _hoisted_3, [
vue.createElementVNode("div", _hoisted_4, [
_hoisted_5,
_hoisted_6,
_hoisted_7,
vue.withDirectives(vue.createElementVNode("input", {
class: "ipt",
type: "text",
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => codeValue.value = $event),
onKeydown: vue.withKeys(enterCode, ["enter"]),
placeholder: "请输入验证码后按回车"
}, null, 544), [
[vue.vModelText, codeValue.value]
])
]),
_hoisted_8
])
])
], 512)), [
[vue.vShow, visible.value]
]);
};
}
};
const Model = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-1bdd90d5"]]);
var _GM_xmlhttpRequest = /* @__PURE__ */ (() => typeof GM_xmlhttpRequest != "undefined" ? GM_xmlhttpRequest : void 0)();
var _unsafeWindow = /* @__PURE__ */ (() => typeof unsafeWindow != "undefined" ? unsafeWindow : void 0)();
const getDuShuGe = (url) => {
return new Promise((resolve, reject) => {
_GM_xmlhttpRequest({
method: "GET",
url,
headers: {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.289 Safari/537.36"
},
onload: function(res) {
if (res.status == 200) {
if (res.response !== void 0) {
resolve(res.response);
} else {
resolve("无法解析");
}
} else {
resolve("无法解析");
}
},
onerror: function(error) {
reject("解析失败", error);
}
});
});
};
const getDuShuGeList = async () => {
let chapterList = document.querySelectorAll(".listmain > dl>dd");
let Idlist = [];
const regId = /href="([^"]*)"/;
const regContent = /<a.*?>(.*?)<\/a>/;
for (var i = 0; i < chapterList.length; i++) {
let aTag = chapterList[i].innerHTML;
let url = "http://www.dushuge.com/" + aTag.match(regId)[1];
let chapter = aTag.match(regContent)[1];
Idlist.push({ url, chapter });
}
return Idlist;
};
const getDuShuGeContent = async (url) => {
let contentdata = await getDuShuGe(url);
contentdata = contentdata.split('<div id="content" class="showtxt">')[1].split("<br /><br /></div>")[0];
contentdata = contentdata.replace(/ /gi, "");
contentdata = contentdata.replace(/<br \/>/g, "\n");
return contentdata;
};
const importScript = (src) => {
return new Promise((resolve, reject) => {
const script = document.createElement("script");
script.src = src;
script.addEventListener("load", () => {
var _a;
resolve();
(_a = script.parentElement) == null ? void 0 : _a.removeChild(script);
});
script.addEventListener("error", (e) => {
var _a;
reject(e);
(_a = script.parentElement) == null ? void 0 : _a.removeChild(script);
});
document.body.appendChild(script);
});
};
await( importScript(
"https://cdn.jsdelivr.net/npm/[email protected]/dist/jszip.min.js"
));
const JSZip = _unsafeWindow == null ? void 0 : _unsafeWindow.JSZip;
const getCode = () => {
return new Promise(function(resolve, reject) {
_GM_xmlhttpRequest({
method: "GET",
url: `https://www.softrr.cn/crawler/getCode?id=2`,
headers: {
Referer: "https://www.softrr.cn/",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.289 Safari/537.36"
},
onload: function(res) {
resolve(JSON.parse(res.response).data[0].code);
},
onerror: function(error) {
console.log(error);
}
});
});
};
const downComFileTxt = (IDList, chapterTitle, ms) => {
const zip = new JSZip();
const cache = {};
const promises = [];
let i = 0;
async function tick() {
(function(i2) {
let promise = getDuShuGeContent(IDList[i2].url).then((data) => {
let blob = new Blob([data], { type: "text/plain" });
zip.file(IDList[i2].chapter + ".txt", blob, { binary: true });
cache[IDList[i2].chapter] = data;
});
promises.push(promise);
})(i);
i++;
if (i == IDList.length) {
Promise.all(promises).then(() => {
zip.generateAsync({ type: "blob" }).then((content) => {
downLoad(content, chapterTitle, "zip");
});
}).catch((err) => {
elementPlus.ElMessage.error("网站存在网络问题,请稍后重试!");
});
clearTimeout(timer);
}
const timer = setTimeout(tick, ms);
}
tick();
};
const downLoad = (blob, name, type) => {
if (!blob || !type)
return;
const url = window.URL || window.webkitURL || window.moxURL;
const downloadHref = url.createObjectURL(blob);
const link = document.createElement("a");
link.href = downloadHref;
link.download = `${name || "导出文件"}.${type}`;
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
url.revokeObjectURL(downloadHref);
};
const getIdList = () => {
let chapterList = document.querySelectorAll(".chapter-item");
let Idlist = [];
const regId = /\/reader\/(\d+)/;
const regContent = /<a.*?>(.*?)<\/a>/;
for (var i = 0; i < chapterList.length; i++) {
let aTag = chapterList[i].innerHTML;
let ID = aTag.match(regId)[1];
let chapter = aTag.match(regContent)[1];
Idlist.push({ ID, chapter });
}
return Idlist;
};
const cookie = "novel_web_id=7357767624615331362;";
const getContent = (ID) => {
return new Promise(function(resolve, reject) {
_GM_xmlhttpRequest({
method: "GET",
// url: `https://novel.snssdk.com/api/novel/book/reader/full/v1/?device_platform=android&parent_enterfrom=novel_channel_search.tab.&aid=2329&platform_id=1&group_id=0&item_id=${ID}`,
// url: `http://fq.travacocro.com/content?item_id=${ID}`,
url: `https://fanqienovel.com/api/reader/full?itemId=${ID}`,
headers: {
"Content-Type": "application/json",
Accept: "application/json, text/plain, */*"
},
cookie,
anonymous: true,
onload: function(res) {
if (res.response !== void 0) {
resolve(JSON.parse(res.responseText).data.chapterData.content);
} else {
resolve("无法解析");
}
},
onerror: function(error) {
reject(error);
}
});
});
};
const CODE_ST = 58344;
const CODE_ED = 58715;
const charset = [
"D",
"在",
"主",
"特",
"家",
"军",
"然",
"表",
"场",
"4",
"要",
"只",
"v",
"和",
"?",
"6",
"别",
"还",
"g",
"现",
"儿",
"岁",
"?",
"?",
"此",
"象",
"月",
"3",
"出",
"战",
"工",
"相",
"o",
"男",
"直",
"失",
"世",
"F",
"都",
"平",
"文",
"什",
"V",
"O",
"将",
"真",
"T",
"那",
"当",
"?",
"会",
"立",
"些",
"u",
"是",
"十",
"张",
"学",
"气",
"大",
"爱",
"两",
"命",
"全",
"后",
"东",
"性",
"通",
"被",
"1",
"它",
"乐",
"接",
"而",
"感",
"车",
"山",
"公",
"了",
"常",
"以",
"何",
"可",
"话",
"先",
"p",
"i",
"叫",
"轻",
"M",
"士",
"w",
"着",
"变",
"尔",
"快",
"l",
"个",
"说",
"少",
"色",
"里",
"安",
"花",
"远",
"7",
"难",
"师",
"放",
"t",
"报",
"认",
"面",
"道",
"S",
"?",
"克",
"地",
"度",
"I",
"好",
"机",
"U",
"民",
"写",
"把",
"万",
"同",
"水",
"新",
"没",
"书",
"电",
"吃",
"像",
"斯",
"5",
"为",
"y",
"白",
"几",
"日",
"教",
"看",
"但",
"第",
"加",
"候",
"作",
"上",
"拉",
"住",
"有",
"法",
"r",
"事",
"应",
"位",
"利",
"你",
"声",
"身",
"国",
"问",
"马",
"女",
"他",
"Y",
"比",
"父",
"x",
"A",
"H",
"N",
"s",
"X",
"边",
"美",
"对",
"所",
"金",
"活",
"回",
"意",
"到",
"z",
"从",
"j",
"知",
"又",
"内",
"因",
"点",
"Q",
"三",
"定",
"8",
"R",
"b",
"正",
"或",
"夫",
"向",
"德",
"听",
"更",
"?",
"得",
"告",
"并",
"本",
"q",
"过",
"记",
"L",
"让",
"打",
"f",
"人",
"就",
"者",
"去",
"原",
"满",
"体",
"做",
"经",
"K",
"走",
"如",
"孩",
"c",
"G",
"给",
"使",
"物",
"?",
"最",
"笑",
"部",
"?",
"员",
"等",
"受",
"k",
"行",
"一",
"条",
"果",
"动",
"光",
"门",
"头",
"见",
"往",
"自",
"解",
"成",
"处",
"天",
"能",
"于",
"名",
"其",
"发",
"总",
"母",
"的",
"死",
"手",
"入",
"路",
"进",
"心",
"来",
"h",
"时",
"力",
"多",
"开",
"已",
"许",
"d",
"至",
"由",
"很",
"界",
"n",
"小",
"与",
"Z",
"想",
"代",
"么",
"分",
"生",
"口",
"再",
"妈",
"望",
"次",
"西",
"风",
"种",
"带",
"J",
"?",
"实",
"情",
"才",
"这",
"?",
"E",
"我",
"神",
"格",
"长",
"觉",
"间",
"年",
"眼",
"无",
"不",
"亲",
"关",
"结",
"0",
"友",
"信",
"下",
"却",
"重",
"己",
"老",
"2",
"音",
"字",
"m",
"呢",
"明",
"之",
"前",
"高",
"P",
"B",
"目",
"太",
"e",
"9",
"起",
"稜",
"她",
"也",
"W",
"用",
"方",
"子",
"英",
"每",
"理",
"便",
"四",
"数",
"期",
"中",
"C",
"外",
"样",
"a",
"海",
"们",
"任"
];
function interpreter(cc) {
let bias = cc - CODE_ST;
if (bias < 0 || bias >= charset.length || charset[bias] === "?") {
return String.fromCharCode(cc);
}
return charset[bias];
}
function r_content(content) {
let newText = "";
try {
for (var text of content) {
let len = text.length;
for (var ind = 0; ind < len; ind++) {
let cc = text.charCodeAt(ind);
var ch = text.charAt(ind);
if (cc >= CODE_ST && cc <= CODE_ED) {
ch = interpreter(cc);
}
newText += ch;
}
}
} catch (err) {
console.log(err);
}
return newText;
}
const downFanQieFileTxt = (IDList, chapterTitle, ms) => {
const zip = new JSZip();
const promises = [];
let i = 0;
async function tick() {
let promise = getContent(IDList[i].ID).then((data) => {
data = r_content(data);
data = data.replace(/<\/p><p>/g, "\n").replace("<p>", "").replace("</p>", "");
let blob = new Blob([data], { type: "text/plain" });
zip.file(`第${i + 1}章.txt`, blob, { binary: true });
});
promises.push(promise);
i++;
if (i == IDList.length) {
Promise.all(promises).then(() => {
zip.generateAsync({ type: "blob" }).then((content) => {
downLoad(content, chapterTitle, "zip");
});
}).catch((err) => {
console.log(err);
});
clearTimeout(timer);
}
const timer = setTimeout(tick, ms);
}
tick();
};
const _hoisted_1 = { class: "downLoad_container" };
const _sfc_main = {
__name: "App",
setup(__props) {
const flag = vue.ref(false);
const percentage2 = vue.ref();
const ms = vue.ref(100);
const code = vue.ref();
const model = vue.ref("");
const titleList = vue.ref([]);
const chapterTitle = vue.ref("");
const colors = [
{ color: "#f56c6c", percentage: 20 },
{ color: "#e6a23c", percentage: 40 },
{ color: "#5cb87a", percentage: 60 },
{ color: "#1989fa", percentage: 80 },
{ color: "#6f7ad3", percentage: 100 }
];
const onDown = async () => {
code.value = await getCode();
let locaCode = localStorage.getItem("fcode") || "";
let url = window.location.href;
if (locaCode == code.value) {
flag.value = true;
if (url.includes("fanqienovel")) {
titleList.value = getIdList();
let i = 0;
const timer2 = setInterval(() => {
i++;
percentage2.value = Math.round(i * 100 / titleList.value.length);
if (i == titleList.value.length) {
flag.value = false;
clearInterval(timer2);
}
}, ms.value);
chapterTitle.value = document.querySelector(".info-name").innerText;
downFanQieFileTxt(titleList.value, chapterTitle.value, ms.value);
}
if (url.includes("dushuge")) {
titleList.value = await getDuShuGeList();
chapterTitle.value = document.querySelector("#info > h1").innerText;
dowloadFile(titleList.value, chapterTitle.value);
}
} else {
model.value.openModal();
}
};
const dowloadFile = (list, title2) => {
let i = 0;
const timer2 = setInterval(() => {
i++;
percentage2.value = Math.round(i * 100 / list.length);
if (i == list.length) {
flag.value = false;
clearInterval(timer2);
}
}, ms.value);
downComFileTxt(list, title2, ms.value);
};
const title = vue.ref("为了减少端口压力,防止滥用,采取必要的验证手段。");
return (_ctx, _cache) => {
const _component_el_progress = ElProgress;
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
vue.createElementVNode("button", {
onClick: onDown,
class: "down"
}, "一键下载"),
vue.withDirectives(vue.createVNode(_component_el_progress, {
type: "dashboard",
percentage: percentage2.value,
color: colors
}, null, 8, ["percentage"]), [
[vue.vShow, flag.value]
]),
vue.createVNode(Model, {
title: title.value,
code: code.value,
ref_key: "model",
ref: model
}, null, 8, ["title", "code"])
]);
};
}
};
const App = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-4764a741"]]);
const cssLoader = (e) => {
const t = GM_getResourceText(e);
return GM_addStyle(t), t;
};
cssLoader("element-plus/dist/index.css");
const app = vue.createApp(App);
app.mount(
(() => {
const app2 = document.createElement("div");
document.body.append(app2);
return app2;
})()
);
})(Vue, ElementPlus);