您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
提供漫画搜索、漫画分章节下载(可直接下载/压缩下载)并记录下载历史,适用于 酷漫屋、百漫谷、哔哩哔哩、武侠漫画、动漫之家、七夕漫画、36漫画网、古风漫画网、腾讯漫画、新新漫画、滴滴漫画、好看的漫画网、动漫戏说、漫画星球、好漫8、漫画屋、27漫画网、最漫画、前未漫画、六漫画、漫画芯、包子漫画、爱国漫、漫画猫等网站章节下载;对个别漫画网站修改阅读样式;可按需编写规定的定义规则JSON导入以支持其他漫画网站;
当前为
// ==UserScript== // @name 10图漫(搜索|下载) // @namespace http://tampermonkey2.net/ // @version 1.3.1 // @description 提供漫画搜索、漫画分章节下载(可直接下载/压缩下载)并记录下载历史,适用于 酷漫屋、百漫谷、哔哩哔哩、武侠漫画、动漫之家、七夕漫画、36漫画网、古风漫画网、腾讯漫画、新新漫画、滴滴漫画、好看的漫画网、动漫戏说、漫画星球、好漫8、漫画屋、27漫画网、最漫画、前未漫画、六漫画、漫画芯、包子漫画、爱国漫、漫画猫等网站章节下载;对个别漫画网站修改阅读样式;可按需编写规定的定义规则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 // @resource vantcss https://unpkg.com/[email protected]/lib/index.css // @require https://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.min.js // @require https://unpkg.com/[email protected]/lib/vant.min.js // @require https://cdn.bootcdn.net/ajax/libs/jszip/3.7.1/jszip.min.js // // @match *://www.kumw5.com/* // @connect kumw5.com // // @match *://*.darpou.com/* // @connect darpou.com // @connect manga8.xyz // // @match *://m.wuxiamh.com/* // @match *://www.wuxiamh.com/* // @connect wuxiamh.com // @connect 169gouwu.com // // @match *://*.dmzj.com/* // @connect dmzj.com // // @match *://qiximh1.com/* // @connect qiximh1.com // @connect byteimg.com // // @match *://www.36manga.com/* // @connect arc-theday.com // // @match *://www.gufengmanhua.com/* // @connect gufengmanhua.com // @match *://www.123gf.com/* // @connect 123gf.com // @connect xiaoqinre.com // @connect bdstatic.com // // @match *://ac.qq.com/* // @connect ac.qq.com // @connect acimg.cn // // @match *://www.mhxqiu1.com/* // @connect mhxqiu1.com // @connect byteimg.com // // @match *://www.haoman8.com/* // @connect haoman8.com // // @match *://www.mh5.org/* // @connect mh5.org // @connect xiaomingtaiji.net // // @match *://www.2mzx.com/* // @connect 2mzx.com // @connect hnsrht.com // @connect huayingrenren.cn // // @match *://www.zuimh.com/* // @connect zuimh.com // @connect pinmh.com // @connect ejujiu.com // @connect dodomh.com // // @match *://www.qianwee.com/* // @connect qianwee.com // @connect szssjg.com // // @match *://www.sixmh7.com/* // @connect ixmh7.com // @connect byteimg.com // // @match *://www.mhxin.com/* // @connect mhxin.com // // @match *://cn.baozimh.com/* // @connect baozimh.com // @connect webmota.com // // @match *://www.aiguoman.com/* // @connect kingwar.cn // @connect aiguoman.com // // @match *://comic.acgn.cc/* // @connect acgn.cc // // @match *://www.77mh.xyz/* // @connect 77mh.xyz // @connect dm365.top // // @match *://www.txydd.com/* // @connect txydd.com // @connect qdjljy.com // // @match *://www.cnanjie.com/* // @connect cnanjie.com // // @match *://www.maofly.com/* // @connect maofly.com // @connect mhtupian.com // // @match *://manga.bilibili.com/* // @connect bilibili.com // @connect hdslb.com // // @connect * // @connect laimidao.com // @connect izhegu.com // @connect nicefee.com // @connect dcarimg.com // @connect baozimh.com // @license GPLv3 // ==/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-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: 12px !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-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: 12px !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, ".app .app-container{background-color:#f8f8f8;padding:10px}.app ::-webkit-scrollbar{width:4px;height:5px;border-radius:15px;-webkit-border-radius:15px}.app ::-webkit-scrollbar-track-piece{border-radius:15px;-webkit-border-radius:15px}.app ::-webkit-scrollbar-thumb:vertical{height:5px;background-color:rgba(102,204,255,0.533333);border-radius:15px;-webkit-border-radius:15px}.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, ".card[data-v-5ef48958] {\n position: fixed;\n z-index: 999999 !important;\n right: 0;\n top: 50%;\n height: 800px;\n width: 420px !important;\n background-color: #f8f8f8;\n transform: translateY(-50%);\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: 420px;\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 right: -415px;\n}\n.card--hide .card__btn[data-v-5ef48958] {\n right: 420px;\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-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: 12px !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-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: 12px !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-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: 12px !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 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 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-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: 12px !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-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: 12px !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[data-v-234d1526] {\n display: flex;\n}\n.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 flex-direction: row;\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 padding: 10px 1px;\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 .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 #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: 10px;\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-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: 12px !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}\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-1[data-v-657d4b24] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n background-color: #fff;\n padding: 0 10px 0 10px;\n height: 30px;\n border-bottom: 1px solid #ccc5;\n border-radius: 10px;\n}\n#select-list #select-list-1 #select-list-1-left[data-v-657d4b24] {\n display: flex;\n width: 90px;\n justify-content: space-between;\n align-items: center;\n}\n#select-list #select-list-1 #select-list-1-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-2[data-v-657d4b24] {\n overflow: hidden;\n}\n#select-list #select-list-2 #select-list-2-1[data-v-657d4b24] {\n max-height: 590px;\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 .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-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: 12px !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:12px;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, __unused_webpack_exports, __webpack_require__) => { var isOldIE = function isOldIE() { var memo; return function memorize() { if (typeof memo === 'undefined') { // Test for IE <= 9 as proposed by Browserhacks // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805 // Tests for existence of standard globals is to allow style-loader // to operate correctly into non-standard environments // @see https://github.com/webpack-contrib/style-loader/issues/177 memo = Boolean(window && document && document.all && !window.atob); } return memo; }; }(); var getTarget = function getTarget() { var memo = {}; return function memorize(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]; }; }(); 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 index = getIndexByIdentifier(identifier); var obj = { css: item[1], media: item[2], sourceMap: item[3] }; if (index !== -1) { stylesInDom[index].references++; stylesInDom[index].updater(obj); } else { stylesInDom.push({ identifier: identifier, updater: addStyle(obj, options), references: 1 }); } identifiers.push(identifier); } return identifiers; } function insertStyleElement(options) { var style = document.createElement('style'); var attributes = options.attributes || {}; if (typeof attributes.nonce === 'undefined') { var nonce = true ? __webpack_require__.nc : 0; if (nonce) { attributes.nonce = nonce; } } Object.keys(attributes).forEach(function (key) { style.setAttribute(key, attributes[key]); }); if (typeof options.insert === 'function') { options.insert(style); } else { var target = getTarget(options.insert || 'head'); 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); } return style; } function removeStyleElement(style) { // istanbul ignore if if (style.parentNode === null) { return false; } style.parentNode.removeChild(style); } /* istanbul ignore next */ var replaceText = function replaceText() { var textStore = []; return function replace(index, replacement) { textStore[index] = replacement; return textStore.filter(Boolean).join('\n'); }; }(); function applyToSingletonTag(style, index, remove, obj) { var css = remove ? '' : obj.media ? "@media ".concat(obj.media, " {").concat(obj.css, "}") : obj.css; // For old IE /* istanbul ignore if */ if (style.styleSheet) { style.styleSheet.cssText = replaceText(index, css); } else { var cssNode = document.createTextNode(css); var childNodes = style.childNodes; if (childNodes[index]) { style.removeChild(childNodes[index]); } if (childNodes.length) { style.insertBefore(cssNode, childNodes[index]); } else { style.appendChild(cssNode); } } } function applyToTag(style, options, obj) { var css = obj.css; var media = obj.media; var sourceMap = obj.sourceMap; if (media) { style.setAttribute('media', media); } else { style.removeAttribute('media'); } 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 */ if (style.styleSheet) { style.styleSheet.cssText = css; } else { while (style.firstChild) { style.removeChild(style.firstChild); } style.appendChild(document.createTextNode(css)); } } var singleton = null; var singletonCounter = 0; function addStyle(obj, options) { var style; var update; var remove; if (options.singleton) { var styleIndex = singletonCounter++; style = singleton || (singleton = insertStyleElement(options)); update = applyToSingletonTag.bind(null, style, styleIndex, false); remove = applyToSingletonTag.bind(null, style, styleIndex, true); } else { style = insertStyleElement(options); update = applyToTag.bind(null, style, options); remove = function remove() { removeStyleElement(style); }; } update(obj); return function updateStyle(newObj) { if (newObj) { if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) { return; } update(obj = newObj); } else { remove(); } }; } module.exports = function (list, options) { options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style> // tags it will allow on a page if (!options.singleton && typeof options.singleton !== 'boolean') { options.singleton = isOldIE(); } list = list || []; var lastIdentifiers = modulesToDom(list, options); return function update(newList) { newList = newList || []; if (Object.prototype.toString.call(newList) !== '[object Array]') { return; } 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; }; }; /***/ }), /***/ 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.3.1" 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: true, loadHotKey: 'V' // alt + loadHotKey }, maxChapterNum: 2, maxPictureNum: 3, zipDownFlag: true, imgIndexBitNum: 3, imgSplicingFlag: true, downHistory: '[]', userWebInfo: [] } // 废弃变量 暂无 const abandonDefault = [] const appLoadinit = () => { if (_config_index__WEBPACK_IMPORTED_MODULE_0__/* .isDev */ .r8) { return } // 如条件全为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) => { 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 } = 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 } const { responseText } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('get', searchUrl) const dom = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .parseToDOM */ .U3)(responseText).querySelector(alllist_dom_css) const domList = dom.querySelectorAll(minlist_dom_css) // 调试使用 // data.webName === '' ? console.log(domList) : '' 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) { const reg2 = eval('/' + img_src + `=('|")(.*?)('|")` + '/') obj.imageUrl = element.innerHTML.match(reg2)[2] // 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: 'ac.qq.com', homepage: 'https://ac.qq.com/', webName: '腾讯漫画', comicNameCss: '.works-intro-title.ui-left strong', chapterCss: '.chapter-page-all.works-chapter-list', readtype: 1, hasSpend: true, freeCss: '.ui-icon-free', payCss: '.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: 'manhua.dmzj.com', homepage: 'https://manhua.dmzj.com/', webName: '动漫之家', comicNameCss: '.odd_anim_title_m .anim_title_text h1', chapterCss: '.cartoon_online_border', readtype: 1, searchTemplate_1: { search_add_url: 'tags/search.shtml?s=', alllist_dom_css: '.tcaricature_block', minlist_dom_css: 'ul', 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] let imgArray = JSON.parse(imgStr) if (imgArray[0].search('http') === -1) { imgArray = imgArray.map((item) => { return 'https://images.dmzj.com/' + item }) } return imgArray } }, { domain: 'www.dmzj.com', homepage: 'https://www.dmzj.com/', webName: '动漫之家2', comicNameCss: '.comic_deCon h1 a', chapterCss: '.tab-content-selected .list_con_li.autoHeight', readtype: 1, 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(/page_url":"(.*?)","sum_pages/)[1] let imgArray = imgStr.split('\\r\\n') if (imgArray[0].search('http') === -1) { imgArray = imgArray.map((item) => { return 'https://images.dmzj.com/' + item.replace(/\\/g, '') }) } return imgArray } }, { domain: 'www.kumw5.com', homepage: 'http://www.kumw5.com/', webName: '酷漫屋', comicNameCss: '.info h1', chapterCss: '#detail-list-select-1', readtype: 1, iswork: 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) { const reg = /var km[^>]*_img_url='[^>]*'/gi const s1 = context.match(reg) const base64Context = s1[0].match(/'(\S*)'/)[1] let imgstr = window.atob(base64Context) imgstr = eval(imgstr).toString() const imgArray = imgstr.matchAll(/(http[\s\S]+?),/g) const imgUrl = [] for (const item of imgArray) { imgUrl.push(item[1]) } return imgUrl } }, { domain: 'manga.bilibili.com', homepage: 'https://manga.bilibili.com/', webName: '哔哩哔哩', comicNameCss: '.manga-info h1.manga-title', chapterCss: '.episode-list .list-header', 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) 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 = 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: element.short_title + ' ' + element.title, url, readtype: this.readtype, isPay: element.is_locked } allList.push(data) }) return allList.reverse() }, getImgs: async function(context, passData) { const { url, isPay } = passData 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.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: 'darpou.com', homepage: 'https://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, 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: 'm.wuxiamh.com', homepage: 'https://m.wuxiamh.com/', webName: '武侠漫画(手机)', comicNameCss: '.view-sub.autoHeight .title', chapterCss: '#chapter-list-1', readtype: 0, iswork: false, nextpageRgeCss: '.action-list li:nth-child(3) a', getImgs: async function(context) { const imgobj = context.matchAll(/><mip-img src="(https:\/\/[\s\S]+?(jpg|webp))/g) const imgUrl = [] for (const item of imgobj) { imgUrl.push(item[1]) } const number = context.match(/<span id="k_total" class="curPage">(\d+)<\/span>/)[1] const context1 = context.match(/class="action-list">[\s\S]+?<mip-link href="(https:\/\/[\s\S]+?html)">下一页/g)[0] let nextPageUrl = context1.match(/http(\S*)html/g)[2] nextPageUrl = nextPageUrl.indexOf('-') !== -1 ? nextPageUrl : '' return { imgUrl, nextPageUrl, number } } }, { domain: 'www.wuxiamh.com', homepage: 'https://www.wuxiamh.com/', webName: '武侠漫画网(电脑)', comicNameCss: '.title h1', chapterCss: '#chapter-list-1', readtype: 1, iswork: false, searchTemplate_1: { search_add_url: 'search/?keywords=', alllist_dom_css: 'div.dmList ul', 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: 'qiximh1.com', homepage: 'http://qiximh1.com/', webName: '七夕漫画', comicNameCss: '.comic_name .name', chapterCss: '.catalog_list.row_catalog_list', readtype: 1, searchFun: async function(keyword) { const searchUrl = 'http://qiximh1.com/search.php' const data = new FormData() data.append('keyword', keyword) const { responseText } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('post', searchUrl, data) const resJson = JSON.parse(responseText) const searchList = [] resJson.search_data.forEach(element => { const obj = {} obj.name = element.name obj.url = this.homepage + element.id + '/' obj.imageUrl = element.imgs searchList.push(obj) }) return new Promise((resolve, reject) => { resolve(searchList) }) }, getImgs: 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] const imgArray = JSON.parse(imgStr) return imgArray } }, { 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, iswork: false, 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.gufengmanhua.com', homepage: 'https://www.gufengmanhua.com/', webName: '古风漫画网', comicNameCss: '.book-title h1 span', chapterCss: '#chapter-list-1,#chapter-list-10', readtype: 1, searchTemplate_1: { search_add_url: 'search/?keywords=', alllist_dom_css: '.book-list', minlist_dom_css: 'li', img_src: 'src' }, getImgs: function(context) { const imgStr = context.match(/chapterImages = ([\s\S]+?);var chapterPath/)[1] let imgarr = JSON.parse(imgStr) if (imgarr[0].search('http') === -1) { imgarr = imgarr.map((item) => { return 'https://res5.gufengmanhua.com' + item }) } return imgarr } }, { domain: 'www.123gf.com', homepage: 'https://www.123gf.com/', webName: '古风漫画网 2', comicNameCss: '.book-title h1 span', chapterCss: '#chapter-list-1,#chapter-list-10', readtype: 1, readCssText: '.img_info {display: none;}.tbCenter img {border: 0px;}', 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]) if (imgarr[0].search('http') === -1) { imgarr = imgarr.map((item) => { return imageDomian + '/' + strArr[1] + item }) } return imgarr } }, { domain: 'www.txydd.com', homepage: 'http://www.txydd.com/', webName: '滴滴漫画', comicNameCss: '.content h1', chapterCss: '#j_chapter_list', readtype: 1, getImgs: async function(context) { const group = context.matchAll(/chapter-pid(\s|\S)*?(src)="(.*?)"/g) const imgArray = [] for (const item of group) { imgArray.push(item[3]) } return imgArray } }, { domain: 'www.cnanjie.com', homepage: 'https://www.cnanjie.com/', webName: '好看的漫画网', comicNameCss: '.title h1', chapterCss: '#chapter-list-1', readtype: 1, searchTemplate_1: { search_add_url: 'search/?keywords=', alllist_dom_css: '#dmList ul', 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]) } let imgarr = JSON.parse(strArr[0]) if (imgarr[0].search('http') === -1) { 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) => { return imageDomian + item }) } return imgarr } }, { 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.mhxqiu1.com', homepage: 'http://www.mhxqiu1.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.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 } }, { 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.2mzx.com', homepage: 'https://www.2mzx.com/', webName: '27漫画网', comicNameCss: '.bar .position strong', chapterCss: '#play_0 #chapter-list-1', readtype: 1, iswork: false, 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.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.qianwee.com', homepage: 'https://www.qianwee.com/', webName: '前未漫画', comicNameCss: '.comic_deCon.autoHeight h1', chapterCss: '.zj_list_con #chapter-list-1', readtype: 1, readCssText: '.img_info {display: none;}.comic_wraCon img {border: 0px;margin-top:0px;}', 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.sixmh7.com', homepage: 'http://www.sixmh7.com/', webName: '六漫画', comicNameCss: '#intro_l > div.cy_title > h1', chapterCss: '.cy_zhangjie .cy_plist', readtype: 1, 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] const imgArray = JSON.parse(imgStr) return imgArray } }, { 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]) if (imgarr[0].search('http') === -1) { 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) => { return imageDomian + '/' + strArr[1] + 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)', readtype: 1, searchTemplate_1: { search_add_url: 'search/?keyword=', alllist_dom_css: '.pure-g.classify-items', minlist_dom_css: 'div.comics-card', 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.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.maofly.com', homepage: 'https://www.maofly.com/', webName: '漫画猫', comicNameCss: 'h1.comic-title', chapterCss: 'ol.links-of-books.num_div', readtype: 1, webState: 2, searchTemplate_1: { search_add_url: 'search.html?q=', alllist_dom_css: '.comic-main-section.bg-white .row.m-0', minlist_dom_css: 'div.col-4', img_src: 'data-original' }, getImgs: async function(context) { const img_data = context.match(/let img_data = "(.*?)"/)[1] const asset_domain = context.match(/data-chapter-domain="(.*?)"/)[1] const { responseText } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('get', this.homepage + 'static/js/string.min.js') const LZStringFun = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(responseText, /(function[\s\S]+?return \S})(\(\))/g) const img_data_arr = LZStringFun.decompressFromBase64(img_data).split(',') let imgArray = [] imgArray = img_data_arr.map((item) => { return asset_domain + '/uploads/' + item }) 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 (comicsWebInfo[i].domain === 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 (userWebInfo[a].domain === hname) { currentComics = userWebInfo[a] break } } if (currentComics !== null && typeof currentComics.getImgs === 'string') { // eslint-disable-next-line no-eval currentComics.getImgs = eval('(function(){return ' + currentComics.getImgs + ' })()') } } } /***/ }), /***/ 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 */ "U3": () => (/* binding */ parseToDOM), /* harmony export */ "WY": () => (/* binding */ request), /* harmony export */ "Xr": () => (/* binding */ loadStyle), /* harmony export */ "gJ": () => (/* binding */ getImage), /* harmony export */ "xo": () => (/* binding */ addZeroForNum), /* harmony export */ "zd": () => (/* binding */ downFile) /* harmony export */ }); /* unused harmony export getDataType */ /* harmony import */ var _utils_comics__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(872); 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) }) } const getDataType = (obj) => { const type = typeof obj if (type !== 'object') { return type } return Object.prototype.toString.call(obj).replace(/^\[object (\S+)\]$/, '$1') } const getImage = async(url, isPay) => { try { let response = '' if (!_utils_comics__WEBPACK_IMPORTED_MODULE_0__/* .currentComics.getComicInfo */ .Po.getComicInfo) { const data = await request({ method: 'get', url, useCookie: isPay }) response = data.response } const imgs = await _utils_comics__WEBPACK_IMPORTED_MODULE_0__/* .currentComics.getImgs */ .Po.getImgs(response, { url, isPay }) return new Promise((resolve, reject) => { resolve(imgs) }) } catch (error) { console.log('getImageError: ', error) return new Promise((resolve, reject) => { reject([]) }) } } const request = async(...details) => { let method, url, data, responseType, timeout, useCookie, cookie if (details.length === 1) { ({ method, url, data, responseType, timeout, useCookie } = details[0]) useCookie ? cookie = document.cookie : '' } else { method = details[0] url = details[1] data = details[2] } return new Promise((resolve, reject) => { // eslint-disable-next-line no-undef GM_xmlhttpRequest({ method, url, data: (data || null), responseType, timeout: (timeout || 15 * 1000), cookie: (cookie || ''), onload: function(res) { resolve(res) }, onerror: function(e) { reject('onerror') }, ontimeout: function() { reject('timeout') } }) }) } const downFile = async(url, name) => { return new Promise((resolve, reject) => { // eslint-disable-next-line no-undef GM_download({ url, name, onload: result => { resolve(true) }, onerror: result => { resolve(false) }, ontimeout: result => { 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 parseToDOM = (str) => { var div = document.createElement('div') if (typeof str === 'string') { div.innerHTML = str } return div } const funstrToData = (str, reg) => { const group = str.matchAll(reg) const func = [] for (const item of group) { func.push(item[1]) func.push(item[2]) } const code = '(' + func[0] + ')' + func[1] // eslint-disable-next-line no-eval const data = eval(code) return data } /***/ }), /***/ 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: "app" }, [ _c( "div", { staticClass: "card", class: { "card--hide": _vm.isHide } }, [ _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.iswork === false ? _c("van-icon", { attrs: { title: "?可访问 ?", name: "info-o", color: "red", }, }) : _vm._e(), _vm._v(" "), item.webState === 2 ? _c("van-icon", { attrs: { title: "?较多图片地址失效 ?", 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.iswork === false ? _c("van-icon", { attrs: { title: "?可访问 ?", name: "info-o", color: "red", }, }) : _vm._e(), _vm._v(" "), item.webState === 2 ? _c("van-icon", { attrs: { title: "?较多图片地址失效 ?", 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 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/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.insert = "head"; options.singleton = false; 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.locals */.Z.locals || {}); ;// 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: "30%", 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", width: "250px", margin: "10px auto" }, attrs: { title: "选项", inset: "" }, }, [ _c("van-cell", { attrs: { title: "本次压缩下载" }, scopedSlots: _vm._u([ { key: "right-icon", fn: function () { return [ _c("van-checkbox", { staticClass: "rightbutton", attrs: { "label-position": "left" }, model: { value: _vm.zipDownFlag, callback: function ($$v) { _vm.zipDownFlag = $$v }, expression: "zipDownFlag", }, }), ] }, 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-1" } }, [ _vm._m(0), _vm._v(" "), _c( "div", { attrs: { id: "select-list-1-right" } }, [ _c("van-icon", { style: { cursor: "pointer" }, attrs: { name: "sort", color: "#ee000088", size: "18" }, on: { click: _vm.reverseList }, }), ], 1 ), ]), _vm._v(" "), _c( "div", { attrs: { id: "select-list-2" } }, [ _c( "van-cell-group", { attrs: { id: "select-list-2-1", inset: "" } }, [ _c( "van-checkbox-group", { ref: "checkboxGroup", model: { value: _vm.selectResult, callback: function ($$v) { _vm.selectResult = $$v }, expression: "selectResult", }, }, _vm._l(_vm.list, function (item, index) { return _c("van-cell", { key: index, style: _vm.titleStyle(item.url, item.isPay), attrs: { title: item.chapterName }, scopedSlots: _vm._u( [ { 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(index) }, }, }), ] }, proxy: true, }, ], null, true ), }) }), 1 ), ], 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-1-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: "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: 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: [], selectResult: [], downResult: [], minListIndex: null, maxListIndex: null, onShfit: false, showSelectList: false, overlayShow: false, show: false, currentComics: '', webname: '未匹配', comicName: '------', paylogoArr: [], zipDownFlag: true } }, computed: { }, mounted() { this.watchKeyEvent() this.getInfo() }, methods: { titleStyle: function(url, isPay) { if (url === 'javascript:void();') { return { color: '#ccc' } } if (isPay === true) { return { color: 'red' } } return `color: blue` }, 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 setTimeout(() => { this.comicName = document.querySelector(comicNameCss).innerText this.$bus.$emit('getComicName', this.comicName) }, 1000) // this.zipDownFlag = (0,setup/* getStorage */.cF)('zipDownFlag') // eslint-disable-next-line no-empty } catch (error) { if (times === undefined) { setTimeout(() => { this.getInfo(1) }, 2000) } console.log('error: ', error) } return }, reverseList() { this.overlayShow = true this.list = this.list.reverse() this.overlayShow = false }, selectAll() { this.$refs.checkboxGroup.toggleAll(false) if (comics/* currentComics.hasSpend */.Po.hasSpend) { this.list.forEach((element, index) => { if (element.url !== 'javascript:void();') { this.selectResult.push(index) } }) return } this.$refs.checkboxGroup.toggleAll(true) }, CancelSelect() { this.$refs.checkboxGroup.toggleAll(false) this.minListIndex = null this.maxListIndex = null }, radioSelect(index) { if (this.minListIndex === null || index < this.minListIndex) { this.minListIndex = index } if (this.maxListIndex === null || index > this.maxListIndex) { this.maxListIndex = index } if (this.minListIndex !== this.maxListIndex && this.onShfit) { for (let i = this.minListIndex; i < this.maxListIndex; i++) { if (this.list[i].url !== 'javascript:void();' && !this.selectResult.includes(i)) { this.selectResult.push(i) } } } }, 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 if (comics/* currentComics.getComicInfo */.Po.getComicInfo) { this.list = await comics/* currentComics.getComicInfo */.Po.getComicInfo() this.overlayShow = false this.showSelectList = true return } const chapterCss = comics/* currentComics.chapterCss */.Po.chapterCss setTimeout(() => { // 获取付费标志 if (comics/* currentComics.hasSpend */.Po.hasSpend) { this.paylogoArr = [] const logoCss = comics/* currentComics.freeCss */.Po.freeCss + ',' + comics/* currentComics.payCss */.Po.payCss const logoArr = document.querySelectorAll(logoCss) logoArr.forEach((element, index) => { if ('.' + logoArr[index].className === comics/* currentComics.payCss */.Po.payCss) { this.paylogoArr.push(true) } else { this.paylogoArr.push(false) } }) } // 获取章节数据 const nodeList = document.querySelectorAll(chapterCss) nodeList.forEach(dom => { const urls = dom.querySelectorAll('a') const readtype = comics/* currentComics.readtype */.Po.readtype urls.forEach((element, index) => { let chapterName = element.innerText.replace(/\n|\r/g, '') chapterName = chapterName.trim() const data = { comicName: this.comicName, chapterName: chapterName, url: element.href, readtype } // if (comics/* currentComics.hasSpend */.Po.hasSpend) { data.isPay = this.paylogoArr[index] // if (data.isPay) { // data.url = 'javascript:void();' // } } this.list.push(data) }) }) this.overlayShow = false this.showSelectList = true }, 100) }, downSelectList() { if (this.selectResult.length === 0) { (0,external_vant_.Toast)({ message: '请选择章节', getContainer: '.card', position: 'bottom' }) return } this.selectResult.forEach(num => { const item = this.list[num] item.zipDownFlag = this.zipDownFlag this.downResult.push(item) }) this.$bus.$emit('selectDown', this.downResult) this.$bus.$emit('changTab', 2) this.downResult = [] this.selectResult = [] }, reloadList() { this.list = [] this.selectResult = [] this.getSelectList() } } }); ;// 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.insert = "head"; tablevue_type_style_index_0_id_657d4b24_lang_less_scoped_true_options.singleton = false; 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.locals */.Z.locals || {}); ;// 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, }, ]), }), ], 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: [-18, 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.zipDownPopover = true }, mouseleave: function ($event) { _vm.zipDownPopover = false }, }, }), ] }, proxy: true, }, ]), model: { value: _vm.zipDownPopover, callback: function ($$v) { _vm.zipDownPopover = $$v }, expression: "zipDownPopover", }, }, [ _c("div", [ _c("code", { staticClass: "popovertext" }, [ _vm._v( "* 如需保存在文件夹需要设置油猴下载模式为浏览器API" ), ]), _c("br"), _vm._v(" "), _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( "zipDownFlag", _vm.zipDownFlag ) }, }, model: { value: _vm.zipDownFlag, callback: function ($$v) { _vm.zipDownFlag = $$v }, expression: "zipDownFlag", }, }), ] }, 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( "http://greasyfork.icu/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& // EXTERNAL MODULE: ./src/utils/index.js var utils = __webpack_require__(624); ;// 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.insert = "head"; importPagevue_type_style_index_0_id_3e5333e4_lang_less_scoped_true_options.singleton = false; 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.locals */.Z.locals || {}); ;// 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: '' }, maxChapterNum: 1, maxPictureNum: 2, zipDownFlag: true, imgIndexBitNum: 3, imgSplicingFlag: false, // zipDownPopover: false, addZeroHint: false, showPopover: false, showUiPopover: false, setupOtherPage: 0 } }, 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) }, 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) { this.$refs.swipe2.swipeTo(val) this.setupOtherPage = val }, exeFun(flag) { this.webImgSplicing(flag) }, getAllData() { try { this.maxChapterNum = GM_getValue('maxChapterNum') this.maxPictureNum = GM_getValue('maxPictureNum') this.zipDownFlag = GM_getValue('zipDownFlag') 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) }, 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.insert = "head"; settingvue_type_style_index_0_id_234d1526_lang_less_scoped_true_options.singleton = false; 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.locals */.Z.locals || {}); ;// 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.chapterName)), ]), ]), _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.chapterName)), ]), ]), _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" } }, [ _vm._v("已下载\n "), _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", [ _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.chapterName))] ), ], 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, chapterName } = this.worker[index] const _this = this async function afterDown(index) { const { comicName, hasError } = _this.worker[index] const comicPageUrl = window.location.href let historyData = (0,setup/* getStorage */.cF)('downHistory') || '[]' historyData = JSON.parse(historyData) const id = (new Date()).getTime() historyData.unshift({ id, comicName, chapterName, comicPageUrl, hasError }) historyData = JSON.stringify(historyData) ;(0,setup/* setStorage */.po)('downHistory', historyData) _this.Vue.getHistoryData() _this.worker[index] = undefined // 休息下? setTimeout(() => { _this.run() }, 2000) } if (readtype === 1) { const { url, isPay } = this.worker[index] let imgs = [] try { imgs = await (0,utils/* getImage */.gJ)(url, isPay) } catch (error) { this.worker[index].hasError = true } imgs === [] ? this.worker[index].hasError = true : '' this.worker[index].imgs = imgs this.worker[index].number = 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) { return new Promise((resolve, reject) => { const _this = this const suffix = this.getSuffix(imgurl) const newName = this.worker[index].comicName + '\\' + this.worker[index].chapterName + '\\' + (0,utils/* addZeroForNum */.xo)(imgIndex, this.imgIndexBitNum) + '.' + suffix // eslint-disable-next-line no-undef GM_download({ url: imgurl, name: newName, onload: result => { _this.worker[index].currentnum = _this.worker[index].currentnum + 1 _this.worker[index].progress = parseInt(_this.worker[index].currentnum / _this.worker[index].number * 100) _this.refresh() resolve(true) }, onerror: result => { if (result.error === 'not_whitelisted') { // 重新请求 (0,utils/* request */.WY)({ method: 'get', url: imgurl, responseType: 'blob' }).then((res) => { const name_2 = this.worker[index].comicName + '\\' + this.worker[index].chapterName + '\\' + (0,utils/* addZeroForNum */.xo)(imgIndex, this.imgIndexBitNum) + '.' + this.getSuffix(res.finalUrl) _this.worker[index].currentnum = _this.worker[index].currentnum + 1 _this.worker[index].progress = parseInt(_this.worker[index].currentnum / _this.worker[index].number * 100) _this.refresh() if (res === 'onerror' || res === 'timeout') { resolve(false) } this.downloadFile(name_2, res.response).then((downRes) => { if (downRes) { resolve(true) } else { resolve(false) } }) }) } else { console.log('onerror: ', result) resolve(false) } }, ontimeout: result => { console.log('ontimeoutError: ', result) resolve(false) } }) }) } // 请求图片 Promise addImgPromise(index, imgurl) { return new Promise((resolve, reject) => { const _this = this const suffix = this.getSuffix(imgurl) // eslint-disable-next-line no-undef GM_xmlhttpRequest({ method: 'get', url: imgurl, responseType: 'blob', onload: function(gmRes) { _this.worker[index].currentnum = _this.worker[index].currentnum + 1 _this.worker[index].progress = parseInt(_this.worker[index].currentnum / _this.worker[index].number * 100) _this.refresh() resolve({ blob: gmRes.response, suffix: suffix }) }, onerror: function(e) { resolve({ blob: 1, suffix: '' }) }, ontimeout: function() { resolve({ blob: 0, suffix: '' }) } }) }) } // 网站翻页阅读方式 async down2(workerId) { const { url, zipDownFlag, isPay } = this.worker[workerId] const { imgUrl, nextPageUrl, number } = await (0,utils/* getImage */.gJ)(url, isPay) this.worker[workerId].number = number while (imgUrl.length > 0) { // eslint-disable-next-line prefer-const let promise = [] for (let index = this.pictureNum; index > 0; index--) { if (imgUrl[0] === undefined) { break } if (zipDownFlag) { promise.push(this.addImgPromise(workerId, imgUrl[0])) } else { const imgIndex = ++this.worker[workerId].imgIndex promise.push(this.addImgDownPromise(workerId, imgUrl[0], imgIndex)) } imgUrl.shift() } const res = await Promise.all(promise) res.forEach(element => { this.workerDownInfo[workerId].push(element) }) } if (nextPageUrl !== '') { this.worker[workerId].url = nextPageUrl return new Promise((resolve, reject) => { // 休息一下? setTimeout(() => { resolve(this.down2(workerId)) }, 1000) }) } // 是否压缩 if (zipDownFlag) { const result = await this.makeZip(workerId) return new Promise((resolve, reject) => { resolve(result) }) } else { return new Promise((resolve, reject) => { resolve(1) }) } } // 网站卷轴阅读方式 async down(workerId) { const { imgs, zipDownFlag } = this.worker[workerId] const promise = [] let len = imgs.length let pictureNum = this.pictureNum while (pictureNum-- && len > 0) { // 是否压缩 if (zipDownFlag) { promise.push(this.addImgPromise(workerId, imgs[0])) } else { const imgIndex = this.worker[workerId].imgIndex + 1 promise.push(this.addImgDownPromise(workerId, imgs[0], imgIndex)) this.worker[workerId].imgIndex++ } 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 (zipDownFlag) { const result = await this.makeZip(workerId) return new Promise((resolve, reject) => { resolve(result) }) } 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, chapterName: item.chapterName, currentnum: 0, number: 0, imgs: [], url: item.url, progress: 0, readtype: item.readtype, func: this.exeDown(i), zipDownFlag: item.zipDownFlag, imgIndex: 0, isPay: item.isPay, hasError: false } this.workerDownInfo[i] = [] this.worker[i] = worker this.list.pop() runIndex.push(i) } } // 执行任务 for (const index of runIndex) { this.worker[index].func.next() } } getSuffix(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' } // 压缩 async makeZip(workerId) { const { comicName, chapterName } = 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) { zip.file((0,utils/* addZeroForNum */.xo)(index + 1, this.imgIndexBitNum) + '.xx', '', { 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 + '\\' + chapterName + '.zip' this.downloadFile(name, zipblob) resolve() return }) }) } } ;// 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, queue: { 'worker': '', 'list': '', 'workeredList': '' }, maxChapterNum: 3, maxPictureNum: 2, zipDownFlag: true, 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.zipDownFlag = (0,setup/* getStorage */.cF)('zipDownFlag') this.queue = new Queue(this.maxChapterNum, this.maxPictureNum, this.imgIndexBitNum, this) } this.queue.addList(arr) this.queue.run() }, getHistoryData() { const data = (0,setup/* getStorage */.cF)('downHistory') this.historyData = JSON.parse(data || '[]') }, deleteHistoryData(index, id) { this.historyData.splice(index, 1) let data = (0,setup/* getStorage */.cF)('downHistory') let historyData = JSON.parse(data || '[]') historyData = historyData.filter((item) => item.id !== id) data = JSON.stringify(historyData) ;(0,setup/* setStorage */.po)('downHistory', data) }, deleteAllHistoryData() { external_vant_.Dialog.confirm({ getContainer: '.card', message: '确认全部删除' }) .then(() => { this.historyData.splice(0, this.historyData.length) ;(0,setup/* setStorage */.po)('downHistory', '[]') }) .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.insert = "head"; downvue_type_style_index_0_id_1e855a88_lang_less_scoped_true_options.singleton = false; 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.locals */.Z.locals || {}); ;// 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.url }, 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', 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.insert = "head"; searchvue_type_style_index_0_id_4ad41bb8_lang_less_scoped_true_options.singleton = false; 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.locals */.Z.locals || {}); ;// 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 } 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: false, 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.insert = "head"; appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_options.singleton = false; 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.locals */.Z.locals || {}); ;// 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.insert = "head"; appvue_type_style_index_1_id_5ef48958_lang_less_scoped_true_options.singleton = false; 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.locals */.Z.locals || {}); ;// 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.insert = "head"; global_options.singleton = false; var global_update = injectStylesIntoStyleTag_default()(global/* default */.Z, global_options); /* harmony default export */ const styles_global = (global/* default.locals */.Z.locals || {}); // 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.insert = "head"; styles_global_options.singleton = false; 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.locals */.Z.locals || {}); // 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 try { ;(0,setup/* appLoadinit */.Iq)() 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() } }) if (appLoadDefault.isShowUI) { loadUI() } } catch (error) { console.log('loadError: ', error) loadUI() } async function loadUI() { if (id !== null) { 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())() 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) }) } } })(); /******/ })() ;