您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
任意网页提供漫画搜索;漫画分章节下载(可直接下载/压缩下载),可用于动漫之家、极速漫画、腾讯漫画、哔哩哔哩等35多个网站;对个别漫画网站修改阅读样式;可按需编写定义规则JSON导入以支持其他漫画网站
当前为
// ==UserScript== // @name 10图漫 // @namespace http://tampermonkey2.net/ // @version 1.9.2 // @description 任意网页提供漫画搜索;漫画分章节下载(可直接下载/压缩下载),可用于动漫之家、极速漫画、腾讯漫画、哔哩哔哩等35多个网站;对个别漫画网站修改阅读样式;可按需编写定义规则JSON导入以支持其他漫画网站 // @author journey3510 // @run-at document-end // @grant GM_getValue // @grant GM_setValue // @grant GM_deleteValue // @grant GM_setClipboard // @grant GM_info // @grant GM_xmlhttpRequest // @grant GM_addStyle // @grant GM_getResourceText // @grant GM_download // @grant GM_registerMenuCommand // @grant unsafeWindow // @resource vantcss https://unpkg.com/[email protected]/lib/index.css // @require https://unpkg.com/[email protected]/dist/vue.min.js // @require https://unpkg.com/[email protected]/lib/vant.min.js // @require https://unpkg.com/[email protected]/dist/jszip.min.js // // @connect kumw7.com // @connect darpou.com // @connect manga8.xyz // @connect wuxiamh.com // @connect 169gouwu.com // @connect idmzj.com // @connect dmzj.com // @connect qiximh2.com // @connect byteimg.com // @connect arc-theday.com // @connect gufengmh.com // @connect 123gf.com // @connect xiaoqinre.com // @connect bdstatic.com // @connect ac.qq.com // @connect acimg.cn // @connect mhxqiu1.com // @connect byteimg.com // @connect haoman8.com // @connect mh5.org // @connect xiaomingtaiji.net // @connect 2mzx.com // @connect hnsrht.com // @connect huayingrenren.cn // @connect zuimh.com // @connect pinmh.com // @connect ejujiu.com // @connect dodomh.com // @connect qianwee.com // @connect szssjg.com // @connect ixmh7.com // @connect byteimg.com // @connect mhxin.com // @connect baozimh.com // @connect webmota.com // @connect kingwar.cn // @connect aiguoman.com // @connect acgn.cc // @connect 77mh.xyz // @connect dm365.top // @connect txydd.com // @connect qdjljy.com // @connect cnanjie.com // @connect maofly.com // @connect mhtupian.com // @connect bilibili.com // @connect hdslb.com // @connect mangabz.com // @connect qiman59.com // @connect dcarimg.com // @connect 1kkk.com // @connect cdndm5.com // @connect dm5.com // @connect bilibilicomics.com // @connect kuaikanmanhua.com // @connect v3mh.com // @connect kuaikanmanhua.com // @connect dongmanmanhua.cn // @connect laimidao.com // @connect izhegu.com // @connect nicefee.com // @connect dcarimg.com // @connect baozimh.com // @connect pstatic.net // @connect komiic.com // @connect newtoki15.org // @connect kanbook.net // @connect cdndm5.com // @license GPLv3 // @include * // @connect * // ==/UserScript== /******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ({ /***/ 205: /***/ ((module, __webpack_exports__, __webpack_require__) => { /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(645); /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__); // Imports var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]}); // Module ___CSS_LOADER_EXPORT___.push([module.id, ".van-cell__title {\n text-align: left;\n}\n.van-cell-group__title--inset {\n text-align: left;\n}\n.van-button--default {\n color: #000000;\n background-color: #66ccff96 !important;\n border: 1px solid #ffffff6e;\n}\n.van-button--disabled {\n opacity: 1 !important;\n}\n.van-tag--default {\n background-color: #66ccff;\n}\n.van-checkbox__icon--checked .van-icon {\n color: #ee0000 !important;\n background-color: #66ccff55 !important;\n border-color: #66ccff88 !important;\n}\n.van-popover--light {\n font-size: 14px !important;\n color: #8d8de7 !important;\n}\n.van-popover--light .van-popover__arrow {\n color: #d9d9d9 !important;\n}\n.van-popover__content {\n border: 1px solid !important;\n padding: 2px 9px !important;\n margin-top: 3px !important;\n}\n.van-cell__title {\n text-align: left;\n}\n.van-cell-group__title--inset {\n text-align: left;\n}\n.van-button--default {\n color: #000000;\n background-color: #66ccff96 !important;\n border: 1px solid #ffffff6e;\n}\n.van-button--disabled {\n opacity: 1 !important;\n}\n.van-tag--default {\n background-color: #66ccff;\n}\n.van-checkbox__icon--checked .van-icon {\n color: #ee0000 !important;\n background-color: #66ccff55 !important;\n border-color: #66ccff88 !important;\n}\n.van-popover--light {\n font-size: 14px !important;\n color: #8d8de7 !important;\n}\n.van-popover--light .van-popover__arrow {\n color: #d9d9d9 !important;\n}\n.van-popover__content {\n border: 1px solid !important;\n padding: 2px 9px !important;\n margin-top: 3px !important;\n}\n", ""]); // Exports /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); /***/ }), /***/ 452: /***/ ((module, __webpack_exports__, __webpack_require__) => { /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(645); /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__); // Imports var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]}); // Module ___CSS_LOADER_EXPORT___.push([module.id, ".yi-ling-app *{font-size:14px}.yi-ling-app .app-container{background-color:#f8f8f8;padding:10px}.yi-ling-app ::-webkit-scrollbar{width:4px;height:5px;border-radius:15px;-webkit-border-radius:15px}.yi-ling-app ::-webkit-scrollbar-track-piece{border-radius:15px;-webkit-border-radius:15px}.yi-ling-app ::-webkit-scrollbar-thumb:vertical{height:5px;background-color:rgba(102,204,255,0.533333);border-radius:15px;-webkit-border-radius:15px}.yi-ling-app ::-webkit-scrollbar-thumb:horizontal{width:4px;background-color:rgba(144,147,153,0.5);border-radius:15px;-webkit-border-radius:15px}\n", ""]); // Exports /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); /***/ }), /***/ 658: /***/ ((module, __webpack_exports__, __webpack_require__) => { /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(645); /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__); // Imports var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]}); // Module ___CSS_LOADER_EXPORT___.push([module.id, ".yi-ling-app[data-v-5ef48958] {\n position: fixed;\n z-index: 100000;\n}\n.yi-ling-app #app-right[data-v-5ef48958] {\n height: 800px;\n width: 420px;\n position: fixed;\n right: 0;\n top: 50%;\n transform: translateY(-50%);\n transform-origin: right top;\n z-index: 999999 !important;\n}\n.card[data-v-5ef48958] {\n background-color: #f8f8f8;\n border: solid 1px #66ccffee;\n border-radius: 25px ;\n transition: all 0.5s;\n box-shadow: 2px 3px 3px 2px #66ccff55;\n}\n.card #border-top-set[data-v-5ef48958] {\n border-top-left-radius: 25px;\n border-top-right-radius: 25px;\n overflow: hidden;\n}\n.card #border-bottom-set[data-v-5ef48958] {\n border-bottom-left-radius: 25px;\n border-bottom-right-radius: 25px;\n overflow: hidden;\n}\n.card .swipeitem[data-v-5ef48958] {\n height: 697px;\n padding-bottom: 5px;\n}\n.card__btn[data-v-5ef48958] {\n transition: all 0.5s;\n border-radius: 30px 0 0 30px;\n width: 30px;\n height: 60px;\n background-color: #66ccff96;\n cursor: pointer;\n position: absolute;\n right: 100%;\n top: 50%;\n text-align: center;\n}\n.card__btn svg[data-v-5ef48958] {\n height: 20px;\n width: 20px;\n position: absolute;\n right: 5px;\n top: 20px;\n transition: all 0.5s;\n color: #ee000088;\n}\n.card--hide[data-v-5ef48958] {\n transform: translate(100%, -50%) !important;\n}\n.card--hide .card__btn svg[data-v-5ef48958] {\n transform: rotate(180deg);\n}\n.test[data-v-5ef48958] {\n position: absolute;\n position: relative;\n cursor: default;\n height: 600px;\n}\n.van-cell__title[data-v-5ef48958] {\n text-align: left;\n}\n.van-cell-group__title--inset[data-v-5ef48958] {\n text-align: left;\n}\n.van-button--default[data-v-5ef48958] {\n color: #000000;\n background-color: #66ccff96 !important;\n border: 1px solid #ffffff6e;\n}\n.van-button--disabled[data-v-5ef48958] {\n opacity: 1 !important;\n}\n.van-tag--default[data-v-5ef48958] {\n background-color: #66ccff;\n}\n.van-checkbox__icon--checked .van-icon[data-v-5ef48958] {\n color: #ee0000 !important;\n background-color: #66ccff55 !important;\n border-color: #66ccff88 !important;\n}\n.van-popover--light[data-v-5ef48958] {\n font-size: 14px !important;\n color: #8d8de7 !important;\n}\n.van-popover--light .van-popover__arrow[data-v-5ef48958] {\n color: #d9d9d9 !important;\n}\n.van-popover__content[data-v-5ef48958] {\n border: 1px solid !important;\n padding: 2px 9px !important;\n margin-top: 3px !important;\n}\n", ""]); // Exports /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); /***/ }), /***/ 159: /***/ ((module, __webpack_exports__, __webpack_require__) => { /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(645); /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__); // Imports var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]}); // Module ___CSS_LOADER_EXPORT___.push([module.id, ".import-page[data-v-3e5333e4] {\n display: flex;\n flex-direction: column;\n margin-top: 5px;\n height: 620px;\n max-height: 620px;\n justify-content: space-between;\n}\n.import-page #codeTextarea[data-v-3e5333e4] {\n border-color: #66ccff88;\n border-radius: 8px;\n padding: 2px;\n}\n.van-cell__title[data-v-3e5333e4] {\n text-align: left;\n}\n.van-cell-group__title--inset[data-v-3e5333e4] {\n text-align: left;\n}\n.van-button--default[data-v-3e5333e4] {\n color: #000000;\n background-color: #66ccff96 !important;\n border: 1px solid #ffffff6e;\n}\n.van-button--disabled[data-v-3e5333e4] {\n opacity: 1 !important;\n}\n.van-tag--default[data-v-3e5333e4] {\n background-color: #66ccff;\n}\n.van-checkbox__icon--checked .van-icon[data-v-3e5333e4] {\n color: #ee0000 !important;\n background-color: #66ccff55 !important;\n border-color: #66ccff88 !important;\n}\n.van-popover--light[data-v-3e5333e4] {\n font-size: 14px !important;\n color: #8d8de7 !important;\n}\n.van-popover--light .van-popover__arrow[data-v-3e5333e4] {\n color: #d9d9d9 !important;\n}\n.van-popover__content[data-v-3e5333e4] {\n border: 1px solid !important;\n padding: 2px 9px !important;\n margin-top: 3px !important;\n}\n", ""]); // Exports /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); /***/ }), /***/ 627: /***/ ((module, __webpack_exports__, __webpack_require__) => { /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(645); /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__); // Imports var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]}); // Module ___CSS_LOADER_EXPORT___.push([module.id, "#search-page[data-v-4ad41bb8] {\n width: 1100px;\n height: 600px;\n max-height: 600px;\n overflow: hidden;\n position: fixed;\n top: 50%;\n left: 40%;\n transform: translate(-50%, -50%);\n border: 1px solid #ee000066;\n border-radius: 15px;\n box-shadow: 2px 4px 4px 2px #ee000022;\n background-color: #fff;\n z-index: 9999999;\n}\n#search-page #search-page-top[data-v-4ad41bb8] {\n display: flex;\n justify-content: space-between;\n margin-bottom: 5px;\n border-bottom: 1px solid #66ccff88;\n}\n#search-page #search-page-top .search-input-btn[data-v-4ad41bb8] {\n margin-left: 400px;\n margin-top: 10px;\n width: 320px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n#search-page #search-page-top .search-input-btn input[data-v-4ad41bb8] {\n border: 1px solid #66ccff88;\n height: 20px;\n width: 200px;\n border-radius: 5px;\n background: #fff;\n font-size: 15px;\n line-height: 20px;\n padding-left: 15px;\n}\n#search-page #search-page-top .search-input-btn[data-v-4ad41bb8] .van-button--small {\n height: 25px;\n}\n#search-page #search-page-top #close-search-btn[data-v-4ad41bb8] {\n color: #66ccff88;\n display: flex;\n margin-top: 2px;\n font-size: 40px;\n height: 40px;\n background-color: #fff;\n border-radius: 20px;\n margin-top: 5px;\n margin-right: 5px;\n}\n#search-page #search-page-top #close-search-btn[data-v-4ad41bb8]:hover {\n color: red;\n transform: rotate(180deg);\n transition: all 1s;\n}\n#search-page #search-page-bottom[data-v-4ad41bb8] {\n height: 530px;\n max-height: 530px;\n overflow-y: scroll;\n}\n#search-page #search-page-bottom .origin-image-list[data-v-4ad41bb8] {\n display: flex;\n width: 120px;\n flex-direction: row;\n display: inline-block;\n text-align: center;\n cursor: pointer;\n margin: 2px;\n padding: 1px;\n}\n#search-page #search-page-bottom .origin-image-list p[data-v-4ad41bb8] {\n overflow: hidden;\n white-space: nowrap;\n}\n#search-page #search-page-bottom .origin-image-list[data-v-4ad41bb8]:hover {\n border: 2px solid #66ccff88;\n}\n.van-cell__title[data-v-4ad41bb8] {\n text-align: left;\n}\n.van-cell-group__title--inset[data-v-4ad41bb8] {\n text-align: left;\n}\n.van-button--default[data-v-4ad41bb8] {\n color: #000000;\n background-color: #66ccff96 !important;\n border: 1px solid #ffffff6e;\n}\n.van-button--disabled[data-v-4ad41bb8] {\n opacity: 1 !important;\n}\n.van-tag--default[data-v-4ad41bb8] {\n background-color: #66ccff;\n}\n.van-checkbox__icon--checked .van-icon[data-v-4ad41bb8] {\n color: #ee0000 !important;\n background-color: #66ccff55 !important;\n border-color: #66ccff88 !important;\n}\n.van-popover--light[data-v-4ad41bb8] {\n font-size: 14px !important;\n color: #8d8de7 !important;\n}\n.van-popover--light .van-popover__arrow[data-v-4ad41bb8] {\n color: #d9d9d9 !important;\n}\n.van-popover__content[data-v-4ad41bb8] {\n border: 1px solid !important;\n padding: 2px 9px !important;\n margin-top: 3px !important;\n}\n", ""]); // Exports /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); /***/ }), /***/ 961: /***/ ((module, __webpack_exports__, __webpack_require__) => { /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(645); /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__); // Imports var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]}); // Module ___CSS_LOADER_EXPORT___.push([module.id, "#downcontext[data-v-1e855a88] {\n margin: 15px 15px;\n max-height: 680px;\n border-radius: 15px;\n overflow: auto;\n}\n.comicnametag1[data-v-1e855a88] {\n margin-left: 10px ;\n height: 15px;\n margin-top: 4px;\n display: inline-block;\n max-width: 200px;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n background-color: #ee000088 !important;\n}\n#downlist[data-v-1e855a88] {\n margin: 10px 5px;\n padding: 5px 0px;\n border-radius: 15px;\n width: 100%;\n overflow-y: auto;\n overflow-x: hidden;\n max-height: 500px;\n}\n#downlist .downitem[data-v-1e855a88] {\n display: flex;\n flex-direction: column;\n width: 98%;\n}\n#downlist .downitem .itemname[data-v-1e855a88] {\n display: flex;\n justify-content: space-between;\n margin: 2px 5px;\n}\n#downlist .downitem .itemname .comicnametag[data-v-1e855a88] {\n display: inline-block;\n width: 60px;\n max-width: 60px;\n text-align: center;\n height: 18px;\n line-height: 18px;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n cursor: pointer;\n}\n#downlist .downitem .itemname .chapterspan[data-v-1e855a88] {\n display: inline-block;\n margin-left: 10px;\n max-width: 200px;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n#downlist .downitem .itemname .hasError[data-v-1e855a88] {\n color: red;\n}\n.van-cell__title[data-v-1e855a88] {\n text-align: left;\n}\n.van-cell-group__title--inset[data-v-1e855a88] {\n text-align: left;\n}\n.van-button--default[data-v-1e855a88] {\n color: #000000;\n background-color: #66ccff96 !important;\n border: 1px solid #ffffff6e;\n}\n.van-button--disabled[data-v-1e855a88] {\n opacity: 1 !important;\n}\n.van-tag--default[data-v-1e855a88] {\n background-color: #66ccff;\n}\n.van-checkbox__icon--checked .van-icon[data-v-1e855a88] {\n color: #ee0000 !important;\n background-color: #66ccff55 !important;\n border-color: #66ccff88 !important;\n}\n.van-popover--light[data-v-1e855a88] {\n font-size: 14px !important;\n color: #8d8de7 !important;\n}\n.van-popover--light .van-popover__arrow[data-v-1e855a88] {\n color: #d9d9d9 !important;\n}\n.van-popover__content[data-v-1e855a88] {\n border: 1px solid !important;\n padding: 2px 9px !important;\n margin-top: 3px !important;\n}\n", ""]); // Exports /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); /***/ }), /***/ 782: /***/ ((module, __webpack_exports__, __webpack_require__) => { /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(645); /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__); // Imports var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]}); // Module ___CSS_LOADER_EXPORT___.push([module.id, ".homeindex[data-v-7eb2bc79] {\n margin-top: 12px;\n overflow-y: auto;\n max-height: 675px;\n min-height: 600px;\n}\n.homeindex #selectId[data-v-7eb2bc79] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.homeindex #selectId[data-v-7eb2bc79] .van-collapse-item__wrapper {\n position: absolute;\n width: 100%;\n}\n.homeindex #selectId[data-v-7eb2bc79] .van-collapse-item__wrapper .van-collapse-item__content {\n background-color: #eeeeee !important;\n border-bottom-left-radius: 15px;\n border-bottom-right-radius: 15px;\n}\n.homeindex #selectId[data-v-7eb2bc79] .van-collapse-item__wrapper .van-collapse-item__content div:hover {\n color: red;\n}\n.homeindex #selectId #search-ico[data-v-7eb2bc79] {\n cursor: pointer;\n color: #ee000088;\n margin-right: 15px;\n}\n.van-cell__title[data-v-7eb2bc79] {\n text-align: left;\n}\n.van-cell-group__title--inset[data-v-7eb2bc79] {\n text-align: left;\n}\n.van-button--default[data-v-7eb2bc79] {\n color: #000000;\n background-color: #66ccff96 !important;\n border: 1px solid #ffffff6e;\n}\n.van-button--disabled[data-v-7eb2bc79] {\n opacity: 1 !important;\n}\n.van-tag--default[data-v-7eb2bc79] {\n background-color: #66ccff;\n}\n.van-checkbox__icon--checked .van-icon[data-v-7eb2bc79] {\n color: #ee0000 !important;\n background-color: #66ccff55 !important;\n border-color: #66ccff88 !important;\n}\n.van-popover--light[data-v-7eb2bc79] {\n font-size: 14px !important;\n color: #8d8de7 !important;\n}\n.van-popover--light .van-popover__arrow[data-v-7eb2bc79] {\n color: #d9d9d9 !important;\n}\n.van-popover__content[data-v-7eb2bc79] {\n border: 1px solid !important;\n padding: 2px 9px !important;\n margin-top: 3px !important;\n}\n", ""]); // Exports /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); /***/ }), /***/ 55: /***/ ((module, __webpack_exports__, __webpack_require__) => { /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(645); /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__); // Imports var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]}); // Module ___CSS_LOADER_EXPORT___.push([module.id, ".setindex .swipeitem[data-v-234d1526] {\n display: flex;\n flex-direction: column;\n margin: 20px 18px 15px 18px;\n flex: 1;\n height: 680px;\n max-height: 680px;\n justify-content: space-between;\n}\n.setindex .swipeitem #setup-return[data-v-234d1526] {\n flex: 1;\n margin-bottom: 15px;\n cursor: pointer;\n font-size: 17px;\n}\n.setindex .swipeitem #setup-return[data-v-234d1526]:hover {\n color: #ee000088;\n}\n.setindex #setpart[data-v-234d1526] {\n border-radius: 15px;\n background-color: #ffffff;\n overflow: auto;\n width: 100%;\n}\n.setindex #setpart .van-cell-group__title[data-v-234d1526] {\n color: #78a5ff;\n font-size: 15px;\n}\n.setindex #setpart .van-cell[data-v-234d1526] {\n width: 100%;\n padding: 10px 1px;\n overflow: visible !important;\n}\n.setindex #setpart .van-cell .van-cell__value[data-v-234d1526] {\n overflow: visible !important;\n}\n.setindex #setpart .van-cell .cellleftvalue[data-v-234d1526] {\n flex: 1;\n}\n.setindex #setpart .van-cell .cellrightvalue[data-v-234d1526] {\n flex: 0.5 !important;\n}\n.setindex #setpart .van-cell .cellrightvalue .dropbtn[data-v-234d1526] {\n width: 90px;\n background-color: #aadafb;\n color: white;\n padding: 2px 5px;\n font-size: 16px;\n border: none;\n cursor: pointer;\n}\n.setindex #setpart .van-cell .cellrightvalue .dropbtn[data-v-234d1526]:hover,\n.setindex #setpart .van-cell .cellrightvalue .dropbtn[data-v-234d1526]:focus {\n background-color: #47b1f7;\n}\n.setindex #setpart .van-cell .cellrightvalue .dropdown[data-v-234d1526] {\n position: relative;\n}\n.setindex #setpart .van-cell .cellrightvalue .dropdown-content[data-v-234d1526] {\n position: absolute;\n right: 0;\n background-color: #fff;\n min-width: 90px;\n overflow: auto;\n box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);\n z-index: 1;\n}\n.setindex #setpart .van-cell .cellrightvalue .dropdown-content a[data-v-234d1526] {\n color: black;\n padding: 0px 2px;\n text-decoration: none;\n text-align: center;\n display: block;\n}\n.setindex #setpart .van-cell .cellrightvalue .dropdown a[data-v-234d1526]:hover {\n background-color: #ddd;\n}\n.setindex #setpart .van-cell .cellrightvalue .show[data-v-234d1526] {\n display: block;\n}\n.setindex #setpart .van-cell .rightbutton[data-v-234d1526] {\n flex-direction: row-reverse;\n}\n.setindex #setpart .van-cell .custom-title[data-v-234d1526] {\n text-align: left;\n}\n.setindex #setpart .van-cell #max-splicing-height-input[data-v-234d1526] {\n width: 80px;\n height: 18px;\n margin-right: 2px;\n border: 1px #66ccff solid;\n border-radius: 10px;\n text-align: center;\n background: #fff;\n}\n.setindex #setpart .van-cell #max-splicing-height-input[data-v-234d1526]::-webkit-inner-spin-button {\n -webkit-appearance: none;\n}\n.setindex #setpart .van-cell #max-splicing-height-input[data-v-234d1526]::-webkit-outer-spin-button {\n -webkit-appearance: none;\n}\n.setindex #setpart .van-cell #hot-key-input[data-v-234d1526] {\n width: 35px;\n height: 18px;\n margin-right: 2px;\n border: 1px #66ccff solid;\n border-radius: 10px;\n text-align: center;\n background: #fff;\n}\n.setindex #setpart .van-cell .rightslider[data-v-234d1526] {\n margin: 10px 15px;\n width: 120px;\n}\n.setindex #setpart .van-cell .rightslider .custom-button[data-v-234d1526] {\n width: 20px;\n color: #fff;\n font-size: 14px;\n line-height: 15px;\n text-align: center;\n background-color: #ee0a24;\n border-radius: 100px;\n}\n.setindex #set-bottom[data-v-234d1526] {\n display: flex;\n justify-content: center;\n margin-top: 7px;\n margin-bottom: 5px;\n}\n.van-cell__title[data-v-234d1526] {\n text-align: left;\n}\n.van-cell-group__title--inset[data-v-234d1526] {\n text-align: left;\n}\n.van-button--default[data-v-234d1526] {\n color: #000000;\n background-color: #66ccff96 !important;\n border: 1px solid #ffffff6e;\n}\n.van-button--disabled[data-v-234d1526] {\n opacity: 1 !important;\n}\n.van-tag--default[data-v-234d1526] {\n background-color: #66ccff;\n}\n.van-checkbox__icon--checked .van-icon[data-v-234d1526] {\n color: #ee0000 !important;\n background-color: #66ccff55 !important;\n border-color: #66ccff88 !important;\n}\n.van-popover--light[data-v-234d1526] {\n font-size: 14px !important;\n color: #8d8de7 !important;\n}\n.van-popover--light .van-popover__arrow[data-v-234d1526] {\n color: #d9d9d9 !important;\n}\n.van-popover__content[data-v-234d1526] {\n border: 1px solid !important;\n padding: 2px 9px !important;\n margin-top: 3px !important;\n}\n", ""]); // Exports /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); /***/ }), /***/ 737: /***/ ((module, __webpack_exports__, __webpack_require__) => { /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(645); /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__); // Imports var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]}); // Module ___CSS_LOADER_EXPORT___.push([module.id, ".comiclist[data-v-657d4b24] {\n margin-top: 10px;\n position: relative;\n height: 690px;\n font-size: 14px !important;\n}\n#overlayDom[data-v-657d4b24] {\n background-color: #eeeeeece;\n}\n#select-list[data-v-657d4b24] {\n margin: 0 15px;\n}\n#select-list #select-list-top[data-v-657d4b24] {\n display: flex;\n flex-direction: column;\n background-color: #fff;\n padding: 0 10px 0 10px;\n min-height: 30px;\n border-bottom: 1px solid #ccc5;\n border-radius: 10px;\n}\n#select-list #select-list-top #select-list-info[data-v-657d4b24] {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n flex: 1;\n min-height: 30px;\n}\n#select-list #select-list-top #select-list-info #select-list-info-left[data-v-657d4b24] {\n display: flex;\n width: 95px;\n justify-content: space-between;\n align-items: center;\n}\n#select-list #select-list-top #select-list-info #select-list-info-left span.span-circle[data-v-657d4b24] {\n width: 14px;\n height: 14px;\n display: flex;\n border-radius: 7px;\n cursor: pointer;\n}\n#select-list #select-list-top #select-list-info #select-show-edit[data-v-657d4b24] {\n margin: 10px;\n}\n#select-list #select-list-2[data-v-657d4b24] {\n margin-top: 5px;\n overflow: hidden;\n}\n#select-list #select-list-2 #select-list-2-1[data-v-657d4b24] {\n max-height: 585px;\n overflow-y: auto;\n}\n#select-list #select-list-2 #select-list-2-1[data-v-657d4b24] ::-webkit-scrollbar-track-piece {\n background-color: #fff !important;\n}\n#select-list #select-list-2 #select-list-2-1 .input-chaptername[data-v-657d4b24] {\n border: 1px solid #66ccff88;\n flex: 1;\n border-radius: 5px;\n background: #fff;\n line-height: 20px;\n padding-left: 15px;\n padding-top: 1px;\n}\n#select-list .van-cell-group--inset[data-v-657d4b24] {\n margin: 0 0 !important;\n overflow: hidden;\n border-radius: 8px;\n}\n#editItem[data-v-657d4b24] {\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n margin: 3px 20px !important;\n color: #ee000088;\n flex-wrap: wrap;\n}\n#editItem .editItem-center[data-v-657d4b24] {\n font-size: 18px;\n}\n#comicinfo[data-v-657d4b24] {\n width: 280px;\n margin: 20px auto;\n}\n#comicinfo .van-cell__title[data-v-657d4b24] {\n max-width: 80px !important;\n}\ninput[data-v-657d4b24] {\n margin-left: 5px;\n margin-right: 5px;\n width: 50px;\n}\n.van-cell__title[data-v-657d4b24] {\n text-align: left;\n}\n.van-cell-group__title--inset[data-v-657d4b24] {\n text-align: left;\n}\n.van-button--default[data-v-657d4b24] {\n color: #000000;\n background-color: #66ccff96 !important;\n border: 1px solid #ffffff6e;\n}\n.van-button--disabled[data-v-657d4b24] {\n opacity: 1 !important;\n}\n.van-tag--default[data-v-657d4b24] {\n background-color: #66ccff;\n}\n.van-checkbox__icon--checked .van-icon[data-v-657d4b24] {\n color: #ee0000 !important;\n background-color: #66ccff55 !important;\n border-color: #66ccff88 !important;\n}\n.van-popover--light[data-v-657d4b24] {\n font-size: 14px !important;\n color: #8d8de7 !important;\n}\n.van-popover--light .van-popover__arrow[data-v-657d4b24] {\n color: #d9d9d9 !important;\n}\n.van-popover__content[data-v-657d4b24] {\n border: 1px solid !important;\n padding: 2px 9px !important;\n margin-top: 3px !important;\n}\n", ""]); // Exports /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); /***/ }), /***/ 857: /***/ ((module, __webpack_exports__, __webpack_require__) => { /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(645); /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__); // Imports var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]}); // Module ___CSS_LOADER_EXPORT___.push([module.id, "*[data-v-5ef48958]{margin:0;padding:0}.custom-indicator[data-v-5ef48958]{position:absolute;height:700px;right:5px;bottom:5px;padding:2px 5px;font-size:14px;background:rgba(0,0,0,0.1)}#thebtn[data-v-5ef48958]{position:fixed;top:150px;right:600px;z-index:999999 !important}\n", ""]); // Exports /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); /***/ }), /***/ 645: /***/ ((module) => { /* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ // css base code, injected by the css-loader // eslint-disable-next-line func-names module.exports = function (cssWithMappingToString) { var list = []; // return the list of modules as css string list.toString = function toString() { return this.map(function (item) { var content = cssWithMappingToString(item); if (item[2]) { return "@media ".concat(item[2], " {").concat(content, "}"); } return content; }).join(""); }; // import a list of modules into the list // eslint-disable-next-line func-names list.i = function (modules, mediaQuery, dedupe) { if (typeof modules === "string") { // eslint-disable-next-line no-param-reassign modules = [[null, modules, ""]]; } var alreadyImportedModules = {}; if (dedupe) { for (var i = 0; i < this.length; i++) { // eslint-disable-next-line prefer-destructuring var id = this[i][0]; if (id != null) { alreadyImportedModules[id] = true; } } } for (var _i = 0; _i < modules.length; _i++) { var item = [].concat(modules[_i]); if (dedupe && alreadyImportedModules[item[0]]) { // eslint-disable-next-line no-continue continue; } if (mediaQuery) { if (!item[2]) { item[2] = mediaQuery; } else { item[2] = "".concat(mediaQuery, " and ").concat(item[2]); } } list.push(item); } }; return list; }; /***/ }), /***/ 379: /***/ ((module) => { var stylesInDOM = []; function getIndexByIdentifier(identifier) { var result = -1; for (var i = 0; i < stylesInDOM.length; i++) { if (stylesInDOM[i].identifier === identifier) { result = i; break; } } return result; } function modulesToDom(list, options) { var idCountMap = {}; var identifiers = []; for (var i = 0; i < list.length; i++) { var item = list[i]; var id = options.base ? item[0] + options.base : item[0]; var count = idCountMap[id] || 0; var identifier = "".concat(id, " ").concat(count); idCountMap[id] = count + 1; var indexByIdentifier = getIndexByIdentifier(identifier); var obj = { css: item[1], media: item[2], sourceMap: item[3], supports: item[4], layer: item[5] }; if (indexByIdentifier !== -1) { stylesInDOM[indexByIdentifier].references++; stylesInDOM[indexByIdentifier].updater(obj); } else { var updater = addElementStyle(obj, options); options.byIndex = i; stylesInDOM.splice(i, 0, { identifier: identifier, updater: updater, references: 1 }); } identifiers.push(identifier); } return identifiers; } function addElementStyle(obj, options) { var api = options.domAPI(options); api.update(obj); var updater = function updater(newObj) { if (newObj) { if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) { return; } api.update(obj = newObj); } else { api.remove(); } }; return updater; } module.exports = function (list, options) { options = options || {}; list = list || []; var lastIdentifiers = modulesToDom(list, options); return function update(newList) { newList = newList || []; for (var i = 0; i < lastIdentifiers.length; i++) { var identifier = lastIdentifiers[i]; var index = getIndexByIdentifier(identifier); stylesInDOM[index].references--; } var newLastIdentifiers = modulesToDom(newList, options); for (var _i = 0; _i < lastIdentifiers.length; _i++) { var _identifier = lastIdentifiers[_i]; var _index = getIndexByIdentifier(_identifier); if (stylesInDOM[_index].references === 0) { stylesInDOM[_index].updater(); stylesInDOM.splice(_index, 1); } } lastIdentifiers = newLastIdentifiers; }; }; /***/ }), /***/ 569: /***/ ((module) => { var memo = {}; /* istanbul ignore next */ function getTarget(target) { if (typeof memo[target] === "undefined") { var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) { try { // This will throw an exception if access to iframe is blocked // due to cross-origin restrictions styleTarget = styleTarget.contentDocument.head; } catch (e) { // istanbul ignore next styleTarget = null; } } memo[target] = styleTarget; } return memo[target]; } /* istanbul ignore next */ function insertBySelector(insert, style) { var target = getTarget(insert); if (!target) { throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid."); } target.appendChild(style); } module.exports = insertBySelector; /***/ }), /***/ 216: /***/ ((module) => { /* istanbul ignore next */ function insertStyleElement(options) { var element = document.createElement("style"); options.setAttributes(element, options.attributes); options.insert(element, options.options); return element; } module.exports = insertStyleElement; /***/ }), /***/ 565: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { /* istanbul ignore next */ function setAttributesWithoutAttributes(styleElement) { var nonce = true ? __webpack_require__.nc : 0; if (nonce) { styleElement.setAttribute("nonce", nonce); } } module.exports = setAttributesWithoutAttributes; /***/ }), /***/ 795: /***/ ((module) => { /* istanbul ignore next */ function apply(styleElement, options, obj) { var css = ""; if (obj.supports) { css += "@supports (".concat(obj.supports, ") {"); } if (obj.media) { css += "@media ".concat(obj.media, " {"); } var needLayer = typeof obj.layer !== "undefined"; if (needLayer) { css += "@layer".concat(obj.layer.length > 0 ? " ".concat(obj.layer) : "", " {"); } css += obj.css; if (needLayer) { css += "}"; } if (obj.media) { css += "}"; } if (obj.supports) { css += "}"; } var sourceMap = obj.sourceMap; if (sourceMap && typeof btoa !== "undefined") { css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */"); } // For old IE /* istanbul ignore if */ options.styleTagTransform(css, styleElement, options.options); } function removeStyleElement(styleElement) { // istanbul ignore if if (styleElement.parentNode === null) { return false; } styleElement.parentNode.removeChild(styleElement); } /* istanbul ignore next */ function domAPI(options) { var styleElement = options.insertStyleElement(options); return { update: function update(obj) { apply(styleElement, options, obj); }, remove: function remove() { removeStyleElement(styleElement); } }; } module.exports = domAPI; /***/ }), /***/ 589: /***/ ((module) => { /* istanbul ignore next */ function styleTagTransform(css, styleElement) { if (styleElement.styleSheet) { styleElement.styleSheet.cssText = css; } else { while (styleElement.firstChild) { styleElement.removeChild(styleElement.firstChild); } styleElement.appendChild(document.createTextNode(css)); } } module.exports = styleTagTransform; /***/ }), /***/ 555: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _config_setup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(393); /* harmony import */ var vant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(871); /* harmony import */ var vant__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(vant__WEBPACK_IMPORTED_MODULE_1__); // // // // // // // // // // // // // // // // /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ name: 'Importpage', data() { return { codeText: '' } }, methods: { getCode() { try { // eslint-disable-next-line no-eval const code = eval(this.codeText) const userWebInfo = (0,_config_setup__WEBPACK_IMPORTED_MODULE_0__/* .getStorage */ .cF)('userWebInfo') if (code.length > 0) { code.forEach(element => { userWebInfo.unshift(element) }) } (0,_config_setup__WEBPACK_IMPORTED_MODULE_0__/* .setStorage */ .po)('userWebInfo', userWebInfo) this.$bus.$emit('getWeb') ;(0,vant__WEBPACK_IMPORTED_MODULE_1__.Toast)({ message: '已导入', getContainer: '.card', position: 'bottom' }) setTimeout(() => { this.$bus.$emit('changeSetupFirstPage') }, 1000) } catch (error) { (0,vant__WEBPACK_IMPORTED_MODULE_1__.Toast)({ message: '请粘贴正确JSON文字', getContainer: '.card', position: 'bottom' }) } } } }); /***/ }), /***/ 758: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "bF": () => (/* binding */ AppVersion), /* harmony export */ "r8": () => (/* binding */ isDev) /* harmony export */ }); /* unused harmony exports AppName, AppEnv */ /* eslint-disable no-undef */ const AppName = (/* unused pure expression or super */ null && ("10图漫")) const AppVersion = "1.9.2" const AppEnv = "production" const isDev = AppEnv === 'development' /***/ }), /***/ 393: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "Iq": () => (/* binding */ appLoadinit), /* harmony export */ "cF": () => (/* binding */ getStorage), /* harmony export */ "po": () => (/* binding */ setStorage), /* harmony export */ "zU": () => (/* binding */ setinit) /* harmony export */ }); /* harmony import */ var _config_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(758); /* eslint-disable no-unused-vars */ /* eslint-disable no-eval */ /* eslint-disable no-undef */ // 脚本存储信息 const configDefault = { version: _config_index__WEBPACK_IMPORTED_MODULE_0__/* .AppVersion */ .bF, appLoadDefault: { isShowUI: false, loadHotKey: 'V', // alt + loadHotKey rightSize: 100, centerSize: 100 }, maxChapterNum: 2, maxPictureNum: 3, downType: 0, maxSplicingHeight: 20000, imgIndexBitNum: 3, imgSplicingFlag: true, // downHistory: '[]', // 废弃 userWebInfo: [], rootDir: '10Comic' } // 网页 localStorage 存储信息 const localStorageDefault = { ylComicDownHistory: '[]' } // 油猴脚本存储 废弃变量 const abandonDefault = ['downHistory'] const appLoadinit = () => { if (_config_index__WEBPACK_IMPORTED_MODULE_0__/* .isDev */ .r8) { return } for (const key in localStorageDefault) { if (localStorage.getItem(key) == null) { localStorage.setItem(key, localStorageDefault[key]) } } // 如条件全为false, 则更新设置 if (GM_getValue('version') !== undefined && GM_getValue('version') === _config_index__WEBPACK_IMPORTED_MODULE_0__/* .AppVersion */ .bF) { console.log('不需要更新数据') return } for (const key in configDefault) { // 不存在,添加 if (GM_getValue(key) === undefined) { GM_setValue(key, configDefault[key]) } } // 油猴存储 去除废弃变量存储数量 abandonDefault.forEach(word => { if (GM_getValue(word) !== undefined) { GM_deleteValue(word) } }) GM_setValue('version', _config_index__WEBPACK_IMPORTED_MODULE_0__/* .AppVersion */ .bF) GM_setValue('maxChapterNum', 2) return true } const setinit = async() => { return new Promise((resolve, reject) => { if (_config_index__WEBPACK_IMPORTED_MODULE_0__/* .isDev */ .r8) { resolve(false) } for (const key in configDefault) { GM_setValue(key, configDefault[key]) } resolve(true) }) } const setStorage = (key, value, key2 = null) => { // console.log('value: ', value) if (key2) { const obj = GM_getValue(key) obj[key2] = value value = obj } GM_setValue(key, value) return true } const getStorage = (key) => { return GM_getValue(key) } /***/ }), /***/ 872: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "HL": () => (/* binding */ matchWeb), /* harmony export */ "Ni": () => (/* binding */ searchFunTemplate_1), /* harmony export */ "Os": () => (/* binding */ comicsWebInfo), /* harmony export */ "Po": () => (/* binding */ currentComics), /* harmony export */ "eT": () => (/* binding */ getWebList) /* harmony export */ }); /* harmony import */ var _utils_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(624); /* harmony import */ var _config_setup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(393); /* eslint-disable no-undef */ /* eslint-disable no-empty */ /* eslint-disable no-eval */ const searchFunTemplate_1 = async(data, keyword) => { // eslint-disable-next-line prefer-const let { search_add_url, search_pre, alllist_dom_css, minlist_dom_css, namelink_index, img_src, use_background, img_reg, match_reg_num } = data.searchTemplate_1 namelink_index ? namelink_index-- : namelink_index = 0 let searchUrl = '' if (search_pre) { searchUrl = search_pre + search_add_url + keyword } else { searchUrl = data.homepage + search_add_url + keyword } let headers = '' data.headers ? headers = data.headers : '' // 调试使用 // data.webName === '' ? console.log('') : '' const { responseText } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)({ method: 'get', url: searchUrl, data: '', headers }) const dom = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .parseToDOM */ .U3)(responseText).querySelector(alllist_dom_css) const domList = dom.querySelectorAll(minlist_dom_css) const searchList = [] domList.forEach(element => { const obj = {} try { obj.name = element.querySelector('a').title const pathname = element.querySelector('a').pathname obj.url = data.homepage + pathname.slice(1, pathname.length) // 获取封面图片地址 if (!use_background) { if (!img_reg) { const reg2 = eval('/' + img_src + `=('|")(.*?)('|")` + '/') obj.imageUrl = element.innerHTML.match(reg2)[2] } else { obj.imageUrl = element.innerHTML.match(img_reg)[match_reg_num] } // obj.imageUrl = element.querySelector('img').getAttribute(img_src) } else { obj.imageUrl = element.innerHTML.match(/background.*?(url)\('?(.*?)'?\)/)[2] } // 名称修正? if (obj.name === '') { let titleArr = element.innerHTML.match(/title=('|")(.*?)('|")/); (titleArr && titleArr.length >= 2) ? (obj.name = titleArr[2]) : (titleArr = element.innerHTML.match(/alt=('|")(.*?)('|")/), (titleArr && titleArr.length >= 2) ? obj.name = titleArr[2] : '') // 文本 name innerText obj.name === '' ? obj.name = element.querySelectorAll('a')[namelink_index].innerText : '' } } catch (error) { console.log('error: ', data.webName, error) } searchList.push(obj) }) return new Promise((resolve, reject) => { resolve(searchList) }) } const comicsWebInfo = [ { domain: ['manhua.idmzj.com', 'm.dmzj.com', 'm.idmzj.com'], homepage: 'https://manhua.idmzj.com/', webName: '动漫之家', comicNameCss: 'h1', webDesc: '需要登录(不可用)', readtype: 1, // searchTemplate_1: { // search_add_url: 'tags/search.shtml?s=', // alllist_dom_css: '.tcaricature_block', // minlist_dom_css: 'ul', // img_src: 'src' // }, getComicInfo: async function(comic_name) { const domain = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .getdomain */ .m1)() let text = '' if (domain === 'm.idmzj.com') { text = document.body.outerHTML } else { const arr = window.location.href.split('/') let name = arr[arr.length - 1] ? arr[arr.length - 1] : arr[arr.length - 2] name = name.split('.')[0] const comicUrl = `https://m.idmzj.com/info/${name}.html` const htmldata = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('get', comicUrl) text = htmldata.responseText } const str2 = text.match(/initIntroData\((.*)\)/)[1] const comic_list = JSON.parse(str2)[0].data let comic_list_2 = [] if (JSON.parse(str2)[1]) { comic_list_2 = JSON.parse(str2)[1].data } const allList = [] comic_list.forEach(element => { const url = `https://m.idmzj.com/view/${element.comic_id}/${element.id}.html/` const data = { comicName: comic_name, chapterName: (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .trimSpecial */ .Sc)(element.chapter_name), chapterNumStr: '', url, readtype: this.readtype, isPay: false, isSelect: false, characterType: 'one' } allList.push(data) }) comic_list_2.forEach(element => { const url = `https://m.idmzj.com/view/${element.comic_id}/${element.id}.html/` const data = { comicName: comic_name, chapterName: (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .trimSpecial */ .Sc)(element.chapter_name), chapterNumStr: '', url, readtype: this.readtype, isPay: false, isSelect: false, characterType: 'many' } allList.push(data) }) return allList }, getImgs: async function(context, processData) { const str = context.match(/mReader.initData\(.*"page_url":(.*?"]).*\)/)[1] const imgs = JSON.parse(str) return imgs } }, { domain: ['comic.idmzj.com', 'www.idmzj.com'], homepage: 'https://comic.idmzj.com/', webName: '动漫之家(访客)', comicNameCss: 'h1', chapterCss: '.cartoon_online_border, .list_con_li', readtype: 1, getImgs: async function(context, processData) { const group = processData.url.match(/idmzj.com\/(.*?)\/(\d+)/) const DATA = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(context, /(function[\s\S]+?return [\s\S]*?}})(\([\s\S]+?\))/g) const params = DATA.pinia['app-store'].publicParams let reqUrl = `https://comic.idmzj.com/api/v1/s_comic/chapter/detail?channel=${params.channel}&app_name=${params.app_name}&version=${params.timestamp}×tamp=${params.timestamp}&uid&comic_py=${group[1]}&chapter_id=${group[2]}` if (unsafeWindow.location.host.includes('www')) { const comic_id = unsafeWindow.__NUXT__.data.getcationDeatils.comicInfo.id reqUrl = `https://www.idmzj.com/api/v1/comic1/chapter/detail?channel=${params.channel}&app_name=${params.app_name}&version=1.0.0×tamp=${params.timestamp}&uid&comic_id=${comic_id}&chapter_id=${group[2]}` } const { response } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('get', reqUrl) const imgs = JSON.parse(response).data.chapterInfo.page_url return imgs } }, { domain: ['mangabz.com', 'www.mangabz.com'], homepage: 'https://mangabz.com/', webName: 'Mangabz', comicNameCss: 'p.detail-info-title', chapterCss: '#chapterlistload', headers: { referer: 'https://mangabz.com/' }, downHeaders: { referer: 'https://mangabz.com/' }, readtype: 0, searchTemplate_1: { search_add_url: 'search?title=', alllist_dom_css: '.container .mh-list', minlist_dom_css: 'li', img_src: 'src' }, getImgs: async function(context, processData) { let group; let page = 1 if (processData.otherData) { group = processData.otherData.group } else { group = context.match(/MANGABZ_MID=(\d+?);.*MANGABZ_CID=(\d+?);.*MANGABZ_IMAGE_COUNT=(\d+?);.*MANGABZ_VIEWSIGN="(.*?)".*MANGABZ_VIEWSIGN_DT="(.*?)"/) } if (processData.imgIndex !== undefined) { page = processData.imgIndex + 1 } const reqUrl = `https://mangabz.com/m${group[2]}/chapterimage.ashx?cid=${group[2]}&page=${page}&key=&_cid=${group[2]}&_mid=${group[1]}&_dt=${group[5]}&_sign=${group[4]}` const { responseText } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('get', reqUrl) const codeText = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(responseText, /(function.*return .*?})(\(.*?{}\))/g) const imgUrlArr = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(codeText, /(function.*return .*?})/g) const otherData = { group } return { imgUrlArr, nextPageUrl: null, imgCount: group[3], otherData } } }, { domain: 'www.dm5.com', homepage: 'https://www.dm5.com/', webName: '动漫屋', comicNameCss: '.banner_detail_form > .info > p.title', chapterCss: '#detail-list-select-1', hasSpend: true, payKey: '-lock', readtype: 0, headers: { referer: 'https://www.dm5.com/' }, downHeaders: { referer: '' }, searchTemplate_1: { search_add_url: 'search?title=', alllist_dom_css: '.mh-list', minlist_dom_css: 'li', use_background: true }, getImgs: async function(context, processData) { let group; let page = 1 if (processData.otherData) { group = processData.otherData.group } else { group = context.match(/DM5_MID=(\d+?);.*DM5_CID=(\d+?);.*DM5_IMAGE_COUNT=(\d+?);.*DM5_VIEWSIGN="(.*?)".*DM5_VIEWSIGN_DT="(.*?)"/) } if (processData.imgIndex !== undefined) { page = processData.imgIndex + 1 } const reqUrl = `https://www.dm5.com/ch1-${group[2]}/chapterfun.ashx?cid=${group[2]}&page=${page}&key=&language=1>k=6&_cid=${group[2]}&_mid=${group[1]}&_dt=${group[5].replaceAll(' ', '+').replaceAll(':', '%3A')}&_sign=${group[4]}` const { responseText } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)({ method: 'get', url: reqUrl, useCookie: processData.isPay }) const codeText = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(responseText, /(function.*return .*?})(\(.*?{}\))/g) const imgUrlArr = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(codeText, /(function.*return .*?})/g) const otherData = { group } return { imgUrlArr, nextPageUrl: null, imgCount: group[3], otherData } } }, { domain: 'tel.dm5.com', homepage: 'https://tel.dm5.com/', webName: '动漫屋2', comicNameCss: '.banner_detail_form > .info > p.title', chapterCss: '#detail-list-select-1', hasSpend: true, payKey: '-lock', readtype: 0, headers: { referer: 'https://tel.dm5.com/' }, downHeaders: { referer: '' }, getImgs: async function(context, processData) { let group; let page = 1 if (processData.otherData) { group = processData.otherData.group } else { group = context.match(/DM5_MID=(\d+?);.*DM5_CID=(\d+?);.*DM5_IMAGE_COUNT=(\d+?);.*DM5_VIEWSIGN="(.*?)".*DM5_VIEWSIGN_DT="(.*?)"/) } if (processData.imgIndex !== undefined) { page = processData.imgIndex + 1 } const reqUrl = `https://tel.dm5.com/ch1-${group[2]}/chapterfun.ashx?cid=${group[2]}&page=${page}&key=&language=1>k=6&_cid=${group[2]}&_mid=${group[1]}&_dt=${group[5].replaceAll(' ', '+').replaceAll(':', '%3A')}&_sign=${group[4]}` const { responseText } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)({ method: 'get', url: reqUrl, useCookie: processData.isPay }) const codeText = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(responseText, /(function.*return .*?})(\(.*?{}\))/g) const imgUrlArr = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(codeText, /(function.*return .*?})/g) const otherData = { group } return { imgUrlArr, nextPageUrl: null, imgCount: group[3], otherData } } }, { domain: 'www.qiman59.com', homepage: 'http://www.qiman59.com/', webName: '奇漫屋', comicNameCss: 'h1.name_mh', chapterCss: '#chapter-list1', readtype: 1, searchTemplate_1: { search_add_url: 'search.php?keyword=', alllist_dom_css: '.bookList_3', minlist_dom_css: 'div', img_src: 'src' }, getImgs: async function(context) { let imgStr = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(context, /(function[\s\S]+?return \S})(\([\s\S]+?{}\))/g) imgStr = imgStr.match(/\[[\s\S]+?\]/)[0] return JSON.parse(imgStr) } }, { domain: 'cn.godamanga.art', homepage: 'https://cn.godamanga.art/', webName: 'GoDa', comicNameCss: '.container nav > ol > li:nth-child(3) a', chapterCss: '', readtype: 1, getComicInfo: async function(comic_name) { const chapterUrl = window.location.href.replace('/manga', '/chapterlist') const { responseText } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('GET', chapterUrl) const chapterLink = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .parseToDOM */ .U3)(responseText).querySelectorAll('.container .pb-6 a') const allList = [] chapterLink.forEach(element => { const data = { comicName: comic_name, chapterName: (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .trimSpecial */ .Sc)(element.querySelector('span').innerText), chapterNumStr: '', url: element.href, readtype: this.readtype, isPay: false, isSelect: false, characterType: 'one' } allList.push(data) }) return allList }, getImgs: async function(context) { const dom = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .parseToDOM */ .U3)(context).querySelector('.w-full.text-center.touch-manipulation') const imgTag = dom.querySelectorAll('img') const img = [] imgTag.forEach(element => { if (!element.src.includes('assets/images')) { img.push(element.src) } else { img.push(element.dataset.src) } }) return img } }, { domain: 'www.dongmanmanhua.cn', homepage: 'https://www.dongmanmanhua.cn/', webName: '咚漫', comicNameCss: 'h1.subj', chapterCss: '#_listUl', chapterNameReg: /alt="(.*?)"/, readtype: 1, headers: { referer: 'https://www.dongmanmanhua.cn/' }, getImgs: async function(context) { const str = context.match(/class="viewer_lst[\s\S]*?input/)[0] const imgobj = str.matchAll(/img src[\s\S]*?data-url="(.*?)"/g) const imgUrlArr = [] for (const item of imgobj) { imgUrlArr.push(item[1]) } return imgUrlArr } }, { domain: 'www.webtoons.com', homepage: 'https://www.webtoons.com/', webName: 'webtoons', comicNameCss: 'h1.subj', chapterCss: '#_listUl', chapterNameReg: /alt="(.*?)"/, readtype: 1, webDesc: '?需要魔法?', headers: { referer: 'https://www.webtoons.com/' }, getImgs: async function(context) { const str = context.match(/class="viewer_lst[\s\S]*?class="viewer_ad_area"/)[0] const imgobj = str.matchAll(/img src[\s\S]*?data-url="(.*?)"/g) const imgUrlArr = [] for (const item of imgobj) { imgUrlArr.push(item[1]) } return imgUrlArr } }, { domain: 'www.manshiduo.net', homepage: 'https://www.manshiduo.net/', webName: '漫士多', comicNameCss: '.comic-title', chapterCss: 'ul.chapter__list-box', readtype: 1, getImgs: async function(context) { const imgobj = context.matchAll(/data-original="(.*?)"/g) const imgUrlArr = [] for (const item of imgobj) { imgUrlArr.push(item[1]) } return imgUrlArr } }, { domain: 'comic.naver.com', homepage: 'https://comic.naver.com/', webName: 'comic.naver', comicNameCss: '#content > div.EpisodeListInfo__comic_info--yRAu0 > div > h2', chapterCss: '#content ul', chapterNameReg: /span.*?>(.*?)<\/span>/, webDesc: '找到漫画目录页再使用, 新打开页面需“重载列表”', readtype: 1, headers: { referer: 'https://comic.naver.com/' }, getImgs: async function(context) { const str = context.match(/class="wt_viewer"[\s\S]*?(<\/div>)/)[0] const imgobj = str.matchAll(/img src="(.*?)"/g) const imgUrlArr = [] for (const item of imgobj) { imgUrlArr.push(item[1]) } return imgUrlArr } }, { domain: 'ac.qq.com', homepage: 'https://ac.qq.com/', webName: '腾讯漫画', comicNameCss: '.works-intro-title.ui-left strong', chapterCss: '.chapter-page-all.works-chapter-list', headers: '', readtype: 1, webDesc: '2023.3.2起, 需要APP观看的章节无法完整下载', hasSpend: true, payKey: 'ui-icon-pay', searchTemplate_1: { search_add_url: 'Comic/searchList?search=', alllist_dom_css: '.mod_book_list', minlist_dom_css: 'li', img_src: 'data-original' }, getImgs: function(context) { let nonce = context.match(/<script>\s*window.*?=(.*?)?;/)[1] nonce = eval(nonce) const dataStr = context.match(/DATA.*?'(.*)?'/)[1] const data = dataStr.split('') nonce = nonce.match(/\d+[a-zA-Z]+/g) let len = nonce.length let locate = null let str = '' while (len--) { locate = parseInt(nonce[len]) & 255 str = nonce[len].replace(/\d+/g, '') data.splice(locate, str.length) } const chapterStr = data.join('') const chapterObj = JSON.parse(window.atob(chapterStr)) const imgarr = [] chapterObj.picture.forEach(element => { imgarr.push(element.url) }) return imgarr } }, { domain: 'www.kumw8.com', homepage: 'http://www.kumw8.com/', webName: '酷漫屋', comicNameCss: '.info h1', chapterCss: '.view-win-list', readtype: 1, useFrame: true, searchTemplate_1: { search_add_url: 'search.php?keyword=', alllist_dom_css: '.box.container > div > ul', minlist_dom_css: 'li', img_src: 'data-src' }, getImgs: function(context, processData) { const str = document.getElementById(processData.frameId).contentDocument.body.outerHTML const imgStr = str.match(/main_img[\s\S]*?class="chapend/)[0] const group = imgStr.matchAll(/data-src="(.*?)"/g) const imgarr = [] for (const item of group) { imgarr.push(item[1]) } document.getElementById(processData.frameId).remove() return imgarr } }, { domain: 'manga.bilibili.com', homepage: 'https://manga.bilibili.com/', webName: '哔哩哔哩', comicNameCss: '.manga-info h1.manga-title', chapterCss: '.episode-list .list-header', headers: { referer: 'https://manga.bilibili.com/' }, readtype: 1, searchFun: async function(keyword) { const searchUrl = 'https://manga.bilibili.com/twirp/comic.v1.Comic/Search?device=pc&platform=web' const data = new FormData() data.append('key_word', keyword) data.append('page_num', 1) data.append('page_size', 8) const { responseText } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('post', searchUrl, data, this.headers) const list = JSON.parse(responseText).data.list const searchList = [] list.forEach(element => { const obj = {} obj.name = element.org_title obj.url = this.homepage + 'detail/mc' + element.id obj.imageUrl = element.vertical_cover searchList.push(obj) }) return new Promise((resolve, reject) => { resolve(searchList) }) }, getComicInfo: async function() { const comicid = window.location.href.match(/detail\/(\D*)(\d*)/)[2] const data = new FormData() data.append('comic_id', parseInt(comicid)) const getUrl = 'https://manga.bilibili.com/twirp/comic.v1.Comic/ComicDetail?device=pc&platform=web' const { responseText } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('post', getUrl, data) const comic = JSON.parse(responseText) const comicName = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .trimSpecial */ .Sc)(comic.data.title) const comic_list = comic.data.ep_list const allList = [] comic_list.forEach(element => { const url = `https://manga.bilibili.com/mc${comicid}/${element.id}` const data = { comicName: comicName, chapterName: (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .trimSpecial */ .Sc)(element.short_title + ' ' + element.title), chapterNumStr: '', url, readtype: this.readtype, isPay: element.is_locked, isSelect: false } allList.push(data) }) return allList.reverse() }, getImgs: async function(context, processData) { const { url, isPay } = processData const chapter_id = parseInt(url.match(/.com\/(\D*)(\d*)\/(\d*)/)[3]) const data = new FormData() data.append('ep_id', chapter_id) const postUrl = 'https://manga.bilibili.com/twirp/comic.v1.Comic/GetImageIndex?device=pc&platform=web' const { responseText } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)({ method: 'post', url: postUrl, data, useCookie: isPay }) const imgArray = JSON.parse(responseText).data.images const saveImg = [] const query = [] const imgPostUrl = 'https://manga.bilibili.com/twirp/comic.v1.Comic/ImageToken?device=pc&platform=web' imgArray.forEach(item => { query.push(item.path) }) const img_data = new FormData() img_data.append('urls', JSON.stringify(query)) const img_data_res = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('post', imgPostUrl, img_data) const imgObjArr = JSON.parse(img_data_res.responseText).data imgObjArr.forEach(imgObj => { saveImg.push(`${imgObj.url}?token=${imgObj.token}`) }) return saveImg } }, { domain: 'www.bilibilicomics.com', homepage: 'https://www.bilibilicomics.com/', webName: '哔哩哔哩漫画国际版', comicNameCss: 'h1.manga-title', chapterCss: '.episode-list .list-header', headers: { referer: 'https://www.bilibilicomics.com/' }, webDesc: '?需要魔法?', readtype: 1, getComicInfo: async function() { const comicid = window.location.href.match(/detail\/(\D*)(\d*)/)[2] const data = new FormData() data.append('comic_id', parseInt(comicid)) const getUrl = 'https://www.bilibilicomics.com/twirp/comic.v1.Comic/ComicDetail?device=pc&platform=web' const { responseText } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('post', getUrl, data) const comic = JSON.parse(responseText) const comicName = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .trimSpecial */ .Sc)(comic.data.title) const comic_list = comic.data.ep_list const allList = [] comic_list.forEach(element => { const url = `https://www.bilibilicomics.com/mc${comicid}/${element.id}` const data = { comicName: comicName, chapterName: (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .trimSpecial */ .Sc)(element.short_title + ' ' + element.title), chapterNumStr: '', url, readtype: this.readtype, isPay: element.is_locked, isSelect: false } allList.push(data) }) return allList.reverse() }, getImgs: async function(context, processData) { const { url, isPay } = processData const chapter_id = parseInt(url.match(/.com\/(\D*)(\d*)\/(\d*)/)[3]) const data = new FormData() data.append('ep_id', chapter_id) const postUrl = 'https://www.bilibilicomics.com/twirp/comic.v1.Comic/GetImageIndex?device=pc&platform=web' const { responseText } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)({ method: 'post', url: postUrl, data, useCookie: isPay }) const imgArray = JSON.parse(responseText).data.images const saveImg = [] const query = [] const imgPostUrl = 'https://www.bilibilicomics.com/twirp/comic.v1.Comic/ImageToken?device=pc&platform=web' imgArray.forEach(item => { query.push(item.path) }) const img_data = new FormData() img_data.append('urls', JSON.stringify(query)) const img_data_res = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('post', imgPostUrl, img_data) const imgObjArr = JSON.parse(img_data_res.responseText).data imgObjArr.forEach(imgObj => { saveImg.push(`${imgObj.url}?token=${imgObj.token}`) }) return saveImg } }, { domain: 'komiic.com', homepage: 'https://komiic.com/', webName: 'Komiic漫画', comicNameCss: 'h1.ComicMain__title', chapterCss: '.container .v-window-item .container .row', chapterNameReg: /ComicChapters__serial">(\d*\.?\d*)</, webDesc: 'SPA页面, 新页面需“重载列表”重新匹配新名称', headers: { referer: 'https://komiic.com/' }, readtype: 1, getImgs: async function(context, processData) { const { url } = processData const chapter_id = url.match(/chapter\/(\d*)\/images/)[1] const postUrl = 'https://komiic.com/api/query' const data = { 'operationName': 'imagesByChapterId', 'variables': { 'chapterId': chapter_id }, 'query': 'query imagesByChapterId($chapterId: ID!) {\n imagesByChapterId(chapterId: $chapterId) {\n id\n kid\n height\n width\n __typename\n }\n}\n' } const headers = { 'Content-Type': 'application/json' } const { responseText } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)({ method: 'post', url: postUrl, headers, data: JSON.stringify(data) }) const img_data = JSON.parse(responseText).data.imagesByChapterId const saveImg = [] img_data.forEach(element => { saveImg.push('https://komiic.com/api/image/' + element.kid) }) return saveImg } }, { domain: ['www.darpou.com', 'darpou.com'], homepage: 'https://www.darpou.com/', webName: '百漫谷', comicNameCss: '.fed-part-eone.fed-font-xvi a', chapterCss: '.fed-play-item.fed-drop-item.fed-visible .fed-part-rows:nth-child(2)', readtype: 1, // searchTemplate_1: { // search_add_url: 'vodsearch/-------------.html?wd=', // alllist_dom_css: '.fed-part-layout.fed-back-whits', // minlist_dom_css: 'dl.fed-deta-info', // namelink_index: 2, // img_src: 'data-original' // }, getImgs: async function(context) { const txtUrl = context.match(/http(\S*).txt/gi)[0] const txtRes = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('get', txtUrl) const txtContext = txtRes.responseText const imgReg = /http(\S*)jpg/g return txtContext.match(imgReg) } }, { domain: ['qiximh2.com', 'www.qiximh2.com'], homepage: 'http://www.qiximh2.com/', webName: '七夕漫画', comicNameCss: '.cy_title h1', chapterCss: '.cy_plist ul', readtype: 1, useFrame: true, searchTemplate_1: { search_add_url: 'search?keyword=', alllist_dom_css: '.cy_list_r .cy_list_mh', minlist_dom_css: 'ul', img_src: 'src' }, getImgs: function(context, processData) { const str = document.getElementById(processData.frameId).contentDocument.body.outerHTML const imgStr = str.match(/main_img[\s\S]*?class="cy_intro_r/)[0] const group = imgStr.matchAll(/data-src="(.*?)"/g) const imgarr = [] for (const item of group) { imgarr.push(item[1]) } document.getElementById(processData.frameId).remove() return imgarr } }, { domain: ['manhuagui.com'], homepage: 'https://www.manhuagui.com/', webName: '漫画柜', comicNameCss: '.book-title h1', chapterCss: '.chapter-list', readtype: 1, // context 章节请求正文 getImgs: function(context) { // 获取到 html请求正文 context 的一段js代码字符 并执行这代码获取到 图片地址信息 // window["\x65\x76\x61\x6c"] => eval // (function[\s\S]+?return \S*?}) 匿名函数部分 // (\([\s\S]+?{}\)) 需要的参数 const dataStr = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(context, /window\["\\x65\\x76\\x61\\x6c"\]\((function[\s\S]+?return \S*?})(\([\s\S]+?{}\))/g) const matchObj = /"files":(?<files>.*?),"finished".*"path":"(?<path>.*?)".*"e":(?<e>\d*),"m":"(?<m>.*)"}/g.exec(dataStr) var { files, path, e, m } = matchObj.groups files = JSON.parse(files) const image = files.map(ele => { return 'https://i.hamreus.com' + path + ele + '?e=' + e + '&m=' + m }) return image } }, { domain: 'www.36manga.com', homepage: 'https://www.36manga.com/', webName: '36漫画网', comicNameCss: '.book-title h1 span', chapterCss: '#chapter-list-4 li:not(:first-of-type)', readtype: 1, webDesc: '?可访问 ?', getImgs: function(context) { const group = context.matchAll(/chapterImages = ([\s\S]+?);var chapterPath = "([\s\S]+?)";var chapterPrice/g) let imgarr = [] let middleStr = '' for (const item of group) { imgarr = JSON.parse(item[1]) middleStr = item[2] } if (imgarr[0].search('http') === -1) { imgarr = imgarr.map((item) => { return 'https://img001.arc-theday.com/' + middleStr + item }) } return imgarr } }, { domain: 'www.gufengmh.com', homepage: 'https://www.gufengmh.com/', webName: '古风漫画网', comicNameCss: '.book-title h1 span', chapterCss: '#chapter-list-1,#chapter-list-10', readtype: 1, readCssText: '.img_info {display: none;}.tbCenter img {border: 0px;}', searchTemplate_1: { search_add_url: 'search/?keywords=', alllist_dom_css: '.book-list', minlist_dom_css: 'li', img_src: 'src' }, getImgs: async function(context) { const group = context.matchAll(/chapterImages = (.*?);var chapterPath = "(.*?)"/g) const strArr = [] for (const item of group) { strArr.push(item[1]) strArr.push(item[2]) } const josnRes = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('get', this.homepage + 'js/config.js') const josnContext = josnRes.responseText const imageDomian = josnContext.match(/domain:\["(.*?)"]/)[1] let imgarr = JSON.parse(strArr[0]) imgarr = imgarr.map((item) => { if (imgarr[0].search('http') === -1) { return imageDomian + '/' + strArr[1] + item } return item }) return imgarr } }, { domain: 'kanbook.net', homepage: 'https://kanbook.net/', webName: '快岸漫画', comicNameCss: 'h2.comic-title.one-line', chapterCss: 'ol.links-of-books.num_div', readtype: 1, hasSpend: true, useFrame: true, webDesc: '首次打开网站章节页可能需自行输入验证码', searchTemplate_1: { search_add_url: 'search/', alllist_dom_css: '.row.m-0 ul', minlist_dom_css: 'li', img_src: 'data-src' }, getImgs: async function(context, processData) { const iframe = document.getElementById(processData.frameId).contentWindow const part_url = processData.url.match(/comic\/(\d+\/\d+\/\d+)/)[1] const code1 = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(context, /(function\(p,a.*?d\){e[\s\S]+?return \S})(\([\s\S]+?{}\))/g) // const x_tokens = code1.match(/host="(.*?)";var x_tokens=(.*?);/)[2] const host = code1.match(/host="(.*?)"/)[1] const x_tokens = iframe.x_tokens const imgs = [] for (var i in x_tokens) { imgs.push(host + part_url + '/' + iframe.my_sha2(x_tokens[i])) } document.getElementById(processData.frameId).remove() return imgs } }, { domain: 'comic.acgn.cc', homepage: 'https://comic.acgn.cc/', webName: '动漫戏说', comicNameCss: '.list_navbox h3 a', chapterCss: '#comic_chapter > ul', readtype: 1, getImgs: async function(context) { const group = context.matchAll(/_src="(.*?)"/g) const imgArray = [] for (const item of group) { imgArray.push(item[1]) } return imgArray } }, { domain: 'www.77mh.xyz', homepage: 'https://www.77mh.xyz/', webName: '新新漫画', comicNameCss: '.ar_list_coc h1', chapterCss: '.ar_list_coc .ar_rlos_bor', readtype: 1, searchTemplate_1: { search_add_url: 'k.php?k=', search_pre: 'https://so.77mh.xyz/', alllist_dom_css: '.ar_list_co ul', minlist_dom_css: 'dl', img_src: 'src' }, getImgs: async function(context) { const imgStr = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(context, /(function[\s\S]+?return \S})(\([\s\S]+?{}\))/g) const params = imgStr.match(/var atsvr="(.*?)";var msg='(.*?)'.*img_s=(.*?);.*colist_(.*?).htm/) let imgArray = params[2].split('|') const coid = window.location.href.match(/colist_(\d*?).html/)[1] const reqUrl = `https://css.gdbyhtl.net:5443/img_v1/cncf_svr.asp?z=${params[1]}&s=${params[3]}&cid=${params[4]}&coid=${coid}` const { responseText } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('get', reqUrl) const getImgPre = responseText.match(/= "(.*?)"/)[1] if (imgArray[0].search('http') === -1) { imgArray = imgArray.map((item) => { return getImgPre + item }) } return imgArray } }, { domain: 'www.mhxqiu4.com', homepage: 'http://www.mhxqiu4.com/', webName: '漫画星球', comicNameCss: '.cy_title h1', chapterCss: '.cy_plist #mh-chapter-list-ol-0', readtype: 1, // searchTemplate_1: { // search_add_url: 'search.php?keyword=', // alllist_dom_css: 'div.cy_list_mh', // minlist_dom_css: 'ul', // img_src: 'src' // }, getImgs: function(context) { let imgStr = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(context, /(function.*?return \S})(\(.*?{}\))/g) imgStr = imgStr.match(/\[[\s\S]+?\]/)[0] const imgArray = JSON.parse(imgStr) return imgArray } }, { domain: 'www.mhua5.com', homepage: 'https://www.mhua5.com/', webName: '漫画屋', comicNameCss: '.comic-title.j-comic-title', chapterCss: '.chapter__list-box.clearfix', readtype: 1, searchTemplate_1: { search_add_url: 'index.php/search?key=', alllist_dom_css: '.cate-comic-list', minlist_dom_css: '.common-comic-item', img_src: 'data-original' }, getImgs: function(context) { const group = context.matchAll(/data-original="(.*?)"/g) const imgArray = [] for (const item of group) { imgArray.push(item[1]) } return imgArray } }, { domain: 'www.cartoonmad.com', homepage: 'https://www.cartoonmad.com/', webName: '动漫狂', comicNameCss: 'table > tbody > tr:nth-child(3) > td:nth-child(2) > a:nth-child(6)', chapterCss: '#info', readtype: 1, downHeaders: { referer: 'https://www.cartoonmad.com/' }, getImgs: function(context) { const comicUrl = context.match(/img src="comicpic.asp\?file=(.*?)001.*?"/)[1] const pageTotalNum = context.match(/html">\D*(\d*).*?<\/option>/g).length const preImgUrl = 'https://www.cartoonmad.com/comic/comicpic.asp?file=' + comicUrl const imgArray = [] for (let i = 0; i < pageTotalNum; i++) { const imgUrl = preImgUrl + (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .addZeroForNum */ .xo)(i + 1, 3) imgArray.push(imgUrl) } return imgArray } }, { domain: 'www.zuimh.com', homepage: 'https://www.zuimh.com/', webName: '最漫画', comicNameCss: '.book-detail .book-title h1 span', chapterCss: '.chapter-body.clearfix #chapter-list-1', readtype: 1, readCssText: '.img_info {display: none;}.tbCenter img {border: 0px;}', searchTemplate_1: { search_add_url: 'search/?keywords=', alllist_dom_css: '.book-list', minlist_dom_css: 'li.item-lg', img_src: 'src' }, getImgs: async function(context) { const imgStr = context.match(/var chapterImages = ([[\s\S]+?])[\s\S]+?var chapterPath/)[1] const imgs = eval(imgStr) return imgs } }, { domain: 'www.6mh1.com', homepage: 'http://www.6mh1.com/', webName: '六漫画', comicNameCss: 'h1.name_mh', chapterCss: '#chapter-list1', readtype: 1, useFrame: true, getImgs: async function(context, processData) { const iframe = document.getElementById(processData.frameId).contentWindow const newImgs = JSON.parse(JSON.stringify(iframe.newImgs)) document.getElementById(processData.frameId).remove() return newImgs } }, { domain: 'www.mhxin.com', homepage: 'https://www.mhxin.com/', webName: '漫画芯', comicNameCss: '.wrap_intro_l_comic .comic_deCon h1', chapterCss: '.zj_list_con #chapter-list-1', readtype: 1, readCssText: '.img_info {display: none;}.comic_wraCon img {border: 0px;margin-top:0px;}', // searchTemplate_1: { // search_add_url: 'search/?keywords=', // alllist_dom_css: '.list_con_li', // minlist_dom_css: 'li.list-comic', // img_src: 'src' // }, getImgs: async function(context) { const group = context.matchAll(/chapterImages = (.*?);var chapterPath = "(.*?)"/g) const strArr = [] for (const item of group) { strArr.push(item[1]) strArr.push(item[2]) } let imgarr = JSON.parse(strArr[0]) const josnRes = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('get', this.homepage + 'js/config.js') const josnContext = josnRes.responseText const imageDomian = josnContext.match(/"domain":\["(.*?)"]/)[1] imgarr = imgarr.map((item) => { if (imgarr[0].search('http') === -1) { return imageDomian + '/' + strArr[1] + item } return item }) return imgarr } }, { domain: 'cn.baozimh.com', homepage: 'https://cn.baozimh.com/', webName: '包子漫画', comicNameCss: 'h1.comics-detail__title', chapterCss: '.comics-detail > .l-content:nth-of-type(3) #chapter-items', chapterCss_2: '.comics-detail > .l-content:nth-of-type(3) .pure-g', readtype: 1, searchTemplate_1: { search_add_url: 'search/?keyword=', alllist_dom_css: '.pure-g.classify-items', minlist_dom_css: 'div.comics-card', img_reg: /src=('|")(.*?)\?/, match_reg_num: 2 }, getImgs: async function(context, processData) { const imgArray = [] const nextReg = /next_chapter"><a href="(.*)?"[\s\S]{1,10}点击进入下一页/ let hasNext = false let nextHtml = '' do { const group = context.matchAll(/<img.*src="(.*?)"/g) for (const item of group) { if (!imgArray.includes(item[1])) { imgArray.push(item[1]) } } hasNext = nextReg.test(context) if (hasNext) { nextHtml = context.match(nextReg)[1] const { responseText } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('get', nextHtml) context = responseText } } while (hasNext) return imgArray } }, { domain: 'www.aiguoman.com', homepage: 'https://www.aiguoman.com/', webName: '爱国漫', comicNameCss: '.detail-info > .detail-info-title', chapterCss: '#chapterlistload', readtype: 1, searchTemplate_1: { search_add_url: 'search?key=', alllist_dom_css: '.container .mh-list', minlist_dom_css: 'li', img_src: 'src' }, getImgs: async function(context) { const group = context.matchAll(/<img.*src="(.*?)"/g) const imgArray = [] for (const item of group) { imgArray.push(item[1]) } return imgArray } }, { domain: 'www.kuaikanmanhua.com', homepage: 'https://www.kuaikanmanhua.com/', webName: '快看漫画', comicNameCss: 'h3.title', chapterCss: '.episode-title', readtype: 1, hasSpend: true, useFrame: true, getComicInfo: async function() { const list = unsafeWindow.__NUXT__.data[0].comics const comicName = unsafeWindow.__NUXT__.data[0].topicInfo.title const newList = [] list.forEach(element => { const url = `https://www.kuaikanmanhua.com/web/comic/${element.id}/` const data = { comicName: comicName, chapterName: element.title, chapterNumStr: '', url, readtype: this.readtype, isPay: element.locked, isSelect: false } newList.push(data) }) return newList }, getImgs: async function(context, processData) { const str = document.getElementById(processData.frameId).contentDocument.body.outerHTML const data = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(str, /(function.*}})(\(.*)\);<\/script>/g) let comicImages = data.data[0].comicInfo.comicImages const imgarr = [] if (!comicImages) { comicImages = data.data[0].imgList } comicImages.forEach(element => { imgarr.push(element.url) }) document.getElementById(processData.frameId).remove() return imgarr } }, { domain: 'm.kuaikanmanhua.com', homepage: 'https://m.kuaikanmanhua.com/', webName: '快看漫画m', comicNameCss: '.mask p.title', chapterCss: '', readtype: 1, hasSpend: true, showInList: false, useFrame: true, getComicInfo: async function() { const code = document.body.outerHTML.match(/\(function\(a,b,c.*?(\)\))/g)[0] const data = eval(code) const list = data.data[0].comicList const comicName = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .trimSpecial */ .Sc)(data.data[0].topicInfo.title) const newlist = list.map((item) => { return { comicName: comicName, chapterName: (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .trimSpecial */ .Sc)(item.title), chapterNumStr: '', url: 'https://m.kuaikanmanhua.com/mobile/comics/' + item.id, readtype: 1, isPay: !item.is_free, isSelect: false } }) return newlist }, getImgs: async function(context, processData) { const str = document.getElementById(processData.frameId).contentDocument.body.outerHTML const data = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(str, /(function.*}})(\(.*)\);<\/script>/g) let comicImages = data.data[0].comicInfo.comicImages const imgarr = [] if (!comicImages) { comicImages = data.data[0].imgList } comicImages.forEach(element => { imgarr.push(element.url) }) document.getElementById(processData.frameId).remove() return imgarr } }, { domain: 'www.haoman8.com', homepage: 'https://www.haoman8.com/', webName: '好漫8', comicNameCss: '.content .title', chapterCss: '#j_chapter_list', readtype: 1, // searchTemplate_1: { // search_add_url: 'index.php/search?key=', // alllist_dom_css: '.acgn-comic-list', // minlist_dom_css: 'li.acgn-item', // img_src: 'src', // use_background: true // }, getImgs: function(context) { const group = context.matchAll(/data-echo="(.*?)"/g) const imgArray = [] for (const item of group) { imgArray.push(item[1]) } return imgArray } } ] const getWebList = () => { const userWebInfo = eval((0,_config_setup__WEBPACK_IMPORTED_MODULE_1__/* .getStorage */ .cF)('userWebInfo') || []) const originalInfo = comicsWebInfo return { originalInfo, userWebInfo } } let currentComics = null // 网站匹配 const matchWeb = (url) => { let hname = '' var domain = url.split('/') if (domain[2]) { hname = domain[2] } else { hname = '' } // 原漫画列表匹配 for (let i = 0; i < comicsWebInfo.length; i++) { if (hname.includes(comicsWebInfo[i].domain)) { currentComics = comicsWebInfo[i] break } if ((0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .getType */ .oL)(comicsWebInfo[i].domain) === 'Array') { if (comicsWebInfo[i].domain.includes(hname)) { currentComics = comicsWebInfo[i] break } } } // 导入规则列表匹配 if (currentComics === null) { const userWebInfo = eval((0,_config_setup__WEBPACK_IMPORTED_MODULE_1__/* .getStorage */ .cF)('userWebInfo') || []) for (let a = 0; a < userWebInfo.length; a++) { if (hname.includes(userWebInfo[a].domain)) { currentComics = userWebInfo[a] break } if ((0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .getType */ .oL)(comicsWebInfo[i].domain) === 'Array') { if (comicsWebInfo[i].domain.includes(hname)) { currentComics = comicsWebInfo[i] break } } } if (currentComics !== null && typeof currentComics.getImgs === 'string') { window.request = _utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY currentComics.getImgs = funSplicing(currentComics.getImgs) } } } function funSplicing(funStr) { const getImgsGroup = funStr.match(/((async )?function\(.*{)([\s\S]*)/) const funHead = getImgsGroup[1] const funTail = getImgsGroup[3] let insertCode = '' if (funStr.includes('funstrToData')) { insertCode = insertCode + _utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData.toString */ .D.toString() + '\n' } if (funStr.includes('request')) { insertCode = insertCode + 'const request = window.request' + '\n' } const code = ` (function(){ return ${funHead} // 注入开始 ${insertCode} // 注入结束 ${funTail} })()` const fun = eval(code) // console.log('fun: ', fun.toString()) return fun } /***/ }), /***/ 624: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "D": () => (/* binding */ funstrToData), /* harmony export */ "HM": () => (/* binding */ loadStyle2), /* harmony export */ "Sc": () => (/* binding */ trimSpecial), /* harmony export */ "U3": () => (/* binding */ parseToDOM), /* harmony export */ "WY": () => (/* binding */ request), /* harmony export */ "Xr": () => (/* binding */ loadStyle), /* harmony export */ "gJ": () => (/* binding */ getImage), /* harmony export */ "m1": () => (/* binding */ getdomain), /* harmony export */ "oL": () => (/* binding */ getType), /* harmony export */ "xo": () => (/* binding */ addZeroForNum), /* harmony export */ "zd": () => (/* binding */ downFile) /* harmony export */ }); /* unused harmony export getCookie */ /* harmony import */ var _utils_comics__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(872); /* harmony import */ var _config_setup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(393); const loadStyle = (url, name, text) => { const head = document.getElementsByTagName('head')[0] const style = document.createElement('style') style.name = name style.id = name style.innerText = text head.appendChild(style) } const loadStyle2 = (url) => { return new Promise((resolve, reject) => { const head = document.getElementsByTagName('head')[0] const link = document.createElement('link') link.rel = 'stylesheet' link.type = 'text/css' link.href = url link.media = 'all' head.appendChild(link) setTimeout(() => { resolve(true) }, 1200) }) } function trimSpecial(string) { if (string !== '') { const pattern = /[`~!@#$^\&*|{}'<>?:;~']/g string = string.replace(pattern, '') string = string.replace(/\n|\r/g, '').trim() } return string } const getType = (obj) => { const type = typeof obj if (type !== 'object') { return type } return Object.prototype.toString.call(obj).replace(/^\[object (\S+)\]$/, '$1') } const getFrameContent = async(id, url) => { const iframePromise = new Promise((resolve, reject) => { const iframe = document.createElement('iframe') iframe.id = id iframe.style.display = 'none' iframe.src = url document.body.appendChild(iframe) if (iframe.attachEvent) { iframe.attachEvent('onload', function() { resolve(iframe.contentDocument.body.outerHTML) }) } else { iframe.onload = function() { resolve(iframe.contentDocument.body.outerHTML) } } }) return new Promise((resolve, reject) => { iframePromise.then( (success) => { resolve(success) }, error => { console.log(error) reject('') } ) }) } const getImage = async(processData) => { try { const url = processData.url let response = '' // 获取网页内容 if (!_utils_comics__WEBPACK_IMPORTED_MODULE_0__/* .currentComics.useFrame */ .Po.useFrame) { const data = await request({ method: 'get', url, useCookie: processData.isPay }) response = data.response } else { const arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'g', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] const random1 = Math.round(Math.random() * 25) + 0 const random2 = Math.round(Math.random() * 25) + 0 const id = 'ifr' + new Date().getTime() + arr[random1] + arr[random2] response = await getFrameContent(id, url) processData.frameId = id } const imgs = await _utils_comics__WEBPACK_IMPORTED_MODULE_0__/* .currentComics.getImgs */ .Po.getImgs(response, processData) return new Promise((resolve, reject) => { resolve(imgs) }) } catch (error) { console.log('getImageError: ', error) return new Promise((resolve, reject) => { reject([]) }) } } const request = async function request(...details) { let method, url, data, headers, responseType, timeout, useCookie, cookie, onload, onerror, ontimeout, tail // 只有一个参数 if (details.length === 1) { ({ method, url, data, headers, responseType, timeout, useCookie, onload, onerror, ontimeout } = details[0]) useCookie ? cookie = document.cookie : '' } else { // 含多个参数时 [*method, *url, data, headers] [method, url, ...tail] = details if (tail) { tail.length > 0 ? (data = tail[0]) : '' tail.length > 1 ? (headers = tail[1]) : '' } } // 设置currentComics中的 headers if (!headers && _utils_comics__WEBPACK_IMPORTED_MODULE_0__/* .currentComics */ .Po !== null) { headers = _utils_comics__WEBPACK_IMPORTED_MODULE_0__/* .currentComics.headers */ .Po.headers } // 无效地址 if (url === null || url === '') { return new Promise((resolve, reject) => { resolve('') }) } return new Promise((resolve, reject) => { // eslint-disable-next-line no-undef GM_xmlhttpRequest({ method, url, headers: (headers || ''), data: (data || null), responseType, timeout: (timeout || 30 * 1000), cookie: (cookie || ''), onload: (onload || function(res) { resolve(res) }), onerror: (onerror || function(e) { console.log('request-e: ', e) resolve('onerror') }), ontimeout: (ontimeout || function() { console.log('ontimeout: ', ontimeout) resolve('timeout') }) }) }) } let rootDir = '10Comic' try { rootDir = (0,_config_setup__WEBPACK_IMPORTED_MODULE_1__/* .getStorage */ .cF)('rootDir') } catch (error) { // } const downFile = async(...detail) => { let url, name, headers, onload, onerror, ontimeout if (detail.length === 1) { ({ url, name, headers, onload, onerror, ontimeout } = detail[0]) } else { url = detail[0] name = detail[1] } name = name.replace(/\s+/ig, ' ') return new Promise((resolve, reject) => { // eslint-disable-next-line no-undef GM_download({ url, name: rootDir + '\\' + name, headers: headers, onload: (onload || function(res) { resolve(true) }), onerror: (onerror || function(e) { console.log('downFile-e: ', e) resolve(false) }), ontimeout: (ontimeout || function() { resolve(false) }) }) }) } const addZeroForNum = (num, bitNum) => { let newNum = num + '' if (newNum.length < bitNum) { const zeroStr = new Array(bitNum + 1).join('0') newNum = zeroStr + newNum newNum = newNum.slice(-bitNum) return newNum } return newNum } // 网站匹配 const getdomain = (url) => { if (!url) { url = window.location.href } let hname = '' var domain = url.split('/') if (domain[2]) { hname = domain[2] } else { hname = '' } return hname } const parseToDOM = (str) => { var div = document.createElement('div') if (typeof str === 'string') { div.innerHTML = str } return div } const funstrToData = function funstrToData(str, reg) { const group = str.matchAll(reg) const func = [] for (const item of group) { // 匿名函数主体 // function (str){ // console.log(str); // } func.push(item[1]) // 函数 执行参数部分 func.push(item[2]) // ("aaaaa") } // 如没有 参数 if (!func[1]) { func[1] = '()' } const code = '(' + func[0] + ')' + func[1] // code => // (function (str){ // //此时会输出 aaaaa // console.log(str); // })("aaaaa") // eslint-disable-next-line no-eval const data = eval(code) return data } const getCookie = (cookieName) => { const strCookie = document.cookie const cookieList = strCookie.split(';') for (let i = 0; i < cookieList.length; i++) { const arr = cookieList[i].split('=') if (cookieName === arr[0].trim()) { return arr[1] } } return '' } /***/ }), /***/ 871: /***/ ((module) => { module.exports = vant; /***/ }) /******/ }); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ id: moduleId, /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /************************************************************************/ /******/ /* webpack/runtime/compat get default export */ /******/ (() => { /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = (module) => { /******/ var getter = module && module.__esModule ? /******/ () => (module['default']) : /******/ () => (module); /******/ __webpack_require__.d(getter, { a: getter }); /******/ return getter; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/create fake namespace object */ /******/ (() => { /******/ var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__); /******/ var leafPrototypes; /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 16: return value when it's Promise-like /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = this(value); /******/ if(mode & 8) return value; /******/ if(typeof value === 'object' && value) { /******/ if((mode & 4) && value.__esModule) return value; /******/ if((mode & 16) && typeof value.then === 'function') return value; /******/ } /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ var def = {}; /******/ leafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)]; /******/ for(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) { /******/ Object.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key]))); /******/ } /******/ def['default'] = () => (value); /******/ __webpack_require__.d(ns, def); /******/ return ns; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/define property getters */ /******/ (() => { /******/ // define getter functions for harmony exports /******/ __webpack_require__.d = (exports, definition) => { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/nonce */ /******/ (() => { /******/ __webpack_require__.nc = undefined; /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. (() => { ;// CONCATENATED MODULE: external "Vue" const external_Vue_namespaceObject = Vue; var external_Vue_default = /*#__PURE__*/__webpack_require__.n(external_Vue_namespaceObject); ;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/app.vue?vue&type=template&id=5ef48958&scoped=true& var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "div", { staticClass: "yi-ling-app" }, [ _c( "div", { staticClass: "card", class: { "card--hide": _vm.isHide }, attrs: { id: "app-right" }, }, [ _c( "div", [ _c("van-nav-bar", { attrs: { id: "border-top-set", title: _vm.titles[this.active] }, }), _vm._v(" "), _c( "van-swipe", { ref: "swipe", staticClass: "my-swipe", staticStyle: { cursor: "default" }, attrs: { "indicator-color": "white", touchable: false, duration: 5, "initial-swipe": _vm.active, "show-indicators": false, }, }, [ _c( "van-swipe-item", { staticClass: "swipeitem" }, [_c("Home")], 1 ), _vm._v(" "), _c( "van-swipe-item", { staticClass: "swipeitem" }, [_c("Table")], 1 ), _vm._v(" "), _c( "van-swipe-item", { staticClass: "swipeitem" }, [_c("Down")], 1 ), _vm._v(" "), _c( "van-swipe-item", { staticClass: "swipeitem" }, [_c("Setting")], 1 ), ], 1 ), _vm._v(" "), _c( "div", { staticClass: "app-container " }, [ _c( "van-tabbar", { staticStyle: { position: "absolute" }, attrs: { id: "border-bottom-set", "active-color": "#ee0000", "inactive-color": "#000", }, model: { value: _vm.active, callback: function ($$v) { _vm.active = $$v }, expression: "active", }, }, [ _c("van-tabbar-item", { attrs: { icon: "home-o" } }), _vm._v(" "), _c("van-tabbar-item", { attrs: { icon: "todo-list-o" } }), _vm._v(" "), _c("van-tabbar-item", { attrs: { icon: "underway-o" } }), _vm._v(" "), _c("van-tabbar-item", { attrs: { icon: "setting-o" } }), ], 1 ), ], 1 ), _vm._v(" "), _c("div", { staticClass: "card__btn", on: { click: _vm.hide } }, [ _c( "svg", { staticClass: "icon", attrs: { t: "1663828267105", viewBox: "0 0 1024 1024", version: "1.1", "p-id": "2601", }, }, [ _c("path", { attrs: { d: "M312.888889 995.555556c-17.066667 0-28.444444-5.688889-39.822222-17.066667-22.755556-22.755556-17.066667-56.888889 5.688889-79.644445l364.088888-329.955555c11.377778-11.377778 17.066667-22.755556 17.066667-34.133333 0-11.377778-5.688889-22.755556-17.066667-34.133334L273.066667 187.733333c-22.755556-22.755556-28.444444-56.888889-5.688889-79.644444 22.755556-22.755556 56.888889-28.444444 79.644444-5.688889l364.088889 312.888889c34.133333 28.444444 56.888889 73.955556 56.888889 119.466667s-17.066667 85.333333-51.2 119.466666l-364.088889 329.955556c-11.377778 5.688889-28.444444 11.377778-39.822222 11.377778z", "p-id": "2134", fill: "#ee000088", }, }), ] ), ]), ], 1 ), ] ), _vm._v(" "), _c("Search"), ], 1 ) } var staticRenderFns = [] render._withStripped = true ;// CONCATENATED MODULE: ./src/app.vue?vue&type=template&id=5ef48958&scoped=true& ;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/home.vue?vue&type=template&id=7eb2bc79&scoped=true& var homevue_type_template_id_7eb2bc79_scoped_true_render = function () { var this$1 = this var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "div", { staticClass: "homeindex" }, [ _c( "div", { style: { position: "relative", margin: "-5px 0 2px 15px", zIndex: 999999, }, attrs: { id: "selectId" }, on: { mouseleave: _vm.leaveCollapse }, }, [ _c( "van-collapse", { staticStyle: { width: "200px" }, model: { value: _vm.activeNames, callback: function ($$v) { _vm.activeNames = $$v }, expression: "activeNames", }, }, [ _c( "van-collapse-item", { staticClass: "xxx", attrs: { title: _vm.checkTitle, name: "1" }, }, [ _c( "div", { on: { click: function ($event) { return _vm.checkContent(1, "原列表") }, }, }, [_vm._v("原列表")] ), _vm._v(" "), _c("br"), _vm._v(" "), _c( "div", { on: { click: function ($event) { return _vm.checkContent(2, "导入规则列表") }, }, }, [_vm._v("导入规则列表")] ), ] ), ], 1 ), _vm._v(" "), _c("van-icon", { attrs: { id: "search-ico", name: "search", size: "30", color: "#ee0000", }, on: { click: function () { this$1.$bus.$emit("showSearchPage") }, }, }), ], 1 ), _vm._v(" "), _vm.checkValue == 1 ? _c( "van-cell-group", { attrs: { inset: "" } }, _vm._l(_vm.originalInfo, function (item, index) { return _c("van-cell", { key: index, attrs: { "is-link": "" }, on: { click: function ($event) { return _vm.jump(item.homepage) }, }, scopedSlots: _vm._u( [ { key: "title", fn: function () { return [ _c("span", [_vm._v(_vm._s(item.webName))]), _vm._v(" "), item.webDesc ? _c("van-icon", { attrs: { title: item.webDesc, name: "info-o", color: "red", }, }) : _vm._e(), ] }, proxy: true, }, ], null, true ), }) }), 1 ) : _vm._e(), _vm._v(" "), _vm.checkValue == 2 ? _c( "div", [ _c( "van-cell-group", { attrs: { inset: "" } }, _vm._l(_vm.userWebInfo, function (item, index) { return _c("van-cell", { key: index, attrs: { "is-link": "" }, on: { click: function ($event) { return _vm.jump(item.homepage) }, }, scopedSlots: _vm._u( [ { key: "title", fn: function () { return [ _c("span", [_vm._v(_vm._s(item.webName))]), _vm._v(" "), item.webDesc ? _c("van-icon", { attrs: { title: item.webDesc, name: "info-o", color: "red", }, }) : _vm._e(), ] }, proxy: true, }, ], null, true ), }) }), 1 ), ], 1 ) : _vm._e(), ], 1 ) } var homevue_type_template_id_7eb2bc79_scoped_true_staticRenderFns = [] homevue_type_template_id_7eb2bc79_scoped_true_render._withStripped = true ;// CONCATENATED MODULE: ./src/views/home.vue?vue&type=template&id=7eb2bc79&scoped=true& // EXTERNAL MODULE: ./src/utils/comics.js var comics = __webpack_require__(872); ;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/home.vue?vue&type=script&lang=js& // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /* harmony default export */ const homevue_type_script_lang_js_ = ({ name: 'Index', data() { return { originalInfo: [], userWebInfo: [], // activeNames: [1], checkValue: 1, checkTitle: '原列表' } }, created() { this.getWeb() }, mounted() { this.$bus.$on('getWeb', this.getWeb) }, methods: { getWeb() { const { originalInfo, userWebInfo } = (0,comics/* getWebList */.eT)() this.originalInfo = originalInfo.filter((item) => { return item.showInList !== false }) this.userWebInfo = userWebInfo }, checkContent(val, title) { this.checkValue = val this.checkTitle = title this.activeNames = [] }, leaveCollapse() { this.activeNames = [] }, jump(url) { window.open(url, '_blank') // window.location.href = url } } }); ;// CONCATENATED MODULE: ./src/views/home.vue?vue&type=script&lang=js& /* harmony default export */ const views_homevue_type_script_lang_js_ = (homevue_type_script_lang_js_); // EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js var injectStylesIntoStyleTag = __webpack_require__(379); var injectStylesIntoStyleTag_default = /*#__PURE__*/__webpack_require__.n(injectStylesIntoStyleTag); // EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/styleDomAPI.js var styleDomAPI = __webpack_require__(795); var styleDomAPI_default = /*#__PURE__*/__webpack_require__.n(styleDomAPI); // EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/insertBySelector.js var insertBySelector = __webpack_require__(569); var insertBySelector_default = /*#__PURE__*/__webpack_require__.n(insertBySelector); // EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js var setAttributesWithoutAttributes = __webpack_require__(565); var setAttributesWithoutAttributes_default = /*#__PURE__*/__webpack_require__.n(setAttributesWithoutAttributes); // EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/insertStyleElement.js var insertStyleElement = __webpack_require__(216); var insertStyleElement_default = /*#__PURE__*/__webpack_require__.n(insertStyleElement); // EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/styleTagTransform.js var styleTagTransform = __webpack_require__(589); var styleTagTransform_default = /*#__PURE__*/__webpack_require__.n(styleTagTransform); // EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-3[0].rules[0].use[2]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/home.vue?vue&type=style&index=0&id=7eb2bc79&lang=less&scoped=true& var homevue_type_style_index_0_id_7eb2bc79_lang_less_scoped_true_ = __webpack_require__(782); ;// CONCATENATED MODULE: ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-3[0].rules[0].use[2]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/home.vue?vue&type=style&index=0&id=7eb2bc79&lang=less&scoped=true& var options = {}; options.styleTagTransform = (styleTagTransform_default()); options.setAttributes = (setAttributesWithoutAttributes_default()); options.insert = insertBySelector_default().bind(null, "head"); options.domAPI = (styleDomAPI_default()); options.insertStyleElement = (insertStyleElement_default()); var update = injectStylesIntoStyleTag_default()(homevue_type_style_index_0_id_7eb2bc79_lang_less_scoped_true_/* default */.Z, options); /* harmony default export */ const views_homevue_type_style_index_0_id_7eb2bc79_lang_less_scoped_true_ = (homevue_type_style_index_0_id_7eb2bc79_lang_less_scoped_true_/* default */.Z && homevue_type_style_index_0_id_7eb2bc79_lang_less_scoped_true_/* default.locals */.Z.locals ? homevue_type_style_index_0_id_7eb2bc79_lang_less_scoped_true_/* default.locals */.Z.locals : undefined); ;// CONCATENATED MODULE: ./src/views/home.vue?vue&type=style&index=0&id=7eb2bc79&lang=less&scoped=true& ;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js /* globals __VUE_SSR_CONTEXT__ */ // IMPORTANT: Do NOT use ES2015 features in this file (except for modules). // This module is a runtime utility for cleaner component module output and will // be included in the final webpack user bundle. function normalizeComponent ( scriptExports, render, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, /* server only */ shadowMode /* vue-cli only */ ) { // Vue.extend constructor export interop var options = typeof scriptExports === 'function' ? scriptExports.options : scriptExports // render functions if (render) { options.render = render options.staticRenderFns = staticRenderFns options._compiled = true } // functional template if (functionalTemplate) { options.functional = true } // scopedId if (scopeId) { options._scopeId = 'data-v-' + scopeId } var hook if (moduleIdentifier) { // server build hook = function (context) { // 2.3 injection context = context || // cached call (this.$vnode && this.$vnode.ssrContext) || // stateful (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional // 2.2 with runInNewContext: true if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { context = __VUE_SSR_CONTEXT__ } // inject component styles if (injectStyles) { injectStyles.call(this, context) } // register component module identifier for async chunk inferrence if (context && context._registeredComponents) { context._registeredComponents.add(moduleIdentifier) } } // used by ssr in case component is cached and beforeCreate // never gets called options._ssrRegister = hook } else if (injectStyles) { hook = shadowMode ? function () { injectStyles.call( this, (options.functional ? this.parent : this).$root.$options.shadowRoot ) } : injectStyles } if (hook) { if (options.functional) { // for template-only hot-reload because in that case the render fn doesn't // go through the normalizer options._injectStyles = hook // register for functional component in vue file var originalRender = options.render options.render = function renderWithStyleInjection (h, context) { hook.call(context) return originalRender(h, context) } } else { // inject component registration as beforeCreate hook var existing = options.beforeCreate options.beforeCreate = existing ? [].concat(existing, hook) : [hook] } } return { exports: scriptExports, options: options } } ;// CONCATENATED MODULE: ./src/views/home.vue ; /* normalize component */ var component = normalizeComponent( views_homevue_type_script_lang_js_, homevue_type_template_id_7eb2bc79_scoped_true_render, homevue_type_template_id_7eb2bc79_scoped_true_staticRenderFns, false, null, "7eb2bc79", null ) /* hot reload */ if (false) { var api; } component.options.__file = "src/views/home.vue" /* harmony default export */ const home = (component.exports); ;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/table.vue?vue&type=template&id=657d4b24&scoped=true& var tablevue_type_template_id_657d4b24_scoped_true_render = function () { var this$1 = this var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "div", { ref: "comiclist", staticClass: "comiclist" }, [ _c( "van-popup", { style: { position: "absolute", width: "100%", height: "40%", borderTop: "1px solid #fcadad", marginTop: "-15px", }, attrs: { "get-container": "#chapterpage", round: "", position: "top", }, model: { value: _vm.show, callback: function ($$v) { _vm.show = $$v }, expression: "show", }, }, [ _c( "van-cell-group", { style: { display: "flex", flexDirection: "column", width: "350px", margin: "10px auto", }, attrs: { title: "选项", inset: "" }, }, [ _c( "label", { staticStyle: { "margin-top": "5px", "margin-left": "16px", "text-align": "left", }, }, [_vm._v("本次下载(临时更改)")] ), _vm._v(" "), _c("van-cell", { attrs: { title: "" }, scopedSlots: _vm._u([ { key: "right-icon", fn: function () { return [ _c("br"), _vm._v(" "), _c( "van-radio-group", { attrs: { direction: "horizontal" }, model: { value: _vm.downType, callback: function ($$v) { _vm.downType = $$v }, expression: "downType", }, }, [ _c("van-radio", { attrs: { name: 0 } }, [ _vm._v("直接下载"), ]), _vm._v(" "), _c("van-radio", { attrs: { name: 1 } }, [ _vm._v("压缩下载"), ]), _vm._v(" "), _c( "van-radio", { attrs: { name: 2, title: "拼接后单张高度不超过 10000 像素", }, }, [ _vm._v("拼接下载"), _c("van-icon", { attrs: { name: "info-o", color: "red" }, }), ], 1 ), ], 1 ), ] }, proxy: true, }, ]), }), _vm._v(" "), _c("van-cell", [ _c( "div", { style: { display: "flex", justifyContent: "space-between" }, }, [ _c( "van-checkbox", { attrs: { "label-position": "left" }, on: { change: _vm.characterSequenceChange }, model: { value: _vm.useCharacterNum, callback: function ($$v) { _vm.useCharacterNum = $$v }, expression: "useCharacterNum", }, }, [_vm._v("章节补充序号\n ")] ), _vm._v(" "), _c( "van-checkbox", { attrs: { disabled: !_vm.useCharacterNum, "label-position": "left", }, on: { change: _vm.characterSequenceChange }, model: { value: _vm.characterNumSequence, callback: function ($$v) { _vm.characterNumSequence = $$v }, expression: "characterNumSequence", }, }, [_vm._v("—序号反序\n ")] ), ], 1 ), ]), _vm._v(" "), _c( "div", { staticStyle: { "margin-top": "8px", display: "flex", height: "25px", "line-height": "25px", "justify-content": "space-between", }, }, [ _c( "label", { staticStyle: { "margin-left": "16px", "text-align": "left", }, attrs: { for: "" }, }, [_vm._v("下载当前阅读章节 (测试)")] ), _vm._v(" "), _c( "van-button", { attrs: { type: "default", size: "mini" }, on: { click: _vm.getCurrentWebData }, }, [_vm._v("获取")] ), ], 1 ), _vm._v(" "), _c("van-cell", { staticStyle: { "padding-top": "0px" }, attrs: { title: "" }, scopedSlots: _vm._u([ { key: "right-icon", fn: function () { return [ _c("van-field", { attrs: { name: "defineComicName", placeholder: "漫画名", }, model: { value: _vm.defineComicName, callback: function ($$v) { _vm.defineComicName = $$v }, expression: "defineComicName", }, }), _vm._v(" "), _c("van-field", { attrs: { name: "definechapterName", placeholder: "章节名", }, model: { value: _vm.definechapterName, callback: function ($$v) { _vm.definechapterName = $$v }, expression: "definechapterName", }, }), ] }, proxy: true, }, ]), }), ], 1 ), ], 1 ), _vm._v(" "), _c( "div", { attrs: { id: "editItem" } }, [ _c( "div", [ _c( "van-button", { attrs: { size: "mini", disabled: !_vm.showSelectList }, on: { click: _vm.selectAll }, }, [_vm._v("全选")] ), _vm._v(" "), _c( "van-button", { attrs: { size: "mini", disabled: !_vm.showSelectList }, on: { click: _vm.CancelSelect }, }, [_vm._v("取消")] ), ], 1 ), _vm._v(" "), _c( "div", { staticClass: "editItem-center" }, [ _vm._v("\n 选\n "), _c("van-icon", { style: { cursor: "pointer" }, attrs: { name: "more-o", color: "#ee0000", size: "25" }, on: { click: function () { this$1.show = !this$1.show }, }, }), _vm._v(" 项\n "), ], 1 ), _vm._v(" "), _c( "van-button", { staticStyle: { width: "80px" }, attrs: { size: "mini", round: "", disabled: !_vm.showSelectList }, on: { click: _vm.downSelectList }, }, [_vm._v("下载")] ), ], 1 ), _vm._v(" "), _c( "van-divider", { style: { color: "#1989fa", borderColor: "#1989fa", padding: "0 15px", height: "10px", }, }, [ _c( "code", { staticStyle: { cursor: "pointer" }, on: { click: _vm.reloadList }, }, [_vm._v("重载列表")] ), ] ), _vm._v(" "), !_vm.showSelectList ? _c( "div", [ _c( "van-empty", { attrs: { description: "漫画章节" } }, [ _c( "van-button", { staticClass: "bottom-button", staticStyle: { width: "120px" }, attrs: { round: "", disabled: _vm.comicName === "------", }, on: { click: _vm.getSelectList }, }, [_vm._v(" 加载 ")] ), ], 1 ), _vm._v(" "), _c( "van-cell-group", { attrs: { id: "comicinfo", inset: "" } }, [ _c("van-cell", { attrs: { title: "网站", value: _vm.webname }, }), _vm._v(" "), _c("van-cell", { attrs: { title: "漫画", value: _vm.comicName }, }), ], 1 ), ], 1 ) : _vm._e(), _vm._v(" "), _c("van-overlay", { attrs: { id: "overlayDom", show: _vm.overlayShow } }), _vm._v(" "), _vm.showSelectList ? _c( "div", { staticStyle: { "border-radius": "25px" }, attrs: { id: "select-list" }, }, [ _c("div", { attrs: { id: "select-list-top" } }, [ _c("div", { attrs: { id: "select-list-info" } }, [ _vm._m(0), _vm._v(" "), _c( "div", { attrs: { id: "select-list-info-right" } }, [ _c("van-icon", { style: { cursor: "pointer" }, attrs: { name: "edit", color: "#66ccff", size: "18", title: "编辑", }, on: { click: _vm.editList }, }), _vm._v(" "), _c("van-icon", { style: { cursor: "pointer" }, attrs: { name: "sort", color: "#ee000088", size: "18", title: "排序", }, on: { click: _vm.reverseList }, }), ], 1 ), ]), _vm._v(" "), _c( "div", { directives: [ { name: "show", rawName: "v-show", value: _vm.isEditList, expression: "isEditList", }, ], attrs: { id: "select-show-edit" }, }, [ _c( "div", { staticStyle: { display: "flex", "align-items": "center", }, }, [ _c( "label", { staticStyle: { "text-align": "left", "margin-right": "20px", }, attrs: { for: "" }, }, [_vm._v("删除所选章节首个字符")] ), _vm._v(" "), _c( "van-button", { attrs: { type: "default", size: "mini" }, on: { click: function ($event) { return _vm.delOnechapterNameFont(1) }, }, }, [_vm._v("删除")] ), ], 1 ), _vm._v(" "), _c( "div", { staticStyle: { display: "flex", "align-items": "center", "margin-top": "3px", "margin-bottom": "3px", }, }, [ _c( "label", { staticStyle: { "text-align": "left", "margin-right": "20px", }, attrs: { for: "" }, }, [_vm._v("删除所选章节末尾一个字符")] ), _vm._v(" "), _c( "van-button", { attrs: { type: "default", size: "mini" }, on: { click: function ($event) { return _vm.delOnechapterNameFont(-1) }, }, }, [_vm._v("删除")] ), ], 1 ), ] ), ]), _vm._v(" "), _c( "div", { attrs: { id: "select-list-2" } }, [ _c( "van-cell-group", { style: _vm.isEditList ? "max-height: 530px;" : "max-height: 585px;", attrs: { id: "select-list-2-1", inset: "" }, }, _vm._l(_vm.list, function (item, index) { return _c("van-cell", { key: index, style: _vm.titleStyle( item.url, item.isPay, item.characterType ), attrs: { title: _vm.showComicTitleName( item.chapterNumStr, item.chapterName ), }, scopedSlots: _vm._u( [ _vm.isEditList ? { key: "title", fn: function () { return [ _c( "div", { staticStyle: { display: "flex", "justify-content": "space-around", }, }, [ _c( "label", { attrs: { for: item.chapterNumStr, }, }, [_vm._v(_vm._s(item.chapterNumStr))] ), _vm._v(" "), _c("input", { directives: [ { name: "model", rawName: "v-model", value: item.chapterName, expression: "item.chapterName", }, ], staticClass: "input-chaptername", attrs: { type: "text" }, domProps: { value: item.chapterName, }, on: { input: function ($event) { if ($event.target.composing) { return } _vm.$set( item, "chapterName", $event.target.value ) }, }, }), ] ), ] }, proxy: true, } : null, { key: "right-icon", fn: function () { return [ _c("van-checkbox", { staticClass: "selectChapter", attrs: { name: index, disabled: item.url !== "javascript:void();" ? false : true, "icon-size": "24px", }, on: { click: function ($event) { return _vm.radioSelect( item.isSelect, index ) }, }, model: { value: item.isSelect, callback: function ($$v) { _vm.$set(item, "isSelect", $$v) }, expression: "item.isSelect", }, }), ] }, proxy: true, }, ], null, true ), }) }), 1 ), ], 1 ), ] ) : _vm._e(), ], 1 ) } var tablevue_type_template_id_657d4b24_scoped_true_staticRenderFns = [ function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c("div", { attrs: { id: "select-list-info-left" } }, [ _c("span", [_vm._v("颜色")]), _vm._v(" "), _c("span", { staticClass: "span-circle", staticStyle: { background: "blue" }, attrs: { title: "免费" }, }), _vm._v(" "), _c("span", { staticClass: "span-circle", staticStyle: { background: "#AA6680" }, attrs: { title: "最新/其它/单行本/卷" }, }), _vm._v(" "), _c("span", { staticClass: "span-circle", staticStyle: { background: "red" }, attrs: { title: "付费" }, }), _vm._v(" "), _c("span", { staticClass: "span-circle", staticStyle: { background: "#ccc" }, attrs: { title: "无效" }, }), ]) }, ] tablevue_type_template_id_657d4b24_scoped_true_render._withStripped = true ;// CONCATENATED MODULE: ./src/views/table.vue?vue&type=template&id=657d4b24&scoped=true& // EXTERNAL MODULE: ./src/config/setup.js var setup = __webpack_require__(393); // EXTERNAL MODULE: ./src/utils/index.js var utils = __webpack_require__(624); // EXTERNAL MODULE: external "vant" var external_vant_ = __webpack_require__(871); ;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/table.vue?vue&type=script&lang=js& // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /* harmony default export */ const tablevue_type_script_lang_js_ = ({ name: 'Table', data() { return { list: [], downResult: [], lastSelectIndex: null, onShfit: false, showSelectList: false, overlayShow: false, show: false, isEditList: false, currentComics: '', webname: '未匹配', comicName: '------', paylogoArr: [], downType: 0, useCharacterNum: false, characterNumSequence: false, defineComicName: '', definechapterName: '' } }, computed: { }, mounted() { this.watchKeyEvent() this.getInfo() }, methods: { titleStyle: function(url, isPay, type) { if (url === 'javascript:void();') { return { color: '#ccc' } } if (isPay === true) { return { color: 'red' } } if (type === 'many') { return { color: '#AA6680' } } return `color: blue` }, showComicTitleName(numStr, name) { let showname = '' if (numStr !== '') { const newname = name === '' ? '' : ('-' + name) showname = numStr + newname return showname } return name }, editList() { this.overlayShow = true this.isEditList = !this.isEditList this.overlayShow = false }, // 删除章节一个字符 delOnechapterNameFont(pos) { this.list.forEach((element, index) => { if (element.isSelect === true && element.chapterName.length >= 1) { if (pos === 1) { element.chapterName = element.chapterName.slice(1) } else { element.chapterName = element.chapterName.slice(0, -1) } } }) }, getInfo(times) { try { this.currentComics = comics/* currentComics */.Po if (comics/* currentComics */.Po === null) { return } const comicNameCss = this.currentComics.comicNameCss this.webname = comics/* currentComics.webName */.Po.webName this.comicName = document.querySelectorAll(comicNameCss)[0].innerText.split('\n')[0].trim() if (this.comicName === '') { setTimeout(() => { this.getInfo(1) }, 1500) return } this.$bus.$emit('getComicName', this.comicName) // this.downType = (0,setup/* getStorage */.cF)('downType') // eslint-disable-next-line no-empty } catch (error) { if (times === undefined) { setTimeout(() => { this.getInfo(1) }, 1500) } console.log('getInfo-e: ', error) } this.lastSelectIndex = null return }, reverseList() { this.overlayShow = true this.list = this.list.reverse() this.lastSelectIndex = null this.overlayShow = false }, selectAll() { this.list.forEach((element, index) => { if (element.url !== 'javascript:void();') { element.isSelect = true } }) this.lastSelectIndex = null }, CancelSelect() { this.list.forEach((element, index) => { element.isSelect = false }) this.lastSelectIndex = null }, radioSelect(isSelect, index) { if (!isSelect) { this.lastSelectIndex = null return } let minIndex, maxIndex if (this.lastSelectIndex < index) { minIndex = this.lastSelectIndex maxIndex = index } else { minIndex = index maxIndex = this.lastSelectIndex } if (this.onShfit && this.lastSelectIndex !== null) { for (let i = minIndex; i < maxIndex; i++) { if (this.list[i].url !== 'javascript:void();') { this.list[i].isSelect = true } } } this.lastSelectIndex = index }, watchKeyEvent() { const setKeyStatus = (keyCode, status) => { switch (keyCode) { case 16: if (this.onShfit === status) return this.onShfit = status break } } const dom = this.$refs.comiclist dom.onkeydown = (e) => { setKeyStatus(e.keyCode, true) } dom.onkeyup = (e) => { setKeyStatus(e.keyCode, false) } }, async getSelectList() { this.overlayShow = true try { // 单页面应用 获取信息 if (comics/* currentComics.getComicInfo */.Po.getComicInfo) { this.list = await comics/* currentComics.getComicInfo */.Po.getComicInfo(this.comicName) this.overlayShow = false this.showSelectList = true return } setTimeout(() => { // 单章数据 const nodeList = document.querySelectorAll(comics/* currentComics.chapterCss */.Po.chapterCss) this.getChapterData(nodeList, comics/* currentComics */.Po, 'one') // (如果存在)分卷数据 if (comics/* currentComics.chapterCss_2 */.Po.chapterCss_2) { const nodeList_2 = document.querySelectorAll(comics/* currentComics.chapterCss_2 */.Po.chapterCss_2) this.getChapterData(nodeList_2, comics/* currentComics */.Po, 'many') } this.overlayShow = false this.showSelectList = true }, 100) } catch (error) { console.log('getSelectList-e: ', error) ;(0,external_vant_.Toast)({ message: '网站未匹配或方法已失效', getContainer: '.card', position: 'bottom' }) setTimeout(() => { this.overlayShow = false }, 3000) } }, // 获取章节数据 getChapterData(nodeList, currentComics, type) { const hasSpend = currentComics.hasSpend const chapterNameReg = currentComics.chapterNameReg nodeList.forEach(dom => { const urls = dom.querySelectorAll('a') const readtype = currentComics.readtype urls.forEach((element, index) => { let chapterName = '' try { if (!chapterNameReg) { chapterName = element.innerText } else { chapterName = element.outerHTML.match(chapterNameReg)[1] } chapterName = (0,utils/* trimSpecial */.Sc)(chapterName) } catch (error) { // console.log() } // 获取付费标志 let currentIsPay = false if (hasSpend) { const payKey = currentComics.payKey const parent = element.parentElement if (parent.outerHTML.indexOf(payKey) > 0) { currentIsPay = true } else { currentIsPay = false } } const data = { comicName: (0,utils/* trimSpecial */.Sc)(this.comicName), chapterNumStr: '', chapterName, downChapterName: '', url: element.href, characterType: type, readtype, isPay: currentIsPay, isSelect: false } if (data.chapterName !== '') { this.list.push(data) } }) }) }, // 已进入原网站漫画章节页面阅读,获取章节 下载 getCurrentWebData() { if (!comics/* currentComics */.Po) { (0,external_vant_.Toast)({ message: '未在匹配网站', getContainer: '.card', position: 'bottom' }) return } if (this.defineComicName === '' || this.definechapterName === '') { (0,external_vant_.Toast)({ message: '请输入名称', getContainer: '.card', position: 'bottom' }) return } const item = { comicName: this.defineComicName, chapterNumStr: '', chapterName: this.definechapterName, downChapterName: this.definechapterName, url: window.location.href, characterType: 'one', readtype: comics/* currentComics.readtype */.Po.readtype, isPay: comics/* currentComics.hasSpend */.Po.hasSpend, downType: this.downType, downHeaders: comics/* currentComics.downHeaders */.Po.downHeaders } this.downResult.push(item) this.$bus.$emit('selectDown', this.downResult) this.$bus.$emit('changTab', 2) this.downResult = [] this.show = false }, downSelectList() { let hasSelect = false this.list.forEach((item, index) => { if (item.isSelect) { item.downType = this.downType item.downHeaders = comics/* currentComics.downHeaders */.Po.downHeaders if (!hasSelect && item.isSelect) { hasSelect = true } if (item.chapterNumStr !== '' && item.chapterNumStr !== undefined) { const newName = item.chapterName === '' ? '' : ('-' + item.chapterName) item.downChapterName = item.chapterNumStr + newName } else { item.downChapterName = item.chapterName } // 下载的章节名可能修改为空,为空跳过 if (item.downChapterName !== '') { this.downResult.push(item) item.isSelect = false } } }) if (!hasSelect) { (0,external_vant_.Toast)({ message: '请选择章节', getContainer: '.card', position: 'bottom' }) return } this.$bus.$emit('selectDown', this.downResult) this.$bus.$emit('changTab', 2) this.downResult = [] }, reloadList() { this.list = [] this.getInfo(1) this.getSelectList() }, characterSequenceChange() { if (!this.useCharacterNum) { // 删除 前几个字符 this.list.forEach((item, index) => { item.chapterNumStr = '' }) return } if (this.characterNumSequence === true) { const len = this.list.length this.list.forEach((item, index) => { item.chapterNumStr = (0,utils/* addZeroForNum */.xo)(len - index, 3) }) } else { this.list.forEach((item, index) => { item.chapterNumStr = (0,utils/* addZeroForNum */.xo)(index + 1, 3) }) } } } }); ;// CONCATENATED MODULE: ./src/views/table.vue?vue&type=script&lang=js& /* harmony default export */ const views_tablevue_type_script_lang_js_ = (tablevue_type_script_lang_js_); // EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-3[0].rules[0].use[2]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/table.vue?vue&type=style&index=0&id=657d4b24&lang=less&scoped=true& var tablevue_type_style_index_0_id_657d4b24_lang_less_scoped_true_ = __webpack_require__(737); ;// CONCATENATED MODULE: ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-3[0].rules[0].use[2]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/table.vue?vue&type=style&index=0&id=657d4b24&lang=less&scoped=true& var tablevue_type_style_index_0_id_657d4b24_lang_less_scoped_true_options = {}; tablevue_type_style_index_0_id_657d4b24_lang_less_scoped_true_options.styleTagTransform = (styleTagTransform_default()); tablevue_type_style_index_0_id_657d4b24_lang_less_scoped_true_options.setAttributes = (setAttributesWithoutAttributes_default()); tablevue_type_style_index_0_id_657d4b24_lang_less_scoped_true_options.insert = insertBySelector_default().bind(null, "head"); tablevue_type_style_index_0_id_657d4b24_lang_less_scoped_true_options.domAPI = (styleDomAPI_default()); tablevue_type_style_index_0_id_657d4b24_lang_less_scoped_true_options.insertStyleElement = (insertStyleElement_default()); var tablevue_type_style_index_0_id_657d4b24_lang_less_scoped_true_update = injectStylesIntoStyleTag_default()(tablevue_type_style_index_0_id_657d4b24_lang_less_scoped_true_/* default */.Z, tablevue_type_style_index_0_id_657d4b24_lang_less_scoped_true_options); /* harmony default export */ const views_tablevue_type_style_index_0_id_657d4b24_lang_less_scoped_true_ = (tablevue_type_style_index_0_id_657d4b24_lang_less_scoped_true_/* default */.Z && tablevue_type_style_index_0_id_657d4b24_lang_less_scoped_true_/* default.locals */.Z.locals ? tablevue_type_style_index_0_id_657d4b24_lang_less_scoped_true_/* default.locals */.Z.locals : undefined); ;// CONCATENATED MODULE: ./src/views/table.vue?vue&type=style&index=0&id=657d4b24&lang=less&scoped=true& ;// CONCATENATED MODULE: ./src/views/table.vue ; /* normalize component */ var table_component = normalizeComponent( views_tablevue_type_script_lang_js_, tablevue_type_template_id_657d4b24_scoped_true_render, tablevue_type_template_id_657d4b24_scoped_true_staticRenderFns, false, null, "657d4b24", null ) /* hot reload */ if (false) { var table_api; } table_component.options.__file = "src/views/table.vue" /* harmony default export */ const table = (table_component.exports); ;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/setting.vue?vue&type=template&id=234d1526&scoped=true& var settingvue_type_template_id_234d1526_scoped_true_render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "div", { staticClass: "setindex" }, [ _c( "van-swipe", { ref: "swipe2", staticClass: "my-swipe", staticStyle: { cursor: "default" }, attrs: { "initial-swipe": 0, duration: 5, "show-indicators": false }, }, [ _c("van-swipe-item", { staticClass: "swipeitem" }, [ _c( "div", { attrs: { id: "setpart" } }, [ _c( "van-cell-group", { attrs: { id: "app-loadset", title: "app加载", inset: "" } }, [ _c("van-cell", { attrs: { "title-class": "cellleftvalue", "value-class": "cellrightvalue", center: "", }, scopedSlots: _vm._u([ { key: "title", fn: function () { return [ _c("span", { staticClass: "custom-title" }, [ _vm._v("随网页加载UI界面"), ]), _vm._v(" "), _c( "van-popover", { attrs: { placement: "right-start", "get-container": "#app-loadset", offset: [-2, 10], "close-on-click-outside": true, }, scopedSlots: _vm._u([ { key: "reference", fn: function () { return [ _c("van-icon", { attrs: { name: "info-o", color: "red", }, on: { mouseover: function ($event) { _vm.showUiPopover = true }, mouseleave: function ($event) { _vm.showUiPopover = false }, }, }), ] }, proxy: true, }, ]), model: { value: _vm.showUiPopover, callback: function ($$v) { _vm.showUiPopover = $$v }, expression: "showUiPopover", }, }, [ _c("code", { staticClass: "popovertext" }, [ _vm._v("关闭后可通过快捷键唤起"), ]), ] ), ] }, proxy: true, }, { key: "default", fn: function () { return [ _c("van-checkbox", { staticClass: "rightbutton", on: { change: function ($event) { return _vm.onChangeData( "appLoadDefault", _vm.appLoadDefault.isShowUI, "isShowUI" ) }, }, model: { value: _vm.appLoadDefault.isShowUI, callback: function ($$v) { _vm.$set( _vm.appLoadDefault, "isShowUI", $$v ) }, expression: "appLoadDefault.isShowUI", }, }), ] }, proxy: true, }, ]), }), _vm._v(" "), _c("van-cell", { attrs: { "title-class": "cellleftvalue", "value-class": "cellrightvalue", center: "", }, scopedSlots: _vm._u([ { key: "title", fn: function () { return [ _c("span", { staticClass: "custom-title" }, [ _vm._v("加载界面快捷键"), ]), ] }, proxy: true, }, { key: "default", fn: function () { return [ _c("div", [ _c("code", { staticStyle: { width: "35px" } }, [ _vm._v("Alt + "), ]), _vm._v(" "), _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.appLoadDefault.loadHotKey, expression: "appLoadDefault.loadHotKey", }, ], staticClass: "rightbutton", attrs: { id: "hot-key-input" }, domProps: { value: _vm.appLoadDefault.loadHotKey, }, on: { input: [ function ($event) { if ($event.target.composing) { return } _vm.$set( _vm.appLoadDefault, "loadHotKey", $event.target.value ) }, _vm.loadHotKeyChange, ], }, }), ]), ] }, proxy: true, }, ]), }), _vm._v(" "), _c("van-cell", { attrs: { "title-class": "cellleftvalue", "value-class": "cellrightvalue", center: "", }, scopedSlots: _vm._u([ { key: "title", fn: function () { return [ _c("span", { staticClass: "custom-title" }, [ _vm._v("右边大小缩放(%)"), ]), ] }, proxy: true, }, { key: "default", fn: function () { return [ _c("van-stepper", { staticClass: "rightbutton", attrs: { min: "75", max: "125", "default-value": 100, step: "1", integer: "", "button-size": "20px", }, on: { change: function ($event) { return _vm.changeRightSize(_vm.appRightSize) }, }, model: { value: _vm.appRightSize, callback: function ($$v) { _vm.appRightSize = $$v }, expression: "appRightSize", }, }), ] }, proxy: true, }, ]), }), _vm._v(" "), _c("van-cell", { attrs: { "title-class": "cellleftvalue", "value-class": "cellrightvalue", center: "", }, scopedSlots: _vm._u([ { key: "title", fn: function () { return [ _c("span", { staticClass: "custom-title" }, [ _vm._v("中间大小缩放(%)"), ]), ] }, proxy: true, }, { key: "default", fn: function () { return [ _c("van-stepper", { staticClass: "rightbutton", attrs: { min: "75", max: "125", "default-value": 100, step: "1", integer: "", "button-size": "20px", }, on: { change: function ($event) { return _vm.changeCenterSize( _vm.appCenterSize ) }, }, model: { value: _vm.appCenterSize, callback: function ($$v) { _vm.appCenterSize = $$v }, expression: "appCenterSize", }, }), ] }, proxy: true, }, ]), }), ], 1 ), _vm._v(" "), _c( "van-cell-group", { attrs: { id: "downpart", title: "下载", inset: "" } }, [ _c("van-cell", { attrs: { label: "*下载前生效", center: "" }, scopedSlots: _vm._u([ { key: "title", fn: function () { return [ _c( "span", { staticClass: "custom-title", staticStyle: { width: "300px" }, }, [_vm._v("最大下载章节数")] ), ] }, proxy: true, }, { key: "default", fn: function () { return [ _c( "div", { staticStyle: { display: "flex" } }, [ _vm._v( "\n 1 \n " ), _c("van-slider", { staticClass: "rightslider", attrs: { min: 1, max: 3 }, on: { change: function ($event) { return _vm.onChangeData( "maxChapterNum", _vm.maxChapterNum ) }, }, scopedSlots: _vm._u([ { key: "button", fn: function () { return [ _c( "div", { staticClass: "custom-button" }, [ _vm._v( _vm._s(_vm.maxChapterNum) ), ] ), ] }, proxy: true, }, ]), model: { value: _vm.maxChapterNum, callback: function ($$v) { _vm.maxChapterNum = $$v }, expression: "maxChapterNum", }, }), _vm._v(" 3\n "), ], 1 ), ] }, proxy: true, }, ]), }), _vm._v(" "), _c("van-cell", { attrs: { label: "*下载前生效", center: "" }, scopedSlots: _vm._u([ { key: "title", fn: function () { return [ _c( "span", { staticClass: "custom-title", staticStyle: { width: "300px" }, }, [_vm._v("每章最大下载图片数")] ), ] }, proxy: true, }, { key: "default", fn: function () { return [ _c( "div", { staticStyle: { display: "flex" } }, [ _vm._v( "\n 1 \n " ), _c("van-slider", { staticClass: "rightslider", attrs: { min: 1, max: 5 }, on: { change: function ($event) { return _vm.onChangeData( "maxPictureNum", _vm.maxPictureNum ) }, }, scopedSlots: _vm._u([ { key: "button", fn: function () { return [ _c( "div", { staticClass: "custom-button" }, [ _vm._v( _vm._s(_vm.maxPictureNum) ), ] ), ] }, proxy: true, }, ]), model: { value: _vm.maxPictureNum, callback: function ($$v) { _vm.maxPictureNum = $$v }, expression: "maxPictureNum", }, }), _vm._v(" 5\n "), ], 1 ), ] }, proxy: true, }, ]), }), _vm._v(" "), _c("van-cell", { attrs: { "title-class": "cellleftvalue", "value-class": "cellrightvalue", label: "*本次默认设置,修改后下次启动默认生效", center: "", }, scopedSlots: _vm._u([ { key: "title", fn: function () { return [ _c("span", { staticClass: "custom-title" }, [ _vm._v("下载方式"), ]), _vm._v(" "), _c( "van-popover", { attrs: { placement: "right", "get-container": "#downpart", offset: [-8, 10], "close-on-click-outside": true, }, scopedSlots: _vm._u([ { key: "reference", fn: function () { return [ _c("van-icon", { attrs: { name: "info-o", color: "red", }, on: { mouseover: function ($event) { _vm.downTypePopover = true }, mouseleave: function ($event) { _vm.downTypePopover = false }, }, }), ] }, proxy: true, }, ]), model: { value: _vm.downTypePopover, callback: function ($$v) { _vm.downTypePopover = $$v }, expression: "downTypePopover", }, }, [ _c("div", [ _c("code", { staticClass: "popovertext" }, [ _vm._v( "* 如需保存在文件夹需要设置油猴下载模式为浏览器API" ), ]), ]), ] ), ] }, proxy: true, }, { key: "default", fn: function () { return [ _c( "div", { staticClass: "dropdown", on: { mouseover: function ($event) { _vm.showDropDown = true }, mouseleave: function ($event) { _vm.showDropDown = false }, }, }, [ _c("button", { staticClass: "dropbtn" }, [ _vm._v( _vm._s(_vm.dropItem[_vm.downType].Text) ), ]), _vm._v(" "), _c( "div", { directives: [ { name: "show", rawName: "v-show", value: _vm.showDropDown, expression: "showDropDown", }, ], staticClass: "dropdown-content", attrs: { id: "myDropdown" }, }, _vm._l( _vm.dropItem, function (item, index) { return _c( "a", { key: index, attrs: { href: "#" }, on: { click: function ($event) { return _vm.changeDownType( item.value ) }, }, }, [ _c( "div", { attrs: { title: item.hint } }, [ _vm._v( "\n " + _vm._s(item.Text) + "\n " ), _c("van-icon", { directives: [ { name: "show", rawName: "v-show", value: item.hint, expression: "item.hint", }, ], attrs: { name: "info-o", color: "red", }, }), ], 1 ), ] ) } ), 0 ), ] ), ] }, proxy: true, }, ]), }), _vm._v(" "), _c("van-cell", { attrs: { "title-class": "cellleftvalue", "value-class": "cellrightvalue", label: "*下载拼接前生效", center: "", }, scopedSlots: _vm._u([ { key: "title", fn: function () { return [ _c("span", { staticClass: "custom-title" }, [ _vm._v("拼接图片最大高度"), ]), _vm._v(" "), _c( "van-popover", { attrs: { placement: "right", "get-container": "#downpart", offset: [-8, 10], "close-on-click-outside": true, }, scopedSlots: _vm._u([ { key: "reference", fn: function () { return [ _c("van-icon", { attrs: { name: "info-o", color: "red", }, on: { mouseover: function ($event) { _vm.splicingHeightPopover = true }, mouseleave: function ($event) { _vm.splicingHeightPopover = false }, }, }), ] }, proxy: true, }, ]), model: { value: _vm.splicingHeightPopover, callback: function ($$v) { _vm.splicingHeightPopover = $$v }, expression: "splicingHeightPopover", }, }, [ _c("div", [ _c("code", { staticClass: "popovertext" }, [ _vm._v("* chrome和Edge 最大不超过 65530"), ]), ]), ] ), ] }, proxy: true, }, { key: "default", fn: function () { return [ _c("div", [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.maxSplicingHeight, expression: "maxSplicingHeight", }, ], staticClass: "rightbutton", attrs: { id: "max-splicing-height-input", type: "number", min: 10000, max: 65530, onkeyup: "value=value.replace(/^(0+)|[^\\d]+/g,'')", }, domProps: { value: _vm.maxSplicingHeight }, on: { blur: _vm.splicingHeightBlur, input: function ($event) { if ($event.target.composing) { return } _vm.maxSplicingHeight = $event.target.value }, }, }), ]), ] }, proxy: true, }, ]), }), _vm._v(" "), _c("van-cell", { attrs: { "title-class": "cellleftvalue", "value-class": "cellrightvalue", label: "*本次启动默认设置,修改刷新生效", center: "", }, scopedSlots: _vm._u([ { key: "title", fn: function () { return [ _c("span", { staticClass: "custom-title" }, [ _vm._v("图片序号最少位数"), ]), _vm._v(" "), _c( "van-popover", { attrs: { placement: "right", "get-container": "#downpart", offset: [-5, 5], "close-on-click-outside": true, }, scopedSlots: _vm._u([ { key: "reference", fn: function () { return [ _c("van-icon", { attrs: { name: "info-o", color: "red", }, on: { mouseover: function ($event) { _vm.addZeroHint = true }, mouseleave: function ($event) { _vm.addZeroHint = false }, }, }), ] }, proxy: true, }, ]), model: { value: _vm.addZeroHint, callback: function ($$v) { _vm.addZeroHint = $$v }, expression: "addZeroHint", }, }, [ _c("div", [ _c("code", { staticClass: "popovertext" }, [ _vm._v('* 不足则向前补充"0"'), ]), _c("br"), _vm._v(" "), _c("code", { staticClass: "popovertext" }, [ _vm._v("* 选择1,则默认数字序号"), ]), ]), ] ), ] }, proxy: true, }, { key: "default", fn: function () { return [ _c("van-stepper", { staticClass: "rightbutton", attrs: { max: "5", integer: "", "button-size": "20px", }, on: { change: function ($event) { return _vm.onChangeData( "imgIndexBitNum", _vm.imgIndexBitNum ) }, }, model: { value: _vm.imgIndexBitNum, callback: function ($$v) { _vm.imgIndexBitNum = $$v }, expression: "imgIndexBitNum", }, }), ] }, proxy: true, }, ]), }), ], 1 ), _vm._v(" "), _c( "van-cell-group", { attrs: { id: "webpart", title: "原网站阅读样式修改", inset: "", }, }, [ _c("van-cell", { attrs: { "title-class": "cellleftvalue", "value-class": "cellrightvalue", label: "去除部分漫画网站图片上下间隔", center: "", }, scopedSlots: _vm._u([ { key: "title", fn: function () { return [ _c("span", { staticClass: "custom-title" }, [ _vm._v("图片拼接"), ]), _vm._v(" "), _c( "van-popover", { attrs: { placement: "right-start", "get-container": "#webpart", offset: [0, 10], "close-on-click-outside": true, }, scopedSlots: _vm._u([ { key: "reference", fn: function () { return [ _c("van-icon", { attrs: { name: "info-o", color: "red", }, on: { mouseover: function ($event) { _vm.showPopover = true }, mouseleave: function ($event) { _vm.showPopover = false }, }, }), ] }, proxy: true, }, ]), model: { value: _vm.showPopover, callback: function ($$v) { _vm.showPopover = $$v }, expression: "showPopover", }, }, [ _c("code", { staticClass: "popovertext" }, [ _vm._v("建议浏览长条漫画时开启"), ]), ] ), ] }, proxy: true, }, { key: "default", fn: function () { return [ _c("van-checkbox", { staticClass: "rightbutton", on: { change: _vm.webImgSplicing }, model: { value: _vm.imgSplicingFlag, callback: function ($$v) { _vm.imgSplicingFlag = $$v }, expression: "imgSplicingFlag", }, }), ] }, proxy: true, }, ]), }), ], 1 ), _vm._v(" "), _c( "van-cell-group", { attrs: { title: "自定义规则", inset: "" } }, [ _c("van-cell", { attrs: { "title-class": "cellleftvalue", "value-class": "cellrightvalue", title: "导入规则", "is-link": "", center: "", }, on: { click: function ($event) { return _vm.changeSwipe(1) }, }, }), _vm._v(" "), _c("van-cell", { attrs: { "title-class": "cellleftvalue", "value-class": "cellrightvalue", title: "清空导入的规则", "is-link": "", center: "", }, on: { click: function ($event) { return _vm.deleteAllUserWeb() }, }, }), ], 1 ), _vm._v(" "), _c( "van-cell-group", { attrs: { id: "otherpart", title: "其他", inset: "" } }, [ _c("van-cell", { attrs: { "title-class": "cellleftvalue", "value-class": "cellrightvalue", title: "脚本反馈/评分", "is-link": "", center: "", }, on: { click: function ($event) { return _vm.jump( "https://gf.qytechs.cn/zh-CN/scripts/447819/feedback" ) }, }, }), ], 1 ), ], 1 ), _vm._v(" "), _c( "div", { attrs: { id: "set-bottom" } }, [ _c( "van-button", { style: { width: "120px", background: "#ee000055 !important", }, attrs: { size: "small", round: "" }, on: { click: _vm.allInit }, }, [_vm._v("全部重置")] ), ], 1 ), ]), _vm._v(" "), _c( "van-swipe-item", { staticClass: "swipeitem", style: { marginBottom: "15px", cursor: "pointer", flex: 1 }, }, [ _c( "div", [ _c( "div", { attrs: { id: "setup-return" }, on: { click: function ($event) { return _vm.changeSwipe(0) }, }, }, [ _c("van-icon", { attrs: { name: "arrow-left" } }), _vm._v(" 返回\n "), ], 1 ), _vm._v(" "), _vm.setupOtherPage === 1 ? _c("import-page") : _vm._e(), ], 1 ), ] ), ], 1 ), ], 1 ) } var settingvue_type_template_id_234d1526_scoped_true_staticRenderFns = [] settingvue_type_template_id_234d1526_scoped_true_render._withStripped = true ;// CONCATENATED MODULE: ./src/views/setting.vue?vue&type=template&id=234d1526&scoped=true& ;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/importPage.vue?vue&type=template&id=3e5333e4&scoped=true& var importPagevue_type_template_id_3e5333e4_scoped_true_render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "div", { staticClass: "import-page" }, [ _c("textarea", { directives: [ { name: "model", rawName: "v-model", value: _vm.codeText, expression: "codeText", }, ], ref: "codeTextarea", staticStyle: { resize: "none" }, style: { width: "97%", height: "92%" }, attrs: { id: "codeTextarea" }, domProps: { value: _vm.codeText }, on: { input: function ($event) { if ($event.target.composing) { return } _vm.codeText = $event.target.value }, }, }), _vm._v(" "), _c( "van-button", { attrs: { size: "mini" }, on: { click: _vm.getCode } }, [_vm._v("确定")] ), ], 1 ) } var importPagevue_type_template_id_3e5333e4_scoped_true_staticRenderFns = [] importPagevue_type_template_id_3e5333e4_scoped_true_render._withStripped = true ;// CONCATENATED MODULE: ./src/components/importPage.vue?vue&type=template&id=3e5333e4&scoped=true& // EXTERNAL MODULE: ./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/importPage.vue?vue&type=script&lang=js& var importPagevue_type_script_lang_js_ = __webpack_require__(555); ;// CONCATENATED MODULE: ./src/components/importPage.vue?vue&type=script&lang=js& /* harmony default export */ const components_importPagevue_type_script_lang_js_ = (importPagevue_type_script_lang_js_/* default */.Z); // EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-3[0].rules[0].use[2]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/importPage.vue?vue&type=style&index=0&id=3e5333e4&lang=less&scoped=true& var importPagevue_type_style_index_0_id_3e5333e4_lang_less_scoped_true_ = __webpack_require__(159); ;// CONCATENATED MODULE: ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-3[0].rules[0].use[2]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/importPage.vue?vue&type=style&index=0&id=3e5333e4&lang=less&scoped=true& var importPagevue_type_style_index_0_id_3e5333e4_lang_less_scoped_true_options = {}; importPagevue_type_style_index_0_id_3e5333e4_lang_less_scoped_true_options.styleTagTransform = (styleTagTransform_default()); importPagevue_type_style_index_0_id_3e5333e4_lang_less_scoped_true_options.setAttributes = (setAttributesWithoutAttributes_default()); importPagevue_type_style_index_0_id_3e5333e4_lang_less_scoped_true_options.insert = insertBySelector_default().bind(null, "head"); importPagevue_type_style_index_0_id_3e5333e4_lang_less_scoped_true_options.domAPI = (styleDomAPI_default()); importPagevue_type_style_index_0_id_3e5333e4_lang_less_scoped_true_options.insertStyleElement = (insertStyleElement_default()); var importPagevue_type_style_index_0_id_3e5333e4_lang_less_scoped_true_update = injectStylesIntoStyleTag_default()(importPagevue_type_style_index_0_id_3e5333e4_lang_less_scoped_true_/* default */.Z, importPagevue_type_style_index_0_id_3e5333e4_lang_less_scoped_true_options); /* harmony default export */ const components_importPagevue_type_style_index_0_id_3e5333e4_lang_less_scoped_true_ = (importPagevue_type_style_index_0_id_3e5333e4_lang_less_scoped_true_/* default */.Z && importPagevue_type_style_index_0_id_3e5333e4_lang_less_scoped_true_/* default.locals */.Z.locals ? importPagevue_type_style_index_0_id_3e5333e4_lang_less_scoped_true_/* default.locals */.Z.locals : undefined); ;// CONCATENATED MODULE: ./src/components/importPage.vue?vue&type=style&index=0&id=3e5333e4&lang=less&scoped=true& ;// CONCATENATED MODULE: ./src/components/importPage.vue ; /* normalize component */ var importPage_component = normalizeComponent( components_importPagevue_type_script_lang_js_, importPagevue_type_template_id_3e5333e4_scoped_true_render, importPagevue_type_template_id_3e5333e4_scoped_true_staticRenderFns, false, null, "3e5333e4", null ) /* hot reload */ if (false) { var importPage_api; } importPage_component.options.__file = "src/components/importPage.vue" /* harmony default export */ const importPage = (importPage_component.exports); ;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/setting.vue?vue&type=script&lang=js& // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /* eslint-disable no-undef */ /* harmony default export */ const settingvue_type_script_lang_js_ = ({ name: 'Setting', components: { importPage: importPage }, data() { return { appLoadDefault: { isShowUI: true, loadHotKey: '', rightSize: 100, centerSize: 100 }, appRightSize: 100, appCenterSize: 100, maxChapterNum: 1, maxPictureNum: 2, imgIndexBitNum: 3, imgSplicingFlag: false, // downTypePopover: false, addZeroHint: false, showPopover: false, showUiPopover: false, setupOtherPage: 0, showDropDown: false, downType: 0, maxSplicingHeight: 20000, splicingHeightPopover: false, dropItem: [ { Text: '直接下载', value: 0 }, { Text: '压缩下载', value: 1 }, { Text: '拼接下载', value: 2, hint: '拼接后单张高度不超过 10000 像素' } ] } }, mounted() { this.getAllData() this.$bus.$on('changeSetupFirstPage', () => { this.changeSwipe(0) }) }, methods: { jump(url) { window.open(url, '_blank') }, onChangeData(key, value, key2) { (0,setup/* setStorage */.po)(key, value, key2) }, changeRightSize(num) { if (num === undefined) { num = 100 } const appRightDom = document.getElementById('app-right') appRightDom.style.scale = num / 100 this.onChangeData('appLoadDefault', num, 'rightSize') }, changeCenterSize(num) { if (num === undefined) { num = 100 } const appRightDom = document.getElementById('search-page') appRightDom.style.scale = num / 100 this.onChangeData('appLoadDefault', num, 'centerSize') }, loadHotKeyChange(obj) { if (obj.data) { this.appLoadDefault.loadHotKey = obj.data.toUpperCase() this.onChangeData('appLoadDefault', this.appLoadDefault.loadHotKey, 'loadHotKey') } }, webImgSplicing(value) { const splicingimgstyle = document.getElementById('splicingimgstyle') if (value === true && comics/* currentComics */.Po && comics/* currentComics.readCssText */.Po.readCssText !== undefined) { if (splicingimgstyle) { splicingimgstyle.innerText = comics/* currentComics.readCssText */.Po.readCssText } else { (0,utils/* loadStyle */.Xr)('', 'splicingimgstyle', comics/* currentComics.readCssText */.Po.readCssText) } } else { if (splicingimgstyle) { splicingimgstyle.innerText = '' } } this.onChangeData('imgSplicingFlag', value) }, changeSwipe(val) { console.log('val: ', val) this.$refs.swipe2.swipeTo(val) this.setupOtherPage = val }, changeDownType(val) { if (this.downType !== val) { this.downType = val this.onChangeData('downType', val) } }, splicingHeightBlur(event) { const val = event.currentTarget.value if (val < 10000) this.maxSplicingHeight = 10000 if (val > 65530) this.maxSplicingHeight = 65530 this.onChangeData('maxSplicingHeight', this.maxSplicingHeight) }, exeFun(flag, basic) { let rightSize = 100; let centerSize = 100 basic.rightSize ? rightSize = basic.rightSize : '' basic.rightSize ? this.appRightSize = basic.rightSize : '' this.changeRightSize(rightSize) basic.centerSize ? centerSize = basic.centerSize : '' basic.centerSize ? this.appCenterSize = basic.centerSize : '' this.changeRightSize(centerSize) this.webImgSplicing(flag) }, getAllData() { try { this.maxChapterNum = GM_getValue('maxChapterNum') this.maxPictureNum = GM_getValue('maxPictureNum') this.downType = GM_getValue('downType') this.maxSplicingHeight = GM_getValue('maxSplicingHeight') this.imgIndexBitNum = GM_getValue('imgIndexBitNum') this.imgSplicingFlag = GM_getValue('imgSplicingFlag') // this.appLoadDefault = GM_getValue('appLoadDefault') // eslint-disable-next-line no-empty } catch (error) {} // 获取数据后执行其他方法 this.exeFun(this.imgSplicingFlag, this.appLoadDefault) }, async allInit() { external_vant_.Dialog.confirm({ getContainer: '.card', message: '确认重置' }) .then(() => { (0,setup/* setinit */.zU)().then((result) => { this.getAllData() }) }) .catch(() => { // on cancel }) }, deleteAllUserWeb() { external_vant_.Dialog.confirm({ getContainer: '.card', message: '确认清空' }) .then(() => { (0,setup/* setStorage */.po)('userWebInfo', []) this.$bus.$emit('getWeb') }) .catch(() => { // on cancel }) } } }); ;// CONCATENATED MODULE: ./src/views/setting.vue?vue&type=script&lang=js& /* harmony default export */ const views_settingvue_type_script_lang_js_ = (settingvue_type_script_lang_js_); // EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-3[0].rules[0].use[2]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/setting.vue?vue&type=style&index=0&id=234d1526&lang=less&scoped=true& var settingvue_type_style_index_0_id_234d1526_lang_less_scoped_true_ = __webpack_require__(55); ;// CONCATENATED MODULE: ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-3[0].rules[0].use[2]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/setting.vue?vue&type=style&index=0&id=234d1526&lang=less&scoped=true& var settingvue_type_style_index_0_id_234d1526_lang_less_scoped_true_options = {}; settingvue_type_style_index_0_id_234d1526_lang_less_scoped_true_options.styleTagTransform = (styleTagTransform_default()); settingvue_type_style_index_0_id_234d1526_lang_less_scoped_true_options.setAttributes = (setAttributesWithoutAttributes_default()); settingvue_type_style_index_0_id_234d1526_lang_less_scoped_true_options.insert = insertBySelector_default().bind(null, "head"); settingvue_type_style_index_0_id_234d1526_lang_less_scoped_true_options.domAPI = (styleDomAPI_default()); settingvue_type_style_index_0_id_234d1526_lang_less_scoped_true_options.insertStyleElement = (insertStyleElement_default()); var settingvue_type_style_index_0_id_234d1526_lang_less_scoped_true_update = injectStylesIntoStyleTag_default()(settingvue_type_style_index_0_id_234d1526_lang_less_scoped_true_/* default */.Z, settingvue_type_style_index_0_id_234d1526_lang_less_scoped_true_options); /* harmony default export */ const views_settingvue_type_style_index_0_id_234d1526_lang_less_scoped_true_ = (settingvue_type_style_index_0_id_234d1526_lang_less_scoped_true_/* default */.Z && settingvue_type_style_index_0_id_234d1526_lang_less_scoped_true_/* default.locals */.Z.locals ? settingvue_type_style_index_0_id_234d1526_lang_less_scoped_true_/* default.locals */.Z.locals : undefined); ;// CONCATENATED MODULE: ./src/views/setting.vue?vue&type=style&index=0&id=234d1526&lang=less&scoped=true& ;// CONCATENATED MODULE: ./src/views/setting.vue ; /* normalize component */ var setting_component = normalizeComponent( views_settingvue_type_script_lang_js_, settingvue_type_template_id_234d1526_scoped_true_render, settingvue_type_template_id_234d1526_scoped_true_staticRenderFns, false, null, "234d1526", null ) /* hot reload */ if (false) { var setting_api; } setting_component.options.__file = "src/views/setting.vue" /* harmony default export */ const setting = (setting_component.exports); ;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/down.vue?vue&type=template&id=1e855a88&scoped=true& var downvue_type_template_id_1e855a88_scoped_true_render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "div", { attrs: { id: "downcontext" } }, [ _c( "van-collapse", { model: { value: _vm.collapseActiveName, callback: function ($$v) { _vm.collapseActiveName = $$v }, expression: "collapseActiveName", }, }, [ _c( "van-collapse-item", { attrs: { title: "下载中", name: "1" }, scopedSlots: _vm._u([ { key: "title", fn: function () { return [ _c( "div", { style: { display: "flex", lineHeight: "25px" } }, [ _vm._v("下载中\n "), _vm.comicName ? _c("van-tag", { staticClass: "comicnametag1" }, [ _vm._v(_vm._s(_vm.comicName)), ]) : _vm._e(), ], 1 ), ] }, proxy: true, }, ]), }, [ _vm._v(" "), _c( "div", { attrs: { id: "downlist" } }, _vm._l(_vm.queue.worker, function (item, index) { return _c("div", { key: index, staticClass: "downitem" }, [ item !== undefined ? _c( "div", [ _c("div", { staticClass: "itemname" }, [ _c("span", { staticClass: "custom-title" }, [ _vm._v(_vm._s(item.downChapterName)), ]), ]), _vm._v(" "), _c("van-progress", { ref: "progress", refInFor: true, staticStyle: { width: "100%", "margin-top": "10px", }, attrs: { percentage: item.progress, "pivot-color": "#66ccff", color: "linear-gradient(to right, #66ccff22, ##66ccff)", }, }), _vm._v(" "), _c("van-divider", { style: { margin: "13px 0px", padding: "0 0px", height: "1px", }, }), ], 1 ) : _vm._e(), ]) }), 0 ), ] ), _vm._v(" "), _c("van-collapse-item", { attrs: { title: "待下载", name: "2" } }, [ _c( "div", { attrs: { id: "downlist" } }, _vm._l(_vm.queue.list, function (item, index) { return _c( "div", { key: index, staticClass: "downitem" }, [ _c("div", { staticClass: "itemname" }, [ _c("span", { staticClass: "custom-title" }, [ _vm._v(_vm._s(item.downChapterName)), ]), ]), _vm._v(" "), _c("van-divider", { style: { margin: "8px 0px", padding: "0 0px", height: "1px", }, }), ], 1 ) }), 0 ), ]), _vm._v(" "), _c( "van-collapse-item", { attrs: { name: "3" }, scopedSlots: _vm._u([ { key: "title", fn: function () { return [ _c( "div", { style: { display: "flex" } }, [ _c( "span", { attrs: { title: _vm.currentDomain } }, [ _vm._v("\n 下载记录\n "), _c("van-icon", { attrs: { name: "info-o", color: "#adadad" }, }), ], 1 ), _vm._v(" "), _c("van-icon", { staticStyle: { "line-height": "25px", "margin-left": "10px", }, attrs: { name: "delete-o", color: "#EE0000", size: "20", }, on: { click: function ($event) { $event.stopPropagation() return _vm.deleteAllHistoryData.apply( null, arguments ) }, }, }), ], 1 ), ] }, proxy: true, }, ]), }, [ _vm._v(" "), _c( "div", { attrs: { id: "downlist" } }, _vm._l(_vm.historyData, function (item, index) { return _c( "div", { key: index, staticClass: "downitem" }, [ _c( "div", { staticClass: "itemname" }, [ _c( "div", { staticStyle: { display: "flex" } }, [ _c( "van-tag", { staticClass: "comicnametag", attrs: { title: item.comicName }, on: { click: function ($event) { return _vm.jump(item.comicPageUrl) }, }, }, [_vm._v(_vm._s(item.comicName))] ), _vm._v(" "), _c( "span", { staticClass: "custom-title chapterspan", class: { hasError: item.hasError }, }, [_vm._v(_vm._s(item.downChapterName))] ), ], 1 ), _vm._v(" "), _c("van-icon", { style: { cursor: "pointer" }, attrs: { name: "delete-o", size: "18px" }, on: { click: function ($event) { return _vm.deleteHistoryData(index, item.id) }, }, }), ], 1 ), _vm._v(" "), _c("van-divider", { style: { margin: "8px 0px", padding: "0 0px", height: "1px", }, }), ], 1 ) }), 0 ), ] ), ], 1 ), ], 1 ) } var downvue_type_template_id_1e855a88_scoped_true_staticRenderFns = [] downvue_type_template_id_1e855a88_scoped_true_render._withStripped = true ;// CONCATENATED MODULE: ./src/views/down.vue?vue&type=template&id=1e855a88&scoped=true& ;// CONCATENATED MODULE: external "JSZip" const external_JSZip_namespaceObject = JSZip; var external_JSZip_default = /*#__PURE__*/__webpack_require__.n(external_JSZip_namespaceObject); ;// CONCATENATED MODULE: ./src/utils/queue.js // 多个任务并行执行的队列 // https://juejin.cn/post/6844903961728647181 class Queue { constructor(workerLen, maxPictureNum, imgIndexBitNum, vue) { this.workerLen = workerLen || 3 // 同时执行的任务数 this.pictureNum = maxPictureNum || 2 // 章节最大下载图片数量 this.list = [] // 任务队列 this.worker = new Array(this.workerLen) // 正在执行的任务 this.workerDownInfo = new Array(this.workerLen) // 存储下载信息 this.imgIndexBitNum = imgIndexBitNum // 图片序号位数 this.Vue = vue } // 压缩下载方式 async downloadFile(fileName, content) { const url = window.URL.createObjectURL(content) await (0,utils/* downFile */.zd)(url, fileName) window.URL.revokeObjectURL(url) } /** * 执行一个任务 * @param { number } index */ async * exeDown(index) { const { readtype, downChapterName } = this.worker[index] const _this = this async function afterDown(index) { const { comicName, hasError } = _this.worker[index] const comicPageUrl = window.location.href let historyData = localStorage.getItem('ylComicDownHistory') || '[]' historyData = JSON.parse(historyData) const id = (new Date()).getTime() historyData.unshift({ id, comicName, downChapterName, comicPageUrl, hasError }) historyData = JSON.stringify(historyData) localStorage.setItem('ylComicDownHistory', historyData) _this.Vue.getHistoryData() _this.worker[index] = undefined // 休息下? setTimeout(() => { _this.run() }, 2000) } if (readtype === 1) { const { url, isPay } = this.worker[index] const processData = { url, isPay } let imgs = [] try { imgs = await (0,utils/* getImage */.gJ)(processData) } catch (error) { this.worker[index].hasError = true } imgs === [] ? this.worker[index].hasError = true : '' this.worker[index].imgs = imgs this.worker[index].totalNumber = imgs.length yield this.down(index) .then(function() { afterDown(index) }) // } else { yield this.down2(index) .then(function() { afterDown(index) }) } } /** * 添加到任务队列 * @param { Array<Array<any>> } list: 任务队列 */ addList(list) { for (const item of list) { this.list.unshift(item) } } refresh() { this.worker.splice(0, 0) } // 直接下载图片 Promise addImgDownPromise(index, imgurl, imgIndex, newHeaders, retryTimes) { const headers = { referer: this.worker[index].url } return new Promise((resolve, reject) => { const _this = this if (!imgurl) { _this.worker[index].progress = parseInt(_this.worker[index].imgIndex / _this.worker[index].totalNumber * 100) _this.refresh() resolve(false) } (0,utils/* request */.WY)({ method: 'get', url: imgurl, responseType: 'blob', headers: newHeaders || headers, timeout: 60 * 1000 }).then((res) => { const name = this.worker[index].comicName + '\\' + this.worker[index].downChapterName + '\\' + (0,utils/* addZeroForNum */.xo)(imgIndex, this.imgIndexBitNum) + '.' let suffix = this.getSuffix(res.finalUrl) _this.worker[index].successNum = _this.worker[index].successNum + 1 _this.worker[index].progress = parseInt(_this.worker[index].imgIndex / _this.worker[index].totalNumber * 100) _this.refresh() let newurl = '' if (res === 'onerror' || res === 'timeout') { if (retryTimes !== 2) { if (retryTimes === undefined) retryTimes = 0 return resolve(_this.addImgDownPromise(index, imgurl, imgIndex, newHeaders, ++retryTimes)) } _this.worker[index].hasError = true suffix = 'txt' const newBlob = new Blob([imgurl], { type: 'text/plain' }) newurl = window.URL.createObjectURL(newBlob) } else { newurl = window.URL.createObjectURL(res.response) } (0,utils/* downFile */.zd)(newurl, name + suffix).then((downRes) => { if (downRes) { resolve(true) } else { _this.worker[index].hasError = true resolve(false) } }) }) }) } // 请求图片Blob Promise (后用于压缩) addImgPromise(index, imgurl, newHeaders, retryTimes) { const headers = { referer: this.worker[index].url } return new Promise((resolve, reject) => { const _this = this if (imgurl === '' || imgurl === undefined) { _this.worker[index].hasError = true return resolve({ blob: 1, imgurl, suffix: '' }) } const suffix = this.getSuffix(imgurl) ;(0,utils/* request */.WY)({ method: 'get', url: imgurl, responseType: 'blob', headers: newHeaders || headers, timeout: 60 * 1000, onload: function(gmRes) { _this.worker[index].successNum = _this.worker[index].successNum + 1 _this.worker[index].progress = parseInt(_this.worker[index].imgIndex / _this.worker[index].totalNumber * 100) _this.refresh() resolve({ blob: gmRes.response, imgurl, suffix: suffix }) }, onerror: function(e) { if (retryTimes !== 2) { if (retryTimes === undefined) retryTimes = 0 return resolve(_this.addImgPromise(index, imgurl, newHeaders, ++retryTimes)) } _this.worker[index].hasError = true resolve({ blob: 1, imgurl, suffix: '' }) }, ontimeout: function() { if (retryTimes !== 2) { if (retryTimes === undefined) retryTimes = 0 return resolve(_this.addImgPromise(index, imgurl, newHeaders, ++retryTimes)) } resolve({ blob: 0, imgurl, suffix: '' }) } }) }) } /** * 下载图片 * @param { workerId } workerId: 任务id */ // 网站翻页阅读 async down2(workerId) { const { url, downType, totalNumber, isPay, imgIndex, downHeaders } = this.worker[workerId] const processData = { url, imgIndex, totalNumber, isPay } processData.otherData = this.worker[workerId].otherData const { imgUrlArr, nextPageUrl, imgCount, otherData } = await (0,utils/* getImage */.gJ)(processData) this.worker[workerId].otherData = otherData this.worker[workerId].totalNumber = parseInt(imgCount) const beforeDownLen = imgUrlArr.length // console.log('下载前', beforeDownLen, imgIndex, totalNumber) while (imgUrlArr.length > 0) { // eslint-disable-next-line prefer-const let promise = [] for (let index = this.pictureNum; index > 0; index--) { if (imgUrlArr[0] === undefined) { break } const imgIndex = ++this.worker[workerId].imgIndex if (downType) { promise.push(this.addImgPromise(workerId, imgUrlArr[0], downHeaders)) } else { promise.push(this.addImgDownPromise(workerId, imgUrlArr[0], imgIndex, downHeaders)) } imgUrlArr.shift() } const res = await Promise.all(promise) res.forEach(element => { this.workerDownInfo[workerId].push(element) }) } const newImgIndex = this.worker[workerId].imgIndex if (beforeDownLen !== 0 && nextPageUrl !== '' && newImgIndex < parseInt(imgCount)) { this.worker[workerId].url = nextPageUrl return new Promise((resolve, reject) => { // 休息一下? setTimeout(() => { resolve(this.down2(workerId)) }, 1000) }) } else { // 压缩 if (downType === 1) { const result = await this.makeZip(workerId) return new Promise((resolve, reject) => { resolve(result) }) } else if (downType === 2) { // 拼接 await this.combineImages(workerId) return new Promise((resolve, reject) => { resolve() }) } else { return new Promise((resolve, reject) => { resolve(1) }) } } } // 网站卷轴阅读 async down(workerId) { const { imgs, downType, downHeaders } = this.worker[workerId] const promise = [] let len = imgs.length let pictureNum = this.pictureNum while (pictureNum-- && len > 0) { // 是否压缩 const imgIndex = ++this.worker[workerId].imgIndex if (downType) { promise.push(this.addImgPromise(workerId, imgs[0], downHeaders)) } else { promise.push(this.addImgDownPromise(workerId, imgs[0], imgIndex, downHeaders)) } this.worker[workerId].imgs.shift() len-- } const res = await Promise.all(promise) res.forEach(element => { this.workerDownInfo[workerId].push(element) }) if (this.worker[workerId].imgs.length > 0) { return new Promise((resolve, reject) => { // 休息一下? setTimeout(() => { resolve(this.down(workerId)) }, 1000) }) } // 压缩 if (downType === 1) { const result = await this.makeZip(workerId) return new Promise((resolve, reject) => { resolve(result) }) } else if (downType === 2) { // 拼接 await this.combineImages(workerId) return new Promise((resolve, reject) => { resolve() }) } else { return new Promise((resolve, reject) => { resolve(1) }) } } // 分配并执行任务 async run() { const runIndex = [] for (let i = 0; i < this.workerLen; i++) { const len = this.list.length if (!this.worker[i] && len > 0) { // 需要执行的任务 const item = this.list[len - 1] const worker = { comicName: item.comicName, downChapterName: item.downChapterName, url: item.url, isPay: item.isPay, // 是否付费章节 imgIndex: 0, // 图片序号 successNum: 0, // 下载成功数量 totalNumber: 0, // 图片总数 imgs: [], progress: 0, // 进度百分比 readtype: item.readtype, // 阅读(下载)方式类型 func: this.exeDown(i), downType: item.downType, // 下载方式 0:直接 1:压缩 2:拼接 hasError: false, downHeaders: item.downHeaders, otherData: undefined // 自定义存储其他下载数据 } this.worker[i] = worker this.workerDownInfo[i] = [] this.list.pop() runIndex.push(i) } } // 执行任务 for (const index of runIndex) { this.worker[index].func.next() } } getSuffix(url) { if (url) { const testurl = url.toLowerCase() const imgtype = ['jpg', 'jpeg', 'webp', 'png', 'gif', 'bmp', 'tiff', 'svg', 'ico'] for (let i = 0; i < imgtype.length; i++) { const a = testurl.search(imgtype[i]) if (a !== -1) { return imgtype[i] } } // 可能网址没有图片后缀 return 'jpg' } return false } // 压缩 async makeZip(workerId) { const { comicName, downChapterName } = this.worker[workerId] return new Promise((resolve, reject) => { const zip = new (external_JSZip_default())() this.workerDownInfo[workerId].forEach((item, index) => { const imgblob = item.blob const suffix = item.suffix if (imgblob === 1 || imgblob === 0) { const txtBlob = new Blob([item.imgurl], { type: 'text/plain' }) zip.file((0,utils/* addZeroForNum */.xo)(index + 1, this.imgIndexBitNum) + '.txt', txtBlob, { blob: true }) return } zip.file((0,utils/* addZeroForNum */.xo)(index + 1, this.imgIndexBitNum) + '.' + suffix, imgblob, { blob: true }) }) zip.generateAsync({ type: 'blob', compression: 'DEFLATE', compressionOptions: { level: 9 } }).then((zipblob) => { const name = comicName + '\\' + downChapterName + '.zip' this.downloadFile(name, zipblob) resolve() return }) }) } async combineImages(workerId) { const maxSplicingHeight = (0,setup/* getStorage */.cF)('maxSplicingHeight') const { comicName, downChapterName } = this.worker[workerId] let imgNum = 0 let curHeight = 0 let totalHeight = 0 const saveImg = [] const _this = this async function asyncLoadImg(src) { return new Promise((resolve, reject) => { const img = document.createElement('img') img.onload = () => { resolve(img) } img.onerror = () => { const error = new Error(`图片加载失败,url:${src}`) console.log('combineImages-e: ', error) reject('') } img.src = src }) } async function asyncCanvas(canvas, name) { return new Promise((resolve, reject) => { canvas.toBlob(async function(imgblob) { await _this.downloadFile(name, imgblob) resolve() }, 'image/jpeg', 0.8) }) } for (let index = 0; index < this.workerDownInfo[workerId].length; index++) { const data = this.workerDownInfo[workerId][index] // 去除不是图片类型 if (data.blob === 1 || data.blob === 0 || !data.blob.type.includes('image')) { this.worker[workerId].hasError = true const error_name = comicName + '\\' + downChapterName + '\\error_' + (0,utils/* addZeroForNum */.xo)(index + 1, this.imgIndexBitNum) + '.txt' const imgurl = this.workerDownInfo[workerId][index].imgurl const newBlob = new Blob([imgurl], { type: 'text/plain' }) _this.downloadFile(error_name, newBlob) continue } const newurl = window.URL.createObjectURL(data.blob) const image = await asyncLoadImg(newurl) if (image === '') { continue } if (totalHeight === 0) { const obj = { num: imgNum, width: image.width, height: image.height, img: [image] } curHeight = image.height totalHeight += image.height saveImg.push(obj) continue } if (curHeight + image.height > maxSplicingHeight) { const newobj = { num: ++imgNum, width: image.width, height: image.height, img: [image] } curHeight = image.height saveImg.push(newobj) } else { curHeight += image.height saveImg[imgNum].height += image.height saveImg[imgNum].img.push(image) } totalHeight += image.height } const canvas = document.createElement('canvas') const context = canvas.getContext('2d') let offsetY = 0 for (let i = 0; i < saveImg.length; i++) { const item = saveImg[i] canvas.width = item.width canvas.height = item.height offsetY = 0 for (let len = 0; len < item.img.length; len++) { const element = item.img[len] context.drawImage(element, 0, offsetY, element.width, element.height) offsetY = offsetY + parseInt(element.height) } const name = comicName + '\\' + downChapterName + '\\' + (0,utils/* addZeroForNum */.xo)(item.num + 1, this.imgIndexBitNum) + '.jpg' await asyncCanvas(canvas, name) } return new Promise((resolve, reject) => { resolve(true) }) } } ;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/down.vue?vue&type=script&lang=js& // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /* harmony default export */ const downvue_type_script_lang_js_ = ({ name: 'Down', data() { return { collapseActiveName: ['1', '2', '3'], comicName: null, currentDomain: '当前记录 ' + (0,utils/* getdomain */.m1)(), queue: { 'worker': '', 'list': '', 'workeredList': '' }, maxChapterNum: 3, maxPictureNum: 2, imgIndexBitNum: 3, historyData: [] } }, watch: { }, mounted() { console.clear() this.$bus.$on('selectDown', this.downInit) }, created() { this.$bus.$on('getComicName', this.getComicName) this.getHistoryData() }, methods: { getComicName(value) { if (value !== '------') { this.comicName = value } }, downInit(arr) { if (this.queue.worker === '') { this.maxChapterNum = (0,setup/* getStorage */.cF)('maxChapterNum') this.maxPictureNum = (0,setup/* getStorage */.cF)('maxPictureNum') this.imgIndexBitNum = (0,setup/* getStorage */.cF)('imgIndexBitNum') this.queue = new Queue(this.maxChapterNum, this.maxPictureNum, this.imgIndexBitNum, this) } this.queue.addList(arr) this.queue.run() }, getHistoryData() { const data = localStorage.getItem('ylComicDownHistory') this.historyData = JSON.parse(data || '[]') }, deleteHistoryData(index, id) { this.historyData.splice(index, 1) let data = localStorage.getItem('ylComicDownHistory') let historyData = JSON.parse(data || '[]') historyData = historyData.filter((item) => item.id !== id) data = JSON.stringify(historyData) localStorage.setItem('ylComicDownHistory', data) }, deleteAllHistoryData() { external_vant_.Dialog.confirm({ getContainer: '.card', message: '确认全部删除' }) .then(() => { this.historyData.splice(0, this.historyData.length) localStorage.setItem('ylComicDownHistory', '[]') }) .catch(() => { // on cancel }) }, jump(url) { window.open(url, '_blank') // window.location.href = url } } }); ;// CONCATENATED MODULE: ./src/views/down.vue?vue&type=script&lang=js& /* harmony default export */ const views_downvue_type_script_lang_js_ = (downvue_type_script_lang_js_); // EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-3[0].rules[0].use[2]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/down.vue?vue&type=style&index=0&id=1e855a88&lang=less&scoped=true& var downvue_type_style_index_0_id_1e855a88_lang_less_scoped_true_ = __webpack_require__(961); ;// CONCATENATED MODULE: ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-3[0].rules[0].use[2]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/down.vue?vue&type=style&index=0&id=1e855a88&lang=less&scoped=true& var downvue_type_style_index_0_id_1e855a88_lang_less_scoped_true_options = {}; downvue_type_style_index_0_id_1e855a88_lang_less_scoped_true_options.styleTagTransform = (styleTagTransform_default()); downvue_type_style_index_0_id_1e855a88_lang_less_scoped_true_options.setAttributes = (setAttributesWithoutAttributes_default()); downvue_type_style_index_0_id_1e855a88_lang_less_scoped_true_options.insert = insertBySelector_default().bind(null, "head"); downvue_type_style_index_0_id_1e855a88_lang_less_scoped_true_options.domAPI = (styleDomAPI_default()); downvue_type_style_index_0_id_1e855a88_lang_less_scoped_true_options.insertStyleElement = (insertStyleElement_default()); var downvue_type_style_index_0_id_1e855a88_lang_less_scoped_true_update = injectStylesIntoStyleTag_default()(downvue_type_style_index_0_id_1e855a88_lang_less_scoped_true_/* default */.Z, downvue_type_style_index_0_id_1e855a88_lang_less_scoped_true_options); /* harmony default export */ const views_downvue_type_style_index_0_id_1e855a88_lang_less_scoped_true_ = (downvue_type_style_index_0_id_1e855a88_lang_less_scoped_true_/* default */.Z && downvue_type_style_index_0_id_1e855a88_lang_less_scoped_true_/* default.locals */.Z.locals ? downvue_type_style_index_0_id_1e855a88_lang_less_scoped_true_/* default.locals */.Z.locals : undefined); ;// CONCATENATED MODULE: ./src/views/down.vue?vue&type=style&index=0&id=1e855a88&lang=less&scoped=true& ;// CONCATENATED MODULE: ./src/views/down.vue ; /* normalize component */ var down_component = normalizeComponent( views_downvue_type_script_lang_js_, downvue_type_template_id_1e855a88_scoped_true_render, downvue_type_template_id_1e855a88_scoped_true_staticRenderFns, false, null, "1e855a88", null ) /* hot reload */ if (false) { var down_api; } down_component.options.__file = "src/views/down.vue" /* harmony default export */ const down = (down_component.exports); ;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/search.vue?vue&type=template&id=4ad41bb8&scoped=true& var searchvue_type_template_id_4ad41bb8_scoped_true_render = function () { var this$1 = this var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "div", { directives: [ { name: "show", rawName: "v-show", value: _vm.showSearchPage, expression: "showSearchPage", }, ], attrs: { id: "search-page" }, }, [ _c( "div", { attrs: { id: "search-page-top" } }, [ _c("van-sticky", [ _c( "div", { staticClass: "search-input-btn" }, [ _c("van-loading", { directives: [ { name: "show", rawName: "v-show", value: _vm.showSearchLoad, expression: "showSearchLoad", }, ], attrs: { color: "#ee0000", type: "spinner", size: "25" }, }), _vm._v(" "), _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.inputSeachword, expression: "inputSeachword", }, ], attrs: { type: "text", name: "searchword" }, domProps: { value: _vm.inputSeachword }, on: { keyup: function ($event) { if ( !$event.type.indexOf("key") && _vm._k($event.keyCode, "enter", 13, $event.key, "Enter") ) { return null } return _vm.search(_vm.inputSeachword) }, input: function ($event) { if ($event.target.composing) { return } _vm.inputSeachword = $event.target.value }, }, }), _vm._v(" "), _c( "van-button", { attrs: { size: "small" }, on: { click: function ($event) { return _vm.search(_vm.inputSeachword) }, }, }, [_vm._v("搜索")] ), ], 1 ), ]), _vm._v(" "), _c("van-icon", { attrs: { id: "close-search-btn", name: "close", color: "#66ccff" }, on: { click: function () { this$1.showSearchPage = !this$1.showSearchPage }, }, }), ], 1 ), _vm._v(" "), _c( "div", { attrs: { id: "search-page-bottom" } }, [ _c( "div", { directives: [ { name: "show", rawName: "v-show", value: _vm.showResult.length !== 0, expression: "showResult.length !== 0", }, ], }, [ _c( "van-collapse", { model: { value: _vm.activeNames, callback: function ($$v) { _vm.activeNames = $$v }, expression: "activeNames", }, }, _vm._l(_vm.showResult, function (item, index) { return _c( "van-collapse-item", { key: index, staticClass: "origin-list", attrs: { title: item.webName, name: index }, }, [ _c( "van-cell-group", { style: { textAlign: "left", background: "rgb(245 245 245 / 33%)", padding: "2px 0", }, }, _vm._l(item.findres, function (item2, index2) { return _c( "div", { key: index2, staticClass: "origin-image-list", attrs: { title: item2.name }, on: { click: function ($event) { return _vm.toResultWeb(item2.url) }, }, }, [ _c("van-image", { attrs: { width: "100", height: "150", src: item2.imageUrl, }, on: { error: function ($event) { return _vm.loadImgError(item2, item.webName) }, }, scopedSlots: _vm._u( [ { key: "loading", fn: function () { return [ _c("van-loading", { attrs: { type: "spinner", size: "25", }, }), ] }, proxy: true, }, ], null, true ), }), _vm._v(" "), _c("p", [_vm._v(_vm._s(item2.name))]), ], 1 ) }), 0 ), ], 1 ) }), 1 ), ], 1 ), _vm._v(" "), _c("van-empty", { directives: [ { name: "show", rawName: "v-show", value: _vm.showResult.length === 0, expression: "showResult.length === 0", }, ], attrs: { description: "搜索内容" }, }), ], 1 ), ] ) } var searchvue_type_template_id_4ad41bb8_scoped_true_staticRenderFns = [] searchvue_type_template_id_4ad41bb8_scoped_true_render._withStripped = true ;// CONCATENATED MODULE: ./src/components/search.vue?vue&type=template&id=4ad41bb8&scoped=true& ;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/search.vue?vue&type=script&lang=js& // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /* harmony default export */ const searchvue_type_script_lang_js_ = ({ name: 'SearchPage', data() { return { showSearchPage: false, inputSeachword: '', showSearchLoad: false, searchTime: 0, activeNames: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], searcKey: '', searchInfo: [], showResult: [], showSearchPart: false } }, watch: { 'searchInfo.length': { handler(newLen, oldLen) { if (newLen !== oldLen) { this.getSearchContent(newLen) } } } }, mounted() { this.$bus.$on('showSearchPage', () => { this.showSearchPage = !this.showSearchPage }) }, methods: { toResultWeb(url) { window.open(url, '_blank') }, async loadImgError(item, name) { const url = item.imageUrl item.imgErrorTime === undefined ? item.imgErrorTime = 0 : '' if (item.imgErrorTime !== 1) { const blob = await (0,utils/* request */.WY)({ method: 'get', url, responseType: 'blob', headers: item.headers || '', timeout: 10000 }) const newUrl = window.URL.createObjectURL(blob.response) item.imgErrorTime++ item.imageUrl = newUrl } }, getSearchContent(len) { const oneWebInfo = this.searchInfo[len - 1] this.showResult.push(oneWebInfo) }, async search(keyword) { if (keyword.length < 2) { (0,external_vant_.Toast)({ message: '至少2个字符', getContainer: '#search-page', position: 'center' }) return } this.searchTime++ const currentSearchTime = this.searchTime this.showSearchLoad = true this.showResult = [] for (let i = 0; i < comics/* comicsWebInfo.length */.Os.length; i++) { const item = comics/* comicsWebInfo */.Os[i] if (!item.searchTemplate_1 && !item.searchFun) { continue } let findres = [] if (item.searchTemplate_1) { try { findres = await (0,comics/* searchFunTemplate_1 */.Ni)(item, keyword) } catch (error) { (0,external_vant_.Toast)({ message: item.webName + '\n' + error, getContainer: '#search-page', position: 'center' }) } } if (!item.searchTemplate_1 && item.searchFun) { try { findres = await item.searchFun(keyword) } catch (error) { (0,external_vant_.Toast)({ message: item.webName + '\n' + error, getContainer: '#search-page', position: 'center' }) } } if (currentSearchTime === this.searchTime) { let showLen findres.length > 8 ? showLen = 8 : showLen = findres.length this.searchInfo.push({ webName: item.webName, findres: findres.slice(0, showLen) }) } } this.showSearchLoad = false } } }); ;// CONCATENATED MODULE: ./src/components/search.vue?vue&type=script&lang=js& /* harmony default export */ const components_searchvue_type_script_lang_js_ = (searchvue_type_script_lang_js_); // EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-3[0].rules[0].use[2]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/search.vue?vue&type=style&index=0&id=4ad41bb8&lang=less&scoped=true& var searchvue_type_style_index_0_id_4ad41bb8_lang_less_scoped_true_ = __webpack_require__(627); ;// CONCATENATED MODULE: ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-3[0].rules[0].use[2]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/search.vue?vue&type=style&index=0&id=4ad41bb8&lang=less&scoped=true& var searchvue_type_style_index_0_id_4ad41bb8_lang_less_scoped_true_options = {}; searchvue_type_style_index_0_id_4ad41bb8_lang_less_scoped_true_options.styleTagTransform = (styleTagTransform_default()); searchvue_type_style_index_0_id_4ad41bb8_lang_less_scoped_true_options.setAttributes = (setAttributesWithoutAttributes_default()); searchvue_type_style_index_0_id_4ad41bb8_lang_less_scoped_true_options.insert = insertBySelector_default().bind(null, "head"); searchvue_type_style_index_0_id_4ad41bb8_lang_less_scoped_true_options.domAPI = (styleDomAPI_default()); searchvue_type_style_index_0_id_4ad41bb8_lang_less_scoped_true_options.insertStyleElement = (insertStyleElement_default()); var searchvue_type_style_index_0_id_4ad41bb8_lang_less_scoped_true_update = injectStylesIntoStyleTag_default()(searchvue_type_style_index_0_id_4ad41bb8_lang_less_scoped_true_/* default */.Z, searchvue_type_style_index_0_id_4ad41bb8_lang_less_scoped_true_options); /* harmony default export */ const components_searchvue_type_style_index_0_id_4ad41bb8_lang_less_scoped_true_ = (searchvue_type_style_index_0_id_4ad41bb8_lang_less_scoped_true_/* default */.Z && searchvue_type_style_index_0_id_4ad41bb8_lang_less_scoped_true_/* default.locals */.Z.locals ? searchvue_type_style_index_0_id_4ad41bb8_lang_less_scoped_true_/* default.locals */.Z.locals : undefined); ;// CONCATENATED MODULE: ./src/components/search.vue?vue&type=style&index=0&id=4ad41bb8&lang=less&scoped=true& ;// CONCATENATED MODULE: ./src/components/search.vue ; /* normalize component */ var search_component = normalizeComponent( components_searchvue_type_script_lang_js_, searchvue_type_template_id_4ad41bb8_scoped_true_render, searchvue_type_template_id_4ad41bb8_scoped_true_staticRenderFns, false, null, "4ad41bb8", null ) /* hot reload */ if (false) { var search_api; } search_component.options.__file = "src/components/search.vue" /* harmony default export */ const search = (search_component.exports); ;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/app.vue?vue&type=script&lang=js& // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // import { request, downFile } from './utils/index' /* harmony default export */ const appvue_type_script_lang_js_ = ({ name: 'App', components: { Home: home, Table: table, Down: down, Setting: setting, Search: search }, data() { return { isHide: true, showSearchPage: false, active: 1, titles: ['漫画网站', '加载', '下载', '设置'], comicInfo: {} } }, computed: { current: function() { return this.active } }, watch: { active(val) { this.$refs.swipe.swipeTo(val) } }, created() { this.Init() }, mounted() { this.$bus.$on('changTab', (val) => { this.active = val }) }, methods: { hide() { this.isHide = !this.isHide }, async Init() { (0,comics/* matchWeb */.HL)(window.location.href) }, async test() { } } }); ;// CONCATENATED MODULE: ./src/app.vue?vue&type=script&lang=js& /* harmony default export */ const src_appvue_type_script_lang_js_ = (appvue_type_script_lang_js_); // EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/app.vue?vue&type=style&index=0&id=5ef48958&lang=scss&scoped=true& var appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_ = __webpack_require__(857); ;// CONCATENATED MODULE: ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/app.vue?vue&type=style&index=0&id=5ef48958&lang=scss&scoped=true& var appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_options = {}; appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_options.styleTagTransform = (styleTagTransform_default()); appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_options.setAttributes = (setAttributesWithoutAttributes_default()); appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_options.insert = insertBySelector_default().bind(null, "head"); appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_options.domAPI = (styleDomAPI_default()); appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_options.insertStyleElement = (insertStyleElement_default()); var appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_update = injectStylesIntoStyleTag_default()(appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_/* default */.Z, appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_options); /* harmony default export */ const lib_vue_loader_options_src_appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_ = (appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_/* default */.Z && appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_/* default.locals */.Z.locals ? appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_/* default.locals */.Z.locals : undefined); ;// CONCATENATED MODULE: ./src/app.vue?vue&type=style&index=0&id=5ef48958&lang=scss&scoped=true& // EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-3[0].rules[0].use[2]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/app.vue?vue&type=style&index=1&id=5ef48958&lang=less&scoped=true& var appvue_type_style_index_1_id_5ef48958_lang_less_scoped_true_ = __webpack_require__(658); ;// CONCATENATED MODULE: ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-3[0].rules[0].use[2]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/app.vue?vue&type=style&index=1&id=5ef48958&lang=less&scoped=true& var appvue_type_style_index_1_id_5ef48958_lang_less_scoped_true_options = {}; appvue_type_style_index_1_id_5ef48958_lang_less_scoped_true_options.styleTagTransform = (styleTagTransform_default()); appvue_type_style_index_1_id_5ef48958_lang_less_scoped_true_options.setAttributes = (setAttributesWithoutAttributes_default()); appvue_type_style_index_1_id_5ef48958_lang_less_scoped_true_options.insert = insertBySelector_default().bind(null, "head"); appvue_type_style_index_1_id_5ef48958_lang_less_scoped_true_options.domAPI = (styleDomAPI_default()); appvue_type_style_index_1_id_5ef48958_lang_less_scoped_true_options.insertStyleElement = (insertStyleElement_default()); var appvue_type_style_index_1_id_5ef48958_lang_less_scoped_true_update = injectStylesIntoStyleTag_default()(appvue_type_style_index_1_id_5ef48958_lang_less_scoped_true_/* default */.Z, appvue_type_style_index_1_id_5ef48958_lang_less_scoped_true_options); /* harmony default export */ const lib_vue_loader_options_src_appvue_type_style_index_1_id_5ef48958_lang_less_scoped_true_ = (appvue_type_style_index_1_id_5ef48958_lang_less_scoped_true_/* default */.Z && appvue_type_style_index_1_id_5ef48958_lang_less_scoped_true_/* default.locals */.Z.locals ? appvue_type_style_index_1_id_5ef48958_lang_less_scoped_true_/* default.locals */.Z.locals : undefined); ;// CONCATENATED MODULE: ./src/app.vue?vue&type=style&index=1&id=5ef48958&lang=less&scoped=true& ;// CONCATENATED MODULE: ./src/app.vue ; /* normalize component */ var app_component = normalizeComponent( src_appvue_type_script_lang_js_, render, staticRenderFns, false, null, "5ef48958", null ) /* hot reload */ if (false) { var app_api; } app_component.options.__file = "src/app.vue" /* harmony default export */ const app = (app_component.exports); // EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/styles/global.scss var global = __webpack_require__(452); ;// CONCATENATED MODULE: ./src/styles/global.scss var global_options = {}; global_options.styleTagTransform = (styleTagTransform_default()); global_options.setAttributes = (setAttributesWithoutAttributes_default()); global_options.insert = insertBySelector_default().bind(null, "head"); global_options.domAPI = (styleDomAPI_default()); global_options.insertStyleElement = (insertStyleElement_default()); var global_update = injectStylesIntoStyleTag_default()(global/* default */.Z, global_options); /* harmony default export */ const styles_global = (global/* default */.Z && global/* default.locals */.Z.locals ? global/* default.locals */.Z.locals : undefined); // EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-3[0].rules[0].use[2]!./src/styles/global.less var cjs_clonedRuleSet_3_0_rules_0_use_2_src_styles_global = __webpack_require__(205); ;// CONCATENATED MODULE: ./src/styles/global.less var styles_global_options = {}; styles_global_options.styleTagTransform = (styleTagTransform_default()); styles_global_options.setAttributes = (setAttributesWithoutAttributes_default()); styles_global_options.insert = insertBySelector_default().bind(null, "head"); styles_global_options.domAPI = (styleDomAPI_default()); styles_global_options.insertStyleElement = (insertStyleElement_default()); var styles_global_update = injectStylesIntoStyleTag_default()(cjs_clonedRuleSet_3_0_rules_0_use_2_src_styles_global/* default */.Z, styles_global_options); /* harmony default export */ const src_styles_global = (cjs_clonedRuleSet_3_0_rules_0_use_2_src_styles_global/* default */.Z && cjs_clonedRuleSet_3_0_rules_0_use_2_src_styles_global/* default.locals */.Z.locals ? cjs_clonedRuleSet_3_0_rules_0_use_2_src_styles_global/* default.locals */.Z.locals : undefined); // EXTERNAL MODULE: ./src/config/index.js var config = __webpack_require__(758); ;// CONCATENATED MODULE: ./src/main.js /* eslint-disable no-undef */ var id = null var appLoadDefault = null var tryLoadTimes = 0 loadMenu(tryLoadTimes) function loadMenu() { tryLoadTimes += 1 try { appLoadDefault = (0,setup/* getStorage */.cF)('appLoadDefault') GM_registerMenuCommand(`加载UI (Alt + ${appLoadDefault.loadHotKey})`, loadUI) GM_registerMenuCommand(`重置所有数据`, setup/* setinit */.zU) document.addEventListener('keydown', (e) => { if (e.altKey && e.key.toUpperCase() === appLoadDefault.loadHotKey.toUpperCase()) { loadUI(0) } }) if (appLoadDefault.isShowUI) { loadUI(0) } } catch (error) { console.log('loadError: ', error) loadUI(tryLoadTimes) } } async function loadUI(times) { if (id !== null) { return } if (!config/* isDev */.r8) { (0,setup/* appLoadinit */.Iq)() // 首次运行脚本无存储数据,无加载菜单, 重新载入 if (times === 1) { loadMenu() return } } var Vant = await Promise.resolve(/* import() */).then(__webpack_require__.t.bind(__webpack_require__, 871, 23)) // import ('vant/lib/index.css') external_Vue_default().use(Vant) id = `app_vue_${Date.now()}` const root = document.createElement('div') root.id = id document.body.appendChild(root) ;(external_Vue_default()).prototype.$bus = new (external_Vue_default())() ;(external_Vue_default()).prototype.$getType = utils/* getType */.oL if (config/* isDev */.r8) { (0,utils/* loadStyle2 */.HM)('https://unpkg.com/[email protected]/lib/index.css').then((res) => { new (external_Vue_default())({ el: `#${id}`, render: h => h(app) }) }) } else { // eslint-disable-next-line no-undef GM_addStyle(GM_getResourceText('vantcss')) new (external_Vue_default())({ el: `#${id}`, render: h => h(app) }) } } })(); /******/ })() ;
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址