10图漫

任意网页提供部分漫画网站搜索;漫画分章节下载(可直接下载/压缩下载/拼接下载),可用于动漫之家、极速漫画、腾讯漫画、哔哩哔哩等35多个网站;对个别漫画网站修改阅读样式;可按需编写定义规则JSON导入以支持其他漫画网站

  1. // ==UserScript==
  2. // @name 10图漫
  3. // @namespace http://tampermonkey2.net/
  4. // @version 2.0.7
  5. // @description 任意网页提供部分漫画网站搜索;漫画分章节下载(可直接下载/压缩下载/拼接下载),可用于动漫之家、极速漫画、腾讯漫画、哔哩哔哩等35多个网站;对个别漫画网站修改阅读样式;可按需编写定义规则JSON导入以支持其他漫画网站
  6. // @author journey3510
  7. // @run-at document-end
  8. // @grant GM_getValue
  9. // @grant GM_setValue
  10. // @grant GM_deleteValue
  11. // @grant GM_setClipboard
  12. // @grant GM_info
  13. // @grant GM_xmlhttpRequest
  14. // @grant GM_addStyle
  15. // @grant GM_getResourceText
  16. // @grant GM_download
  17. // @grant GM_registerMenuCommand
  18. // @grant unsafeWindow
  19. // @resource vantcss https://unpkg.com/vant@2.12/lib/index.css
  20. // @require https://unpkg.com/vue@2.6.12/dist/vue.min.js
  21. // @require https://unpkg.com/vant@2.12/lib/vant.min.js
  22. // @require https://unpkg.com/jszip@3.7.1/dist/jszip.min.js
  23. //
  24. // @license GPLv3
  25. // @include *
  26. // @connect *
  27. // ==/UserScript==
  28.  
  29. /******/ (() => { // webpackBootstrap
  30. /******/ "use strict";
  31. /******/ var __webpack_modules__ = ({
  32.  
  33. /***/ 205:
  34. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  35.  
  36. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  37. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  38. /* harmony export */ });
  39. /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(645);
  40. /* 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__);
  41. // Imports
  42.  
  43. var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
  44. // Module
  45. ___CSS_LOADER_EXPORT___.push([module.id, ".van-cell__title {\n text-align: left;\n}\n.van-cell-group__title--inset {\n text-align: left;\n}\n.van-button--default {\n color: #000000;\n background-color: #66ccff96 !important;\n border: 1px solid #ffffff6e;\n}\n.van-button--disabled {\n opacity: 1 !important;\n}\n.van-tag--default {\n background-color: #66ccff;\n}\n.van-checkbox__icon--checked .van-icon {\n color: #ee0000 !important;\n background-color: #66ccff55 !important;\n border-color: #66ccff88 !important;\n}\n.van-popover--light {\n font-size: 14px !important;\n color: #8d8de7 !important;\n}\n.van-popover--light .van-popover__arrow {\n color: #d9d9d9 !important;\n}\n.van-popover__content {\n border: 1px solid !important;\n padding: 2px 9px !important;\n margin-top: 3px !important;\n}\n.van-cell__title {\n text-align: left;\n}\n.van-cell-group__title--inset {\n text-align: left;\n}\n.van-button--default {\n color: #000000;\n background-color: #66ccff96 !important;\n border: 1px solid #ffffff6e;\n}\n.van-button--disabled {\n opacity: 1 !important;\n}\n.van-tag--default {\n background-color: #66ccff;\n}\n.van-checkbox__icon--checked .van-icon {\n color: #ee0000 !important;\n background-color: #66ccff55 !important;\n border-color: #66ccff88 !important;\n}\n.van-popover--light {\n font-size: 14px !important;\n color: #8d8de7 !important;\n}\n.van-popover--light .van-popover__arrow {\n color: #d9d9d9 !important;\n}\n.van-popover__content {\n border: 1px solid !important;\n padding: 2px 9px !important;\n margin-top: 3px !important;\n}\n", ""]);
  46. // Exports
  47. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
  48.  
  49.  
  50. /***/ }),
  51.  
  52. /***/ 452:
  53. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  54.  
  55. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  56. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  57. /* harmony export */ });
  58. /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(645);
  59. /* 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__);
  60. // Imports
  61.  
  62. var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
  63. // Module
  64. ___CSS_LOADER_EXPORT___.push([module.id, ".yi-ling-app *{font-size:14px}.yi-ling-app .app-container{background-color:#f8f8f8;padding:10px}.yi-ling-app ::-webkit-scrollbar{width:4px;height:5px;border-radius:15px;-webkit-border-radius:15px}.yi-ling-app ::-webkit-scrollbar-track-piece{border-radius:15px;-webkit-border-radius:15px}.yi-ling-app ::-webkit-scrollbar-thumb:vertical{height:5px;background-color:rgba(102,204,255,0.533333);border-radius:15px;-webkit-border-radius:15px}.yi-ling-app ::-webkit-scrollbar-thumb:horizontal{width:4px;background-color:rgba(144,147,153,0.5);border-radius:15px;-webkit-border-radius:15px}\n", ""]);
  65. // Exports
  66. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
  67.  
  68.  
  69. /***/ }),
  70.  
  71. /***/ 658:
  72. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  73.  
  74. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  75. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  76. /* harmony export */ });
  77. /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(645);
  78. /* 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__);
  79. // Imports
  80.  
  81. var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
  82. // Module
  83. ___CSS_LOADER_EXPORT___.push([module.id, ".yi-ling-app[data-v-5ef48958] {\n position: fixed;\n z-index: 100000;\n}\n.yi-ling-app #app-right[data-v-5ef48958] {\n height: 800px;\n width: 420px;\n position: fixed;\n right: 0;\n top: 50%;\n transform: translateY(-50%);\n transform-origin: right top;\n z-index: 999999 !important;\n}\n.card[data-v-5ef48958] {\n background-color: #f8f8f8;\n border: solid 1px #66ccffee;\n border-radius: 25px ;\n transition: all 0.5s;\n box-shadow: 2px 3px 3px 2px #66ccff55;\n}\n.card #border-top-set[data-v-5ef48958] {\n border-top-left-radius: 25px;\n border-top-right-radius: 25px;\n overflow: hidden;\n}\n.card #border-bottom-set[data-v-5ef48958] {\n border-bottom-left-radius: 25px;\n border-bottom-right-radius: 25px;\n overflow: hidden;\n}\n.card .swipeitem[data-v-5ef48958] {\n height: 697px;\n padding-bottom: 5px;\n}\n.card__btn[data-v-5ef48958] {\n transition: all 0.5s;\n border-radius: 30px 0 0 30px;\n width: 30px;\n height: 60px;\n background-color: #66ccff96;\n cursor: pointer;\n position: absolute;\n right: 100%;\n top: 50%;\n text-align: center;\n}\n.card__btn svg[data-v-5ef48958] {\n height: 20px;\n width: 20px;\n position: absolute;\n right: 5px;\n top: 20px;\n transition: all 0.5s;\n color: #ee000088;\n}\n.card--hide[data-v-5ef48958] {\n transform: translate(100%, -50%) !important;\n}\n.card--hide .card__btn svg[data-v-5ef48958] {\n transform: rotate(180deg);\n}\n.test[data-v-5ef48958] {\n position: absolute;\n position: relative;\n cursor: default;\n height: 600px;\n}\n.van-cell__title[data-v-5ef48958] {\n text-align: left;\n}\n.van-cell-group__title--inset[data-v-5ef48958] {\n text-align: left;\n}\n.van-button--default[data-v-5ef48958] {\n color: #000000;\n background-color: #66ccff96 !important;\n border: 1px solid #ffffff6e;\n}\n.van-button--disabled[data-v-5ef48958] {\n opacity: 1 !important;\n}\n.van-tag--default[data-v-5ef48958] {\n background-color: #66ccff;\n}\n.van-checkbox__icon--checked .van-icon[data-v-5ef48958] {\n color: #ee0000 !important;\n background-color: #66ccff55 !important;\n border-color: #66ccff88 !important;\n}\n.van-popover--light[data-v-5ef48958] {\n font-size: 14px !important;\n color: #8d8de7 !important;\n}\n.van-popover--light .van-popover__arrow[data-v-5ef48958] {\n color: #d9d9d9 !important;\n}\n.van-popover__content[data-v-5ef48958] {\n border: 1px solid !important;\n padding: 2px 9px !important;\n margin-top: 3px !important;\n}\n", ""]);
  84. // Exports
  85. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
  86.  
  87.  
  88. /***/ }),
  89.  
  90. /***/ 159:
  91. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  92.  
  93. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  94. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  95. /* harmony export */ });
  96. /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(645);
  97. /* 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__);
  98. // Imports
  99.  
  100. var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
  101. // Module
  102. ___CSS_LOADER_EXPORT___.push([module.id, ".import-page[data-v-3e5333e4] {\n display: flex;\n flex-direction: column;\n margin-top: 5px;\n height: 620px;\n max-height: 620px;\n justify-content: space-between;\n}\n.import-page #codeTextarea[data-v-3e5333e4] {\n border-color: #66ccff88;\n border-radius: 8px;\n padding: 2px;\n}\n.van-cell__title[data-v-3e5333e4] {\n text-align: left;\n}\n.van-cell-group__title--inset[data-v-3e5333e4] {\n text-align: left;\n}\n.van-button--default[data-v-3e5333e4] {\n color: #000000;\n background-color: #66ccff96 !important;\n border: 1px solid #ffffff6e;\n}\n.van-button--disabled[data-v-3e5333e4] {\n opacity: 1 !important;\n}\n.van-tag--default[data-v-3e5333e4] {\n background-color: #66ccff;\n}\n.van-checkbox__icon--checked .van-icon[data-v-3e5333e4] {\n color: #ee0000 !important;\n background-color: #66ccff55 !important;\n border-color: #66ccff88 !important;\n}\n.van-popover--light[data-v-3e5333e4] {\n font-size: 14px !important;\n color: #8d8de7 !important;\n}\n.van-popover--light .van-popover__arrow[data-v-3e5333e4] {\n color: #d9d9d9 !important;\n}\n.van-popover__content[data-v-3e5333e4] {\n border: 1px solid !important;\n padding: 2px 9px !important;\n margin-top: 3px !important;\n}\n", ""]);
  103. // Exports
  104. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
  105.  
  106.  
  107. /***/ }),
  108.  
  109. /***/ 627:
  110. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  111.  
  112. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  113. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  114. /* harmony export */ });
  115. /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(645);
  116. /* 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__);
  117. // Imports
  118.  
  119. var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
  120. // Module
  121. ___CSS_LOADER_EXPORT___.push([module.id, "#search-page[data-v-4ad41bb8] {\n width: 1100px;\n height: 600px;\n max-height: 600px;\n overflow: hidden;\n position: fixed;\n top: 50%;\n left: 40%;\n transform: translate(-50%, -50%);\n border: 1px solid #ee000066;\n border-radius: 15px;\n box-shadow: 2px 4px 4px 2px #ee000022;\n background-color: #fff;\n z-index: 9999999;\n}\n#search-page #search-page-top[data-v-4ad41bb8] {\n display: flex;\n justify-content: space-between;\n margin-bottom: 5px;\n border-bottom: 1px solid #66ccff88;\n}\n#search-page #search-page-top .search-input-btn[data-v-4ad41bb8] {\n margin-left: 400px;\n margin-top: 10px;\n width: 320px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n#search-page #search-page-top .search-input-btn input[data-v-4ad41bb8] {\n border: 1px solid #66ccff88;\n height: 20px;\n width: 200px;\n border-radius: 5px;\n background: #fff;\n font-size: 15px;\n line-height: 20px;\n padding-left: 15px;\n}\n#search-page #search-page-top .search-input-btn[data-v-4ad41bb8] .van-button--small {\n height: 25px;\n}\n#search-page #search-page-top #close-search-btn[data-v-4ad41bb8] {\n color: #66ccff88;\n display: flex;\n margin-top: 2px;\n font-size: 40px;\n height: 40px;\n background-color: #fff;\n border-radius: 20px;\n margin-top: 5px;\n margin-right: 5px;\n}\n#search-page #search-page-top #close-search-btn[data-v-4ad41bb8]:hover {\n color: red;\n transform: rotate(180deg);\n transition: all 1s;\n}\n#search-page #search-page-bottom[data-v-4ad41bb8] {\n height: 530px;\n max-height: 530px;\n overflow-y: scroll;\n}\n#search-page #search-page-bottom .origin-image-list[data-v-4ad41bb8] {\n display: flex;\n width: 120px;\n flex-direction: row;\n display: inline-block;\n text-align: center;\n cursor: pointer;\n margin: 2px;\n padding: 1px;\n}\n#search-page #search-page-bottom .origin-image-list p[data-v-4ad41bb8] {\n overflow: hidden;\n white-space: nowrap;\n}\n#search-page #search-page-bottom .origin-image-list[data-v-4ad41bb8]:hover {\n border: 2px solid #66ccff88;\n}\n.van-cell__title[data-v-4ad41bb8] {\n text-align: left;\n}\n.van-cell-group__title--inset[data-v-4ad41bb8] {\n text-align: left;\n}\n.van-button--default[data-v-4ad41bb8] {\n color: #000000;\n background-color: #66ccff96 !important;\n border: 1px solid #ffffff6e;\n}\n.van-button--disabled[data-v-4ad41bb8] {\n opacity: 1 !important;\n}\n.van-tag--default[data-v-4ad41bb8] {\n background-color: #66ccff;\n}\n.van-checkbox__icon--checked .van-icon[data-v-4ad41bb8] {\n color: #ee0000 !important;\n background-color: #66ccff55 !important;\n border-color: #66ccff88 !important;\n}\n.van-popover--light[data-v-4ad41bb8] {\n font-size: 14px !important;\n color: #8d8de7 !important;\n}\n.van-popover--light .van-popover__arrow[data-v-4ad41bb8] {\n color: #d9d9d9 !important;\n}\n.van-popover__content[data-v-4ad41bb8] {\n border: 1px solid !important;\n padding: 2px 9px !important;\n margin-top: 3px !important;\n}\n", ""]);
  122. // Exports
  123. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
  124.  
  125.  
  126. /***/ }),
  127.  
  128. /***/ 961:
  129. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  130.  
  131. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  132. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  133. /* harmony export */ });
  134. /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(645);
  135. /* 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__);
  136. // Imports
  137.  
  138. var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
  139. // Module
  140. ___CSS_LOADER_EXPORT___.push([module.id, "#downcontext[data-v-1e855a88] {\n margin: 15px 15px;\n max-height: 680px;\n border-radius: 15px;\n overflow: auto;\n}\n.comicnametag1[data-v-1e855a88] {\n margin-left: 10px ;\n height: 15px;\n margin-top: 4px;\n display: inline-block;\n max-width: 200px;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n background-color: #ee000088 !important;\n}\n#downlist[data-v-1e855a88] {\n margin: 10px 5px;\n padding: 5px 0px;\n border-radius: 15px;\n width: 100%;\n overflow-y: auto;\n overflow-x: hidden;\n max-height: 500px;\n}\n#downlist .downitem[data-v-1e855a88] {\n display: flex;\n flex-direction: column;\n width: 98%;\n}\n#downlist .downitem .itemname[data-v-1e855a88] {\n display: flex;\n justify-content: space-between;\n margin: 2px 5px;\n}\n#downlist .downitem .itemname .comicnametag[data-v-1e855a88] {\n display: inline-block;\n width: 60px;\n max-width: 60px;\n text-align: center;\n height: 18px;\n line-height: 18px;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n cursor: pointer;\n}\n#downlist .downitem .itemname .chapterspan[data-v-1e855a88] {\n display: inline-block;\n margin-left: 10px;\n max-width: 200px;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n#downlist .downitem .itemname .hasError[data-v-1e855a88] {\n color: red;\n}\n.van-cell__title[data-v-1e855a88] {\n text-align: left;\n}\n.van-cell-group__title--inset[data-v-1e855a88] {\n text-align: left;\n}\n.van-button--default[data-v-1e855a88] {\n color: #000000;\n background-color: #66ccff96 !important;\n border: 1px solid #ffffff6e;\n}\n.van-button--disabled[data-v-1e855a88] {\n opacity: 1 !important;\n}\n.van-tag--default[data-v-1e855a88] {\n background-color: #66ccff;\n}\n.van-checkbox__icon--checked .van-icon[data-v-1e855a88] {\n color: #ee0000 !important;\n background-color: #66ccff55 !important;\n border-color: #66ccff88 !important;\n}\n.van-popover--light[data-v-1e855a88] {\n font-size: 14px !important;\n color: #8d8de7 !important;\n}\n.van-popover--light .van-popover__arrow[data-v-1e855a88] {\n color: #d9d9d9 !important;\n}\n.van-popover__content[data-v-1e855a88] {\n border: 1px solid !important;\n padding: 2px 9px !important;\n margin-top: 3px !important;\n}\n", ""]);
  141. // Exports
  142. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
  143.  
  144.  
  145. /***/ }),
  146.  
  147. /***/ 782:
  148. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  149.  
  150. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  151. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  152. /* harmony export */ });
  153. /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(645);
  154. /* 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__);
  155. // Imports
  156.  
  157. var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
  158. // Module
  159. ___CSS_LOADER_EXPORT___.push([module.id, ".homeindex[data-v-7eb2bc79] {\n margin-top: 12px;\n overflow-y: auto;\n max-height: 675px;\n min-height: 600px;\n}\n.homeindex #selectId[data-v-7eb2bc79] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.homeindex #selectId[data-v-7eb2bc79] .van-collapse-item__wrapper {\n position: absolute;\n width: 100%;\n}\n.homeindex #selectId[data-v-7eb2bc79] .van-collapse-item__wrapper .van-collapse-item__content {\n background-color: #eeeeee !important;\n border-bottom-left-radius: 15px;\n border-bottom-right-radius: 15px;\n}\n.homeindex #selectId[data-v-7eb2bc79] .van-collapse-item__wrapper .van-collapse-item__content div:hover {\n color: red;\n}\n.homeindex #selectId #search-ico[data-v-7eb2bc79] {\n cursor: pointer;\n color: #ee000088;\n margin-right: 15px;\n}\n.van-cell__title[data-v-7eb2bc79] {\n text-align: left;\n}\n.van-cell-group__title--inset[data-v-7eb2bc79] {\n text-align: left;\n}\n.van-button--default[data-v-7eb2bc79] {\n color: #000000;\n background-color: #66ccff96 !important;\n border: 1px solid #ffffff6e;\n}\n.van-button--disabled[data-v-7eb2bc79] {\n opacity: 1 !important;\n}\n.van-tag--default[data-v-7eb2bc79] {\n background-color: #66ccff;\n}\n.van-checkbox__icon--checked .van-icon[data-v-7eb2bc79] {\n color: #ee0000 !important;\n background-color: #66ccff55 !important;\n border-color: #66ccff88 !important;\n}\n.van-popover--light[data-v-7eb2bc79] {\n font-size: 14px !important;\n color: #8d8de7 !important;\n}\n.van-popover--light .van-popover__arrow[data-v-7eb2bc79] {\n color: #d9d9d9 !important;\n}\n.van-popover__content[data-v-7eb2bc79] {\n border: 1px solid !important;\n padding: 2px 9px !important;\n margin-top: 3px !important;\n}\n", ""]);
  160. // Exports
  161. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
  162.  
  163.  
  164. /***/ }),
  165.  
  166. /***/ 55:
  167. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  168.  
  169. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  170. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  171. /* harmony export */ });
  172. /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(645);
  173. /* 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__);
  174. // Imports
  175.  
  176. var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
  177. // Module
  178. ___CSS_LOADER_EXPORT___.push([module.id, ".setindex .swipeitem[data-v-234d1526] {\n display: flex;\n flex-direction: column;\n margin: 20px 18px 15px 18px;\n flex: 1;\n height: 680px;\n max-height: 680px;\n justify-content: space-between;\n}\n.setindex .swipeitem #setup-return[data-v-234d1526] {\n flex: 1;\n margin-bottom: 15px;\n cursor: pointer;\n font-size: 17px;\n}\n.setindex .swipeitem #setup-return[data-v-234d1526]:hover {\n color: #ee000088;\n}\n.setindex #setpart[data-v-234d1526] {\n border-radius: 15px;\n background-color: #ffffff;\n overflow: auto;\n width: 100%;\n}\n.setindex #setpart .van-cell-group__title[data-v-234d1526] {\n color: #78a5ff;\n font-size: 15px;\n}\n.setindex #setpart .van-cell[data-v-234d1526] {\n width: 100%;\n padding: 10px 1px;\n overflow: visible !important;\n}\n.setindex #setpart .van-cell .van-cell__value[data-v-234d1526] {\n overflow: visible !important;\n}\n.setindex #setpart .van-cell .cellleftvalue[data-v-234d1526] {\n flex: 1;\n}\n.setindex #setpart .van-cell .cellrightvalue[data-v-234d1526] {\n flex: 0.5 !important;\n}\n.setindex #setpart .van-cell .cellrightvalue .dropbtn[data-v-234d1526] {\n width: 90px;\n background-color: #aadafb;\n color: white;\n padding: 2px 5px;\n font-size: 16px;\n border: none;\n cursor: pointer;\n}\n.setindex #setpart .van-cell .cellrightvalue .dropbtn[data-v-234d1526]:hover,\n.setindex #setpart .van-cell .cellrightvalue .dropbtn[data-v-234d1526]:focus {\n background-color: #47b1f7;\n}\n.setindex #setpart .van-cell .cellrightvalue .dropdown[data-v-234d1526] {\n position: relative;\n}\n.setindex #setpart .van-cell .cellrightvalue .dropdown-content[data-v-234d1526] {\n position: absolute;\n right: 0;\n background-color: #fff;\n min-width: 90px;\n overflow: auto;\n box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);\n z-index: 1;\n}\n.setindex #setpart .van-cell .cellrightvalue .dropdown-content a[data-v-234d1526] {\n color: black;\n padding: 0px 2px;\n text-decoration: none;\n text-align: center;\n display: block;\n}\n.setindex #setpart .van-cell .cellrightvalue .dropdown a[data-v-234d1526]:hover {\n background-color: #ddd;\n}\n.setindex #setpart .van-cell .cellrightvalue .show[data-v-234d1526] {\n display: block;\n}\n.setindex #setpart .van-cell .rightbutton[data-v-234d1526] {\n flex-direction: row-reverse;\n}\n.setindex #setpart .van-cell .custom-title[data-v-234d1526] {\n text-align: left;\n}\n.setindex #setpart .van-cell .img-down-range-input[data-v-234d1526] {\n width: 40px;\n height: 18px;\n margin-right: 2px;\n border: 1px #66ccff solid;\n border-radius: 10px;\n text-align: center;\n background: #fff;\n}\n.setindex #setpart .van-cell #max-splicing-height-input[data-v-234d1526] {\n width: 80px;\n height: 18px;\n margin-right: 2px;\n border: 1px #66ccff solid;\n border-radius: 10px;\n text-align: center;\n background: #fff;\n}\n.setindex #setpart .van-cell #max-splicing-height-input[data-v-234d1526]::-webkit-inner-spin-button {\n -webkit-appearance: none;\n}\n.setindex #setpart .van-cell #max-splicing-height-input[data-v-234d1526]::-webkit-outer-spin-button {\n -webkit-appearance: none;\n}\n.setindex #setpart .van-cell #hot-key-input[data-v-234d1526] {\n width: 35px;\n height: 18px;\n margin-right: 2px;\n border: 1px #66ccff solid;\n border-radius: 10px;\n text-align: center;\n background: #fff;\n}\n.setindex #setpart .van-cell .rightslider[data-v-234d1526] {\n margin: 10px 15px;\n width: 120px;\n}\n.setindex #setpart .van-cell .rightslider .custom-button[data-v-234d1526] {\n width: 20px;\n color: #fff;\n font-size: 14px;\n line-height: 15px;\n text-align: center;\n background-color: #ee0a24;\n border-radius: 100px;\n}\n.setindex #set-bottom[data-v-234d1526] {\n display: flex;\n justify-content: center;\n margin-top: 7px;\n margin-bottom: 5px;\n}\n.van-cell__title[data-v-234d1526] {\n text-align: left;\n}\n.van-cell-group__title--inset[data-v-234d1526] {\n text-align: left;\n}\n.van-button--default[data-v-234d1526] {\n color: #000000;\n background-color: #66ccff96 !important;\n border: 1px solid #ffffff6e;\n}\n.van-button--disabled[data-v-234d1526] {\n opacity: 1 !important;\n}\n.van-tag--default[data-v-234d1526] {\n background-color: #66ccff;\n}\n.van-checkbox__icon--checked .van-icon[data-v-234d1526] {\n color: #ee0000 !important;\n background-color: #66ccff55 !important;\n border-color: #66ccff88 !important;\n}\n.van-popover--light[data-v-234d1526] {\n font-size: 14px !important;\n color: #8d8de7 !important;\n}\n.van-popover--light .van-popover__arrow[data-v-234d1526] {\n color: #d9d9d9 !important;\n}\n.van-popover__content[data-v-234d1526] {\n border: 1px solid !important;\n padding: 2px 9px !important;\n margin-top: 3px !important;\n}\n", ""]);
  179. // Exports
  180. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
  181.  
  182.  
  183. /***/ }),
  184.  
  185. /***/ 737:
  186. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  187.  
  188. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  189. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  190. /* harmony export */ });
  191. /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(645);
  192. /* 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__);
  193. // Imports
  194.  
  195. var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
  196. // Module
  197. ___CSS_LOADER_EXPORT___.push([module.id, ".comiclist[data-v-657d4b24] {\n margin-top: 10px;\n position: relative;\n height: 690px;\n font-size: 14px !important;\n}\n#overlayDom[data-v-657d4b24] {\n background-color: #eeeeeece;\n}\n#select-list[data-v-657d4b24] {\n margin: 0 15px;\n}\n#select-list #select-list-top[data-v-657d4b24] {\n display: flex;\n flex-direction: column;\n background-color: #fff;\n padding: 0 10px 0 10px;\n min-height: 30px;\n border-bottom: 1px solid #ccc5;\n border-radius: 10px;\n}\n#select-list #select-list-top #select-list-info[data-v-657d4b24] {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n flex: 1;\n min-height: 30px;\n}\n#select-list #select-list-top #select-list-info #select-list-info-left[data-v-657d4b24] {\n display: flex;\n width: 95px;\n justify-content: space-between;\n align-items: center;\n}\n#select-list #select-list-top #select-list-info #select-list-info-left span.span-circle[data-v-657d4b24] {\n width: 14px;\n height: 14px;\n display: flex;\n border-radius: 7px;\n cursor: pointer;\n}\n#select-list #select-list-top #select-list-info #select-show-edit[data-v-657d4b24] {\n margin: 10px;\n}\n#select-list #select-list-2[data-v-657d4b24] {\n margin-top: 5px;\n overflow: hidden;\n}\n#select-list #select-list-2 #select-list-2-1[data-v-657d4b24] {\n max-height: 585px;\n overflow-y: auto;\n}\n#select-list #select-list-2 #select-list-2-1[data-v-657d4b24] ::-webkit-scrollbar-track-piece {\n background-color: #fff !important;\n}\n#select-list #select-list-2 #select-list-2-1 .input-chaptername[data-v-657d4b24] {\n border: 1px solid #66ccff88;\n flex: 1;\n border-radius: 5px;\n background: #fff;\n line-height: 20px;\n padding-left: 15px;\n padding-top: 1px;\n}\n#select-list .van-cell-group--inset[data-v-657d4b24] {\n margin: 0 0 !important;\n overflow: hidden;\n border-radius: 8px;\n}\n#editItem[data-v-657d4b24] {\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n margin: 3px 20px !important;\n color: #ee000088;\n flex-wrap: wrap;\n}\n#editItem .editItem-center[data-v-657d4b24] {\n font-size: 18px;\n}\n#comicinfo[data-v-657d4b24] {\n width: 280px;\n margin: 20px auto;\n}\n#comicinfo .van-cell__title[data-v-657d4b24] {\n max-width: 80px !important;\n}\ninput[data-v-657d4b24] {\n margin-left: 5px;\n margin-right: 5px;\n width: 50px;\n}\n.van-cell__title[data-v-657d4b24] {\n text-align: left;\n}\n.van-cell-group__title--inset[data-v-657d4b24] {\n text-align: left;\n}\n.van-button--default[data-v-657d4b24] {\n color: #000000;\n background-color: #66ccff96 !important;\n border: 1px solid #ffffff6e;\n}\n.van-button--disabled[data-v-657d4b24] {\n opacity: 1 !important;\n}\n.van-tag--default[data-v-657d4b24] {\n background-color: #66ccff;\n}\n.van-checkbox__icon--checked .van-icon[data-v-657d4b24] {\n color: #ee0000 !important;\n background-color: #66ccff55 !important;\n border-color: #66ccff88 !important;\n}\n.van-popover--light[data-v-657d4b24] {\n font-size: 14px !important;\n color: #8d8de7 !important;\n}\n.van-popover--light .van-popover__arrow[data-v-657d4b24] {\n color: #d9d9d9 !important;\n}\n.van-popover__content[data-v-657d4b24] {\n border: 1px solid !important;\n padding: 2px 9px !important;\n margin-top: 3px !important;\n}\n", ""]);
  198. // Exports
  199. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
  200.  
  201.  
  202. /***/ }),
  203.  
  204. /***/ 857:
  205. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  206.  
  207. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  208. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  209. /* harmony export */ });
  210. /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(645);
  211. /* 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__);
  212. // Imports
  213.  
  214. var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
  215. // Module
  216. ___CSS_LOADER_EXPORT___.push([module.id, "*[data-v-5ef48958]{margin:0;padding:0}.custom-indicator[data-v-5ef48958]{position:absolute;height:700px;right:5px;bottom:5px;padding:2px 5px;font-size:14px;background:rgba(0,0,0,0.1)}#thebtn[data-v-5ef48958]{position:fixed;top:150px;right:600px;z-index:999999 !important}\n", ""]);
  217. // Exports
  218. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
  219.  
  220.  
  221. /***/ }),
  222.  
  223. /***/ 645:
  224. /***/ ((module) => {
  225.  
  226.  
  227.  
  228. /*
  229. MIT License http://www.opensource.org/licenses/mit-license.php
  230. Author Tobias Koppers @sokra
  231. */
  232. // css base code, injected by the css-loader
  233. // eslint-disable-next-line func-names
  234. module.exports = function (cssWithMappingToString) {
  235. var list = []; // return the list of modules as css string
  236.  
  237. list.toString = function toString() {
  238. return this.map(function (item) {
  239. var content = cssWithMappingToString(item);
  240.  
  241. if (item[2]) {
  242. return "@media ".concat(item[2], " {").concat(content, "}");
  243. }
  244.  
  245. return content;
  246. }).join("");
  247. }; // import a list of modules into the list
  248. // eslint-disable-next-line func-names
  249.  
  250.  
  251. list.i = function (modules, mediaQuery, dedupe) {
  252. if (typeof modules === "string") {
  253. // eslint-disable-next-line no-param-reassign
  254. modules = [[null, modules, ""]];
  255. }
  256.  
  257. var alreadyImportedModules = {};
  258.  
  259. if (dedupe) {
  260. for (var i = 0; i < this.length; i++) {
  261. // eslint-disable-next-line prefer-destructuring
  262. var id = this[i][0];
  263.  
  264. if (id != null) {
  265. alreadyImportedModules[id] = true;
  266. }
  267. }
  268. }
  269.  
  270. for (var _i = 0; _i < modules.length; _i++) {
  271. var item = [].concat(modules[_i]);
  272.  
  273. if (dedupe && alreadyImportedModules[item[0]]) {
  274. // eslint-disable-next-line no-continue
  275. continue;
  276. }
  277.  
  278. if (mediaQuery) {
  279. if (!item[2]) {
  280. item[2] = mediaQuery;
  281. } else {
  282. item[2] = "".concat(mediaQuery, " and ").concat(item[2]);
  283. }
  284. }
  285.  
  286. list.push(item);
  287. }
  288. };
  289.  
  290. return list;
  291. };
  292.  
  293. /***/ }),
  294.  
  295. /***/ 379:
  296. /***/ ((module) => {
  297.  
  298.  
  299.  
  300. var stylesInDOM = [];
  301.  
  302. function getIndexByIdentifier(identifier) {
  303. var result = -1;
  304.  
  305. for (var i = 0; i < stylesInDOM.length; i++) {
  306. if (stylesInDOM[i].identifier === identifier) {
  307. result = i;
  308. break;
  309. }
  310. }
  311.  
  312. return result;
  313. }
  314.  
  315. function modulesToDom(list, options) {
  316. var idCountMap = {};
  317. var identifiers = [];
  318.  
  319. for (var i = 0; i < list.length; i++) {
  320. var item = list[i];
  321. var id = options.base ? item[0] + options.base : item[0];
  322. var count = idCountMap[id] || 0;
  323. var identifier = "".concat(id, " ").concat(count);
  324. idCountMap[id] = count + 1;
  325. var indexByIdentifier = getIndexByIdentifier(identifier);
  326. var obj = {
  327. css: item[1],
  328. media: item[2],
  329. sourceMap: item[3],
  330. supports: item[4],
  331. layer: item[5]
  332. };
  333.  
  334. if (indexByIdentifier !== -1) {
  335. stylesInDOM[indexByIdentifier].references++;
  336. stylesInDOM[indexByIdentifier].updater(obj);
  337. } else {
  338. var updater = addElementStyle(obj, options);
  339. options.byIndex = i;
  340. stylesInDOM.splice(i, 0, {
  341. identifier: identifier,
  342. updater: updater,
  343. references: 1
  344. });
  345. }
  346.  
  347. identifiers.push(identifier);
  348. }
  349.  
  350. return identifiers;
  351. }
  352.  
  353. function addElementStyle(obj, options) {
  354. var api = options.domAPI(options);
  355. api.update(obj);
  356.  
  357. var updater = function updater(newObj) {
  358. if (newObj) {
  359. if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {
  360. return;
  361. }
  362.  
  363. api.update(obj = newObj);
  364. } else {
  365. api.remove();
  366. }
  367. };
  368.  
  369. return updater;
  370. }
  371.  
  372. module.exports = function (list, options) {
  373. options = options || {};
  374. list = list || [];
  375. var lastIdentifiers = modulesToDom(list, options);
  376. return function update(newList) {
  377. newList = newList || [];
  378.  
  379. for (var i = 0; i < lastIdentifiers.length; i++) {
  380. var identifier = lastIdentifiers[i];
  381. var index = getIndexByIdentifier(identifier);
  382. stylesInDOM[index].references--;
  383. }
  384.  
  385. var newLastIdentifiers = modulesToDom(newList, options);
  386.  
  387. for (var _i = 0; _i < lastIdentifiers.length; _i++) {
  388. var _identifier = lastIdentifiers[_i];
  389.  
  390. var _index = getIndexByIdentifier(_identifier);
  391.  
  392. if (stylesInDOM[_index].references === 0) {
  393. stylesInDOM[_index].updater();
  394.  
  395. stylesInDOM.splice(_index, 1);
  396. }
  397. }
  398.  
  399. lastIdentifiers = newLastIdentifiers;
  400. };
  401. };
  402.  
  403. /***/ }),
  404.  
  405. /***/ 569:
  406. /***/ ((module) => {
  407.  
  408.  
  409.  
  410. var memo = {};
  411. /* istanbul ignore next */
  412.  
  413. function getTarget(target) {
  414. if (typeof memo[target] === "undefined") {
  415. var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself
  416.  
  417. if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
  418. try {
  419. // This will throw an exception if access to iframe is blocked
  420. // due to cross-origin restrictions
  421. styleTarget = styleTarget.contentDocument.head;
  422. } catch (e) {
  423. // istanbul ignore next
  424. styleTarget = null;
  425. }
  426. }
  427.  
  428. memo[target] = styleTarget;
  429. }
  430.  
  431. return memo[target];
  432. }
  433. /* istanbul ignore next */
  434.  
  435.  
  436. function insertBySelector(insert, style) {
  437. var target = getTarget(insert);
  438.  
  439. if (!target) {
  440. throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
  441. }
  442.  
  443. target.appendChild(style);
  444. }
  445.  
  446. module.exports = insertBySelector;
  447.  
  448. /***/ }),
  449.  
  450. /***/ 216:
  451. /***/ ((module) => {
  452.  
  453.  
  454.  
  455. /* istanbul ignore next */
  456. function insertStyleElement(options) {
  457. var element = document.createElement("style");
  458. options.setAttributes(element, options.attributes);
  459. options.insert(element, options.options);
  460. return element;
  461. }
  462.  
  463. module.exports = insertStyleElement;
  464.  
  465. /***/ }),
  466.  
  467. /***/ 565:
  468. /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  469.  
  470.  
  471.  
  472. /* istanbul ignore next */
  473. function setAttributesWithoutAttributes(styleElement) {
  474. var nonce = true ? __webpack_require__.nc : 0;
  475.  
  476. if (nonce) {
  477. styleElement.setAttribute("nonce", nonce);
  478. }
  479. }
  480.  
  481. module.exports = setAttributesWithoutAttributes;
  482.  
  483. /***/ }),
  484.  
  485. /***/ 795:
  486. /***/ ((module) => {
  487.  
  488.  
  489.  
  490. /* istanbul ignore next */
  491. function apply(styleElement, options, obj) {
  492. var css = "";
  493.  
  494. if (obj.supports) {
  495. css += "@supports (".concat(obj.supports, ") {");
  496. }
  497.  
  498. if (obj.media) {
  499. css += "@media ".concat(obj.media, " {");
  500. }
  501.  
  502. var needLayer = typeof obj.layer !== "undefined";
  503.  
  504. if (needLayer) {
  505. css += "@layer".concat(obj.layer.length > 0 ? " ".concat(obj.layer) : "", " {");
  506. }
  507.  
  508. css += obj.css;
  509.  
  510. if (needLayer) {
  511. css += "}";
  512. }
  513.  
  514. if (obj.media) {
  515. css += "}";
  516. }
  517.  
  518. if (obj.supports) {
  519. css += "}";
  520. }
  521.  
  522. var sourceMap = obj.sourceMap;
  523.  
  524. if (sourceMap && typeof btoa !== "undefined") {
  525. css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");
  526. } // For old IE
  527.  
  528. /* istanbul ignore if */
  529.  
  530.  
  531. options.styleTagTransform(css, styleElement, options.options);
  532. }
  533.  
  534. function removeStyleElement(styleElement) {
  535. // istanbul ignore if
  536. if (styleElement.parentNode === null) {
  537. return false;
  538. }
  539.  
  540. styleElement.parentNode.removeChild(styleElement);
  541. }
  542. /* istanbul ignore next */
  543.  
  544.  
  545. function domAPI(options) {
  546. var styleElement = options.insertStyleElement(options);
  547. return {
  548. update: function update(obj) {
  549. apply(styleElement, options, obj);
  550. },
  551. remove: function remove() {
  552. removeStyleElement(styleElement);
  553. }
  554. };
  555. }
  556.  
  557. module.exports = domAPI;
  558.  
  559. /***/ }),
  560.  
  561. /***/ 589:
  562. /***/ ((module) => {
  563.  
  564.  
  565.  
  566. /* istanbul ignore next */
  567. function styleTagTransform(css, styleElement) {
  568. if (styleElement.styleSheet) {
  569. styleElement.styleSheet.cssText = css;
  570. } else {
  571. while (styleElement.firstChild) {
  572. styleElement.removeChild(styleElement.firstChild);
  573. }
  574.  
  575. styleElement.appendChild(document.createTextNode(css));
  576. }
  577. }
  578.  
  579. module.exports = styleTagTransform;
  580.  
  581. /***/ }),
  582.  
  583. /***/ 555:
  584. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  585.  
  586. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  587. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  588. /* harmony export */ });
  589. /* harmony import */ var _config_setup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(393);
  590. /* harmony import */ var vant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(871);
  591. /* harmony import */ var vant__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(vant__WEBPACK_IMPORTED_MODULE_1__);
  592. //
  593. //
  594. //
  595. //
  596. //
  597. //
  598. //
  599. //
  600. //
  601. //
  602. //
  603. //
  604. //
  605. //
  606. //
  607. //
  608.  
  609.  
  610.  
  611.  
  612. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
  613. name: 'Importpage',
  614. data() {
  615. return {
  616. codeText: ''
  617. }
  618. },
  619. methods: {
  620. getCode() {
  621. try {
  622. // eslint-disable-next-line no-eval
  623. const code = eval(this.codeText)
  624. const userWebInfo = (0,_config_setup__WEBPACK_IMPORTED_MODULE_0__/* .getStorage */ .cF)('userWebInfo')
  625. if (code.length > 0) {
  626. code.forEach(element => {
  627. userWebInfo.unshift(element)
  628. })
  629. }
  630. (0,_config_setup__WEBPACK_IMPORTED_MODULE_0__/* .setStorage */ .po)('userWebInfo', userWebInfo)
  631. this.$bus.$emit('getWeb')
  632. ;(0,vant__WEBPACK_IMPORTED_MODULE_1__.Toast)({
  633. message: '已导入',
  634. getContainer: '.card',
  635. position: 'bottom'
  636. })
  637. setTimeout(() => {
  638. this.$bus.$emit('changeSetupFirstPage')
  639. }, 1000)
  640. } catch (error) {
  641. (0,vant__WEBPACK_IMPORTED_MODULE_1__.Toast)({
  642. message: '请粘贴正确JSON文字',
  643. getContainer: '.card',
  644. position: 'bottom'
  645. })
  646. }
  647. }
  648. }
  649. });
  650.  
  651.  
  652. /***/ }),
  653.  
  654. /***/ 758:
  655. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  656.  
  657. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  658. /* harmony export */ "bF": () => (/* binding */ AppVersion),
  659. /* harmony export */ "r8": () => (/* binding */ isDev)
  660. /* harmony export */ });
  661. /* unused harmony exports AppName, AppEnv */
  662. /* eslint-disable no-undef */
  663. const AppName = (/* unused pure expression or super */ null && ("10图漫"))
  664. const AppVersion = "2.0.7"
  665. const AppEnv = "production"
  666. const isDev = AppEnv === 'development'
  667.  
  668.  
  669.  
  670.  
  671. /***/ }),
  672.  
  673. /***/ 393:
  674. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  675.  
  676. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  677. /* harmony export */ "Iq": () => (/* binding */ appLoadinit),
  678. /* harmony export */ "cF": () => (/* binding */ getStorage),
  679. /* harmony export */ "po": () => (/* binding */ setStorage),
  680. /* harmony export */ "zU": () => (/* binding */ setinit)
  681. /* harmony export */ });
  682. /* harmony import */ var _config_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(758);
  683. /* eslint-disable no-unused-vars */
  684. /* eslint-disable no-eval */
  685. /* eslint-disable no-undef */
  686.  
  687.  
  688. // 脚本存储信息
  689. const configDefault = {
  690. version: _config_index__WEBPACK_IMPORTED_MODULE_0__/* .AppVersion */ .bF,
  691. appLoadDefault: {
  692. isShowUI: false,
  693. loadHotKey: 'V', // alt + loadHotKey
  694. rightSize: 100,
  695. centerSize: 100
  696. },
  697. maxChapterNum: 2,
  698. maxPictureNum: 3,
  699. downType: 0,
  700. maxSplicingHeight: 20000,
  701. imgIndexBitNum: 3,
  702. imgSplicingFlag: true,
  703. imgDownRange: [1, -1], // 章节图片下载范围 第1张至最后1张
  704. // downHistory: '[]', // 废弃
  705. userWebInfo: [],
  706. rootDir: '10Comic'
  707. }
  708.  
  709. // 网页 localStorage 存储信息
  710. const localStorageDefault = {
  711. ylComicDownHistory: '[]'
  712. }
  713.  
  714. // 油猴脚本存储 废弃变量
  715. const abandonDefault = ['downHistory']
  716.  
  717. const appLoadinit = () => {
  718. if (_config_index__WEBPACK_IMPORTED_MODULE_0__/* .isDev */ .r8) {
  719. return
  720. }
  721.  
  722. for (const key in localStorageDefault) {
  723. if (localStorage.getItem(key) == null) {
  724. localStorage.setItem(key, localStorageDefault[key])
  725. }
  726. }
  727.  
  728. // 如条件全为false, 则更新设置
  729. if (GM_getValue('version') !== undefined && GM_getValue('version') === _config_index__WEBPACK_IMPORTED_MODULE_0__/* .AppVersion */ .bF) {
  730. console.log('不需要更新数据')
  731. return
  732. }
  733. for (const key in configDefault) {
  734. // 不存在,添加
  735. if (GM_getValue(key) === undefined) {
  736. GM_setValue(key, configDefault[key])
  737. }
  738. }
  739.  
  740. // 油猴存储 去除废弃变量存储数量
  741. abandonDefault.forEach(word => {
  742. if (GM_getValue(word) !== undefined) {
  743. GM_deleteValue(word)
  744. }
  745. })
  746.  
  747. GM_setValue('version', _config_index__WEBPACK_IMPORTED_MODULE_0__/* .AppVersion */ .bF)
  748. GM_setValue('maxChapterNum', 2)
  749.  
  750. return true
  751. }
  752.  
  753. const setinit = async() => {
  754. return new Promise((resolve, reject) => {
  755. if (_config_index__WEBPACK_IMPORTED_MODULE_0__/* .isDev */ .r8) {
  756. resolve(false)
  757. }
  758. for (const key in configDefault) {
  759. GM_setValue(key, configDefault[key])
  760. }
  761. resolve(true)
  762. })
  763. }
  764.  
  765. const setStorage = (key, value, key2 = null) => {
  766. // console.log('value: ', value)
  767. if (key2) {
  768. const obj = GM_getValue(key)
  769. obj[key2] = value
  770. value = obj
  771. }
  772. GM_setValue(key, value)
  773. return true
  774. }
  775.  
  776. const getStorage = (key) => {
  777. return GM_getValue(key)
  778. }
  779.  
  780.  
  781. /***/ }),
  782.  
  783. /***/ 872:
  784. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  785.  
  786. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  787. /* harmony export */ "HL": () => (/* binding */ matchWeb),
  788. /* harmony export */ "Ni": () => (/* binding */ searchFunTemplate_1),
  789. /* harmony export */ "Os": () => (/* binding */ comicsWebInfo),
  790. /* harmony export */ "Po": () => (/* binding */ currentComics),
  791. /* harmony export */ "eT": () => (/* binding */ getWebList)
  792. /* harmony export */ });
  793. /* harmony import */ var _utils_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(624);
  794. /* harmony import */ var _config_setup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(393);
  795. /* eslint-disable no-undef */
  796. /* eslint-disable no-empty */
  797. /* eslint-disable no-eval */
  798.  
  799. // eslint-disable-next-line no-unused-vars
  800.  
  801.  
  802.  
  803.  
  804. const searchFunTemplate_1 = async(data, keyword) => {
  805. // eslint-disable-next-line prefer-const
  806. let { search_add_url, search_pre, alllist_dom_css, minlist_dom_css, namelink_index, img_src, use_background, img_reg, match_reg_num } = data.searchTemplate_1
  807. namelink_index ? namelink_index-- : namelink_index = 0
  808. let searchUrl = ''
  809. if (search_pre) {
  810. searchUrl = search_pre + search_add_url + keyword
  811. } else {
  812. searchUrl = data.homepage + search_add_url + keyword
  813. }
  814. let headers = ''
  815. data.headers ? headers = data.headers : ''
  816. // 调试使用
  817. // data.webName === '' ? console.log('') : ''
  818. const { responseText } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)({ method: 'get', url: searchUrl, data: '', headers })
  819. const dom = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .parseToDOM */ .U3)(responseText).querySelector(alllist_dom_css)
  820.  
  821. const domList = dom.querySelectorAll(minlist_dom_css)
  822. const searchList = []
  823. domList.forEach(element => {
  824. const obj = {}
  825. try {
  826. obj.name = element.querySelector('a').title
  827. const pathname = element.querySelector('a').pathname
  828. obj.url = data.homepage + pathname.slice(1, pathname.length)
  829. // 获取封面图片地址
  830. if (!use_background) {
  831. if (!img_reg) {
  832. const reg2 = eval('/' + img_src + `=('|")(.*?)('|")` + '/')
  833. obj.imageUrl = element.innerHTML.match(reg2)[2]
  834. } else {
  835. obj.imageUrl = element.innerHTML.match(img_reg)[match_reg_num]
  836. }
  837. // obj.imageUrl = element.querySelector('img').getAttribute(img_src)
  838. } else {
  839. obj.imageUrl = element.innerHTML.match(/background.*?(url)\('?(.*?)'?\)/)[2]
  840. }
  841.  
  842. // 名称修正?
  843. if (obj.name === '') {
  844. let titleArr = element.innerHTML.match(/title=('|")(.*?)('|")/);
  845.  
  846. (titleArr && titleArr.length >= 2) ? (obj.name = titleArr[2])
  847. : (titleArr = element.innerHTML.match(/alt=('|")(.*?)('|")/),
  848. (titleArr && titleArr.length >= 2) ? obj.name = titleArr[2] : '')
  849. // 文本 name innerText
  850. obj.name === '' ? obj.name = element.querySelectorAll('a')[namelink_index].innerText : ''
  851. }
  852. } catch (error) {
  853. console.log('error: ', data.webName, error)
  854. }
  855. searchList.push(obj)
  856. })
  857. return new Promise((resolve, reject) => {
  858. resolve(searchList)
  859. })
  860. }
  861.  
  862. const comicsWebInfo = [
  863. {
  864. domain: 'manhua.idmzj.com',
  865. homepage: 'https://manhua.idmzj.com/',
  866. webName: '动漫之家',
  867. comicNameCss: 'h1',
  868. chapterCss: '.cartoon_online_border',
  869. chapterCss_2: '.cartoon_online_border_other',
  870. webDesc: '需要登录',
  871. readtype: 1,
  872. useFrame: true,
  873. getComicInfo: async function(comic_name) {
  874. const domain = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .getdomain */ .m1)()
  875. let text = ''
  876. if (domain === 'm.idmzj.com') {
  877. text = document.body.outerHTML
  878. } else {
  879. // 判断登录后是否有章节信息
  880. const chapterList = unsafeWindow.__NUXT__?.data?.getCationDeatils?.comicInfo?.chapterList
  881. if (chapterList) {
  882. return false
  883. }
  884.  
  885. const arr = window.location.href.split('/')
  886. let name = arr[arr.length - 1] ? arr[arr.length - 1] : arr[arr.length - 2]
  887. name = name.split('.')[0]
  888. const comicUrl = `https://m.idmzj.com/info/${name}.html`
  889. const htmldata = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('get', comicUrl)
  890. text = htmldata.responseText
  891. }
  892.  
  893. const str2 = text.match(/initIntroData\((.*)\)/)[1]
  894. const comic_list = JSON.parse(str2)[0].data
  895. let comic_list_2 = []
  896. if (JSON.parse(str2)[1]) {
  897. comic_list_2 = JSON.parse(str2)[1].data
  898. }
  899. const allList = []
  900. comic_list.forEach(element => {
  901. const url = `https://m.idmzj.com/view/${element.comic_id}/${element.id}.html/`
  902. const data = {
  903. comicName: comic_name,
  904. chapterName: (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .trimSpecial */ .Sc)(element.chapter_name),
  905. chapterNumStr: '',
  906. url,
  907. readtype: this.readtype,
  908. isPay: false,
  909. isSelect: false,
  910. characterType: 'one'
  911. }
  912. allList.push(data)
  913. })
  914. comic_list_2.forEach(element => {
  915. const url = `https://m.idmzj.com/view/${element.comic_id}/${element.id}.html/`
  916. const data = {
  917. comicName: comic_name,
  918. chapterName: (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .trimSpecial */ .Sc)(element.chapter_name),
  919. chapterNumStr: '',
  920. url,
  921. readtype: this.readtype,
  922. isPay: false,
  923. isSelect: false,
  924. characterType: 'many'
  925. }
  926. allList.push(data)
  927. })
  928. return allList
  929. },
  930. getImgs: async function(context, processData) {
  931. const chapterList = unsafeWindow.__NUXT__?.data?.getCationDeatils?.comicInfo?.chapterList
  932.  
  933. if (chapterList) {
  934. const iframeWindow = document.getElementById(processData.frameId).contentWindow
  935. await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .doThingsEachSecond */ .w1)(10, () => iframeWindow?.__NUXT__?.data?.getchapters?.data?.chapterInfo?.page_url)
  936. const imageArr = iframeWindow?.__NUXT__?.data?.getchapters?.data?.chapterInfo?.page_url
  937. document.getElementById(processData.frameId).remove()
  938. return imageArr
  939. } else {
  940. // 保留 m.dmzj.com 获取方法
  941. const str = context.match(/mReader.initData\(.*"page_url":(.*?"]).*\)/)[1]
  942. const imgs = JSON.parse(str)
  943. document.getElementById(processData.frameId).remove()
  944. return imgs
  945. }
  946. }
  947. },
  948. {
  949. domain: ['m.dmzj.com', 'm.idmzj.com'],
  950. homepage: 'https://m.idmzj.com/',
  951. webName: '动漫之家(手机)',
  952. comicNameCss: '#comicName',
  953. chapterCss: '#list',
  954. readtype: 1,
  955. getImgs: async function(context) {
  956. const str = context.match(/mReader.initData\(.*"page_url":(.*?"]).*\)/)[1]
  957. const imgs = JSON.parse(str)
  958. console.log('imgs: ', imgs)
  959. return imgs
  960. }
  961. },
  962. {
  963. domain: ['comic.idmzj.com', 'www.idmzj.com'],
  964. homepage: 'https://comic.idmzj.com/',
  965. webName: '动漫之家(访客)',
  966. comicNameCss: 'h1',
  967. chapterCss: '.cartoon_online_border, .list_con_li',
  968. readtype: 1,
  969. getImgs: async function(context, processData) {
  970. const group = processData.url.match(/idmzj.com\/(.*?)\/(\d+)/)
  971. const DATA = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(context, /(function[\s\S]+?return [\s\S]*?}})(\([\s\S]+?\))/g)
  972. const params = DATA.pinia['app-store'].publicParams
  973.  
  974. let reqUrl = `https://comic.idmzj.com/api/v1/s_comic/chapter/detail?channel=${params.channel}&app_name=${params.app_name}&version=${params.timestamp}&timestamp=${params.timestamp}&uid&comic_py=${group[1]}&chapter_id=${group[2]}`
  975. if (unsafeWindow.location.host.includes('www')) {
  976. const comic_id = unsafeWindow.__NUXT__.data.getcationDeatils.comicInfo.id
  977. reqUrl = `https://www.idmzj.com/api/v1/comic1/chapter/detail?channel=${params.channel}&app_name=${params.app_name}&version=1.0.0&timestamp=${params.timestamp}&uid&comic_id=${comic_id}&chapter_id=${group[2]}`
  978. }
  979.  
  980. const { response } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('get', reqUrl)
  981. const imgs = JSON.parse(response).data.chapterInfo.page_url
  982. return imgs
  983. }
  984. },
  985. {
  986. domain: ['mangabz.com', 'www.mangabz.com'],
  987. homepage: 'https://mangabz.com/',
  988. webName: 'Mangabz',
  989. comicNameCss: 'p.detail-info-title',
  990. chapterCss: '#chapterlistload',
  991. headers: {
  992. referer: 'https://mangabz.com/'
  993. },
  994. downHeaders: {
  995. referer: 'https://mangabz.com/'
  996. },
  997. readtype: 0,
  998. searchTemplate_1: {
  999. search_add_url: 'search?title=',
  1000. alllist_dom_css: '.container .mh-list',
  1001. minlist_dom_css: 'li',
  1002. img_src: 'src'
  1003. },
  1004. getImgs: async function(context, processData) {
  1005. let group; let page = 1
  1006. if (processData.otherData) {
  1007. group = processData.otherData.group
  1008. } else {
  1009. group = context.match(/MANGABZ_MID=(\d+?);.*MANGABZ_CID=(\d+?);.*MANGABZ_IMAGE_COUNT=(\d+?);.*MANGABZ_VIEWSIGN="(.*?)".*MANGABZ_VIEWSIGN_DT="(.*?)"/)
  1010. }
  1011. if (processData.imgIndex !== undefined) {
  1012. page = processData.imgIndex + 1
  1013. }
  1014. const reqUrl = `https://mangabz.com/m${group[2]}/chapterimage.ashx?cid=${group[2]}&page=${page}&key=&_cid=${group[2]}&_mid=${group[1]}&_dt=${group[5]}&_sign=${group[4]}`
  1015.  
  1016. const { responseText } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('get', reqUrl)
  1017. const codeText = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(responseText, /(function.*return .*?})(\(.*?{}\))/g)
  1018. const imgUrlArr = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(codeText, /(function.*return .*?})/g)
  1019.  
  1020. const otherData = { group }
  1021. return { imgUrlArr, nextPageUrl: null, imgCount: group[3], otherData }
  1022. }
  1023. },
  1024. {
  1025. domain: 'manhua.zaimanhua.com',
  1026. homepage: 'https://manhua.zaimanhua.com/',
  1027. webName: '再漫画',
  1028. comicNameCss: '.wrap_intro_l_comic h1 a',
  1029. chapterCss: '.tab-content-selected',
  1030. readtype: 1,
  1031. useFrame: true,
  1032. getImgs: async function(context, processData) {
  1033. const iframeWindow = document.getElementById(processData.frameId).contentWindow
  1034. await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .delay */ .gw)(1.5)
  1035. const page_url = iframeWindow.__NUXT__.data.getChapters.data.chapterInfo.page_url
  1036. document.getElementById(processData.frameId).remove()
  1037. return page_url
  1038. }
  1039. },
  1040. {
  1041. domain: 'www.dm5.com',
  1042. homepage: 'https://www.dm5.com/',
  1043. webName: '动漫屋',
  1044. comicNameCss: '.banner_detail_form > .info > p.title',
  1045. chapterCss: '#detail-list-select-1',
  1046. hasSpend: true,
  1047. payKey: '-lock',
  1048. readtype: 0,
  1049. headers: {
  1050. referer: 'https://www.dm5.com/'
  1051. },
  1052. downHeaders: {
  1053. referer: ''
  1054. },
  1055. searchTemplate_1: {
  1056. search_add_url: 'search?title=',
  1057. alllist_dom_css: '.mh-list',
  1058. minlist_dom_css: 'li',
  1059. use_background: true
  1060. },
  1061. getImgs: async function(context, processData) {
  1062. let group; let page = 1
  1063. if (processData.otherData) {
  1064. group = processData.otherData.group
  1065. } else {
  1066. group = context.match(/DM5_MID=(\d+?);.*DM5_CID=(\d+?);.*DM5_IMAGE_COUNT=(\d+?);.*DM5_VIEWSIGN="(.*?)".*DM5_VIEWSIGN_DT="(.*?)"/)
  1067. }
  1068. if (processData.imgIndex !== undefined) {
  1069. page = processData.imgIndex + 1
  1070. }
  1071. const reqUrl = `https://www.dm5.com/ch1-${group[2]}/chapterfun.ashx?cid=${group[2]}&page=${page}&key=&language=1&gtk=6&_cid=${group[2]}&_mid=${group[1]}&_dt=${group[5].replaceAll(' ', '+').replaceAll(':', '%3A')}&_sign=${group[4]}`
  1072. const { responseText } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)({ method: 'get', url: reqUrl, useCookie: processData.isPay })
  1073.  
  1074. const codeText = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(responseText, /(function.*return .*?})(\(.*?{}\))/g)
  1075. const imgUrlArr = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(codeText, /(function.*return .*?})/g)
  1076. const otherData = { group }
  1077. return { imgUrlArr, nextPageUrl: null, imgCount: group[3], otherData }
  1078. }
  1079. },
  1080. {
  1081. domain: 'tel.dm5.com',
  1082. homepage: 'https://tel.dm5.com/',
  1083. webName: '动漫屋2',
  1084. comicNameCss: '.banner_detail_form > .info > p.title',
  1085. chapterCss: '#detail-list-select-1',
  1086. hasSpend: true,
  1087. payKey: '-lock',
  1088. readtype: 0,
  1089. headers: {
  1090. referer: 'https://tel.dm5.com/'
  1091. },
  1092. downHeaders: {
  1093. referer: ''
  1094. },
  1095. getImgs: async function(context, processData) {
  1096. let group; let page = 1
  1097. if (processData.otherData) {
  1098. group = processData.otherData.group
  1099. } else {
  1100. group = context.match(/DM5_MID=(\d+?);.*DM5_CID=(\d+?);.*DM5_IMAGE_COUNT=(\d+?);.*DM5_VIEWSIGN="(.*?)".*DM5_VIEWSIGN_DT="(.*?)"/)
  1101. }
  1102. if (processData.imgIndex !== undefined) {
  1103. page = processData.imgIndex + 1
  1104. }
  1105. const reqUrl = `https://tel.dm5.com/ch1-${group[2]}/chapterfun.ashx?cid=${group[2]}&page=${page}&key=&language=1&gtk=6&_cid=${group[2]}&_mid=${group[1]}&_dt=${group[5].replaceAll(' ', '+').replaceAll(':', '%3A')}&_sign=${group[4]}`
  1106. const { responseText } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)({ method: 'get', url: reqUrl, useCookie: processData.isPay })
  1107. const codeText = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(responseText, /(function.*return .*?})(\(.*?{}\))/g)
  1108. const imgUrlArr = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(codeText, /(function.*return .*?})/g)
  1109. const otherData = { group }
  1110. return { imgUrlArr, nextPageUrl: null, imgCount: group[3], otherData }
  1111. }
  1112. },
  1113. {
  1114. domain: 'godamh.com',
  1115. homepage: 'https://godamh.com/',
  1116. webName: 'GoDa',
  1117. comicNameCss: '.container nav > ol > li:nth-child(3) a',
  1118. chapterCss: '.chapterlists',
  1119. chapterNameReg: /data-ct="(.*?)"/,
  1120. readtype: 1,
  1121. headers: {
  1122. referer: 'https://godamh.com/'
  1123. },
  1124. getImgs: async function(context) {
  1125. const ms = context.match(/data-ms="(\d+)".*data-cs="(\d+)"/)[1]
  1126. const cs = context.match(/data-ms="(\d+)".*data-cs="(\d+)"/)[2]
  1127.  
  1128. const url = `https://api-get-v2.mgsearcher.com/api/chapter/getinfo?m=${ms}&c=${cs}`
  1129. const { responseText } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('GET', url)
  1130.  
  1131. const info = JSON.parse(responseText).data.info
  1132. const domain = info.images.line === 2 ? 'https://f40-1-4.g-mh.online' : 'https://t40-1-4.g-mh.online'
  1133. const images = info.images.images.map(element => {
  1134. return domain + element.url
  1135. })
  1136. return images
  1137. }
  1138. },
  1139. {
  1140. domain: 'www.comemh8.com',
  1141. homepage: 'https://www.comemh8.com/',
  1142. webName: '来漫画',
  1143. comicNameCss: '.title h1',
  1144. chapterCss: '#play_0 ul ',
  1145. readtype: 1,
  1146. useFrame: true,
  1147. getImgs: async function(context, processData) {
  1148. const iframeWindow = document.getElementById(processData.frameId).contentWindow
  1149. const arr = iframeWindow.getUrlpics()
  1150. const host = iframeWindow.gethost()
  1151. const image = arr.map(element => host + element)
  1152. console.log('image: ', image)
  1153. document.getElementById(processData.frameId).remove()
  1154. return image
  1155. }
  1156. },
  1157. {
  1158. domain: 'www.rumanhua.com',
  1159. homepage: 'https://www.rumanhua.com/',
  1160. webName: 'R如漫画',
  1161. comicNameCss: 'h1.name_mh',
  1162. chapterCss: '.chapterList .chapterlistload ul',
  1163. readtype: 1,
  1164. useFrame: true,
  1165. getImgs: async function(context, processData) {
  1166. const iframeDom = document.getElementById(processData.frameId).contentDocument
  1167. await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .delay */ .gw)(1.5)
  1168. const image = [...iframeDom.querySelectorAll('.main_img img')].map(img => img.dataset.src ?? img.src)
  1169. document.getElementById(processData.frameId).remove()
  1170. return image
  1171. }
  1172. },
  1173.  
  1174. {
  1175. domain: 'www.dongmanmanhua.cn',
  1176. homepage: 'https://www.dongmanmanhua.cn/',
  1177. webName: '咚漫',
  1178. comicNameCss: 'h1.subj',
  1179. chapterCss: '#_listUl',
  1180. chapterNameReg: /alt="(.*?)"/,
  1181. readtype: 1,
  1182. headers: {
  1183. referer: 'https://www.dongmanmanhua.cn/'
  1184. },
  1185. getImgs: async function(context) {
  1186. const str = context.match(/class="viewer_lst[\s\S]*?input/)[0]
  1187. const imgobj = str.matchAll(/img src[\s\S]*?data-url="(.*?)"/g)
  1188. const imgUrlArr = []
  1189. for (const item of imgobj) {
  1190. imgUrlArr.push(item[1])
  1191. }
  1192. return imgUrlArr
  1193. }
  1194. },
  1195. {
  1196. domain: 'www.gaonaojin.com',
  1197. homepage: 'https://www.gaonaojin.com/',
  1198. webName: '仙漫网',
  1199. comicNameCss: 'h1',
  1200. chapterCss: '#detail-list-select-1',
  1201. readtype: 1,
  1202. getImgs: function(context) {
  1203. const imgDomain = context.match(/imgDomain = '(.*?)'/)[1]
  1204. let imgStr = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(context, /(function.*?return \S})(\(.*?{}\))/g)
  1205. imgStr = imgStr.match(/\[[\s\S]+?\]/)[0]
  1206. const imgArray = JSON.parse(imgStr)
  1207. const imgarr = []
  1208. imgArray.forEach(element => {
  1209. imgarr.push(imgDomain + element)
  1210. })
  1211. return imgarr
  1212. }
  1213. },
  1214. {
  1215. domain: 'www.webtoons.com',
  1216. homepage: 'https://www.webtoons.com/',
  1217. webName: 'webtoons',
  1218. comicNameCss: 'h1.subj',
  1219. chapterCss: '#_listUl',
  1220. chapterNameReg: /alt="(.*?)"/,
  1221. readtype: 1,
  1222. webDesc: '?需要魔法?',
  1223. headers: {
  1224. referer: 'https://www.webtoons.com/'
  1225. },
  1226. getImgs: async function(context) {
  1227. const str = context.match(/class="viewer_lst[\s\S]*?class="viewer_ad_area"/)[0]
  1228. const imgobj = str.matchAll(/img src[\s\S]*?data-url="(.*?)"/g)
  1229. const imgUrlArr = []
  1230. for (const item of imgobj) {
  1231. imgUrlArr.push(item[1])
  1232. }
  1233. return imgUrlArr
  1234. }
  1235. },
  1236. {
  1237. domain: 'www.manshiduo.net',
  1238. homepage: 'https://www.manshiduo.net/',
  1239. webName: '漫士多',
  1240. comicNameCss: '.comic-title',
  1241. chapterCss: 'ul.chapter__list-box',
  1242. readtype: 1,
  1243. getImgs: async function(context) {
  1244. const imgobj = context.matchAll(/data-original="(.*?)"/g)
  1245. const imgUrlArr = []
  1246. for (const item of imgobj) {
  1247. imgUrlArr.push(item[1])
  1248. }
  1249. return imgUrlArr
  1250. }
  1251. },
  1252. {
  1253. domain: 'comic.naver.com',
  1254. homepage: 'https://comic.naver.com/',
  1255. webName: 'comic.naver',
  1256. comicNameCss: '#content > div.EpisodeListInfo__comic_info--yRAu0 > div > h2',
  1257. chapterCss: '#content ul',
  1258. chapterNameReg: /span.*?>(.*?)<\/span>/,
  1259. webDesc: '找到漫画目录页再使用, 新打开页面需“重载列表”',
  1260. readtype: 1,
  1261. headers: {
  1262. referer: 'https://comic.naver.com/'
  1263. },
  1264. getImgs: async function(context) {
  1265. const str = context.match(/class="wt_viewer"[\s\S]*?(<\/div>)/)[0]
  1266. const imgobj = str.matchAll(/img src="(.*?)"/g)
  1267. const imgUrlArr = []
  1268. for (const item of imgobj) {
  1269. imgUrlArr.push(item[1])
  1270. }
  1271. return imgUrlArr
  1272. }
  1273. },
  1274. {
  1275. domain: 'ac.qq.com',
  1276. homepage: 'https://ac.qq.com/',
  1277. webName: '腾讯漫画',
  1278. comicNameCss: '.works-intro-title.ui-left strong',
  1279. chapterCss: '.chapter-page-all.works-chapter-list',
  1280. headers: '',
  1281. readtype: 1,
  1282. webDesc: '2023.3.2起, 需要APP观看的章节无法完整下载',
  1283. hasSpend: true,
  1284. payKey: 'ui-icon-pay',
  1285. searchTemplate_1: {
  1286. search_add_url: 'Comic/searchList?search=',
  1287. alllist_dom_css: '.mod_book_list',
  1288. minlist_dom_css: 'li',
  1289. img_src: 'data-original'
  1290. },
  1291. getImgs: function(context) {
  1292. let nonce = context.match(/<script>\s*window.*?=(.*?)?;/)[1]
  1293. nonce = eval(nonce)
  1294. const dataStr = context.match(/DATA.*?'(.*)?'/)[1]
  1295. const data = dataStr.split('')
  1296. nonce = nonce.match(/\d+[a-zA-Z]+/g)
  1297. let len = nonce.length
  1298. let locate = null
  1299. let str = ''
  1300. while (len--) {
  1301. locate = parseInt(nonce[len]) & 255
  1302. str = nonce[len].replace(/\d+/g, '')
  1303. data.splice(locate, str.length)
  1304. }
  1305. const chapterStr = data.join('')
  1306. const chapterObj = JSON.parse(window.atob(chapterStr))
  1307. const imgarr = []
  1308. chapterObj.picture.forEach(element => {
  1309. imgarr.push(element.url)
  1310. })
  1311. return imgarr
  1312. }
  1313. },
  1314. {
  1315. domain: 'manga.bilibili.com',
  1316. homepage: 'https://manga.bilibili.com/',
  1317. webName: '哔哩哔哩',
  1318. comicNameCss: '.manga-info h1.manga-title',
  1319. chapterCss: '.episode-list .list-header',
  1320. headers: {
  1321. referer: 'https://manga.bilibili.com/'
  1322. },
  1323. readtype: 1,
  1324. searchFun: async function(keyword) {
  1325. const searchUrl = 'https://manga.bilibili.com/twirp/comic.v1.Comic/Search?device=pc&platform=web'
  1326. const data = new FormData()
  1327. data.append('key_word', keyword)
  1328. data.append('page_num', 1)
  1329. data.append('page_size', 8)
  1330. const { responseText } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('post', searchUrl, data, this.headers)
  1331. const list = JSON.parse(responseText).data.list
  1332. const searchList = []
  1333. list.forEach(element => {
  1334. const obj = {}
  1335. obj.name = element.org_title
  1336. obj.url = this.homepage + 'detail/mc' + element.id
  1337. obj.imageUrl = element.vertical_cover
  1338. searchList.push(obj)
  1339. })
  1340. return new Promise((resolve, reject) => {
  1341. resolve(searchList)
  1342. })
  1343. },
  1344. getComicInfo: async function() {
  1345. const comicid = window.location.href.match(/detail\/(\D*)(\d*)/)[2]
  1346. const data = new FormData()
  1347. data.append('comic_id', parseInt(comicid))
  1348. const getUrl = 'https://manga.bilibili.com/twirp/comic.v1.Comic/ComicDetail?device=pc&platform=web'
  1349. const { responseText } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('post', getUrl, data)
  1350. const comic = JSON.parse(responseText)
  1351. const comicName = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .trimSpecial */ .Sc)(comic.data.title)
  1352. const comic_list = comic.data.ep_list
  1353. const allList = []
  1354. comic_list.forEach(element => {
  1355. const url = `https://manga.bilibili.com/mc${comicid}/${element.id}`
  1356. const data = {
  1357. comicName: comicName,
  1358. chapterName: (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .trimSpecial */ .Sc)(element.short_title + ' ' + element.title),
  1359. chapterNumStr: '',
  1360. url,
  1361. readtype: this.readtype,
  1362. isPay: element.is_locked,
  1363. isSelect: false
  1364. }
  1365. allList.push(data)
  1366. })
  1367. return allList.reverse()
  1368. },
  1369. getImgs: async function(context, processData) {
  1370. const { url, isPay } = processData
  1371. const chapter_id = parseInt(url.match(/.com\/(\D*)(\d*)\/(\d*)/)[3])
  1372. const data = new FormData()
  1373. data.append('ep_id', chapter_id)
  1374. const postUrl = 'https://manga.bilibili.com/twirp/comic.v1.Comic/GetImageIndex?device=pc&platform=web'
  1375. const { responseText } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)({ method: 'post', url: postUrl, data, useCookie: isPay })
  1376. const imgArray = JSON.parse(responseText).data.images
  1377. console.log('imgArray: ', imgArray)
  1378.  
  1379. const saveImg = []
  1380. const query = []
  1381. const imgPostUrl = 'https://manga.bilibili.com/twirp/comic.v1.Comic/ImageToken?device=pc&platform=web'
  1382. imgArray.forEach(item => {
  1383. query.push(item.path)
  1384. })
  1385. const img_data = new FormData()
  1386. img_data.append('urls', JSON.stringify(query))
  1387. const img_data_res = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('post', imgPostUrl, img_data)
  1388.  
  1389. console.log('img_data_res: ', img_data_res)
  1390.  
  1391. const imgObjArr = JSON.parse(img_data_res.responseText).data
  1392. imgObjArr.forEach(imgObj => {
  1393. saveImg.push(`${imgObj.url}?token=${imgObj.token}`)
  1394. })
  1395. return saveImg
  1396. }
  1397. },
  1398. {
  1399. domain: 'www.bilibilicomics.com',
  1400. homepage: 'https://www.bilibilicomics.com/',
  1401. webName: '哔哩哔哩漫画国际版',
  1402. comicNameCss: 'h1.manga-title',
  1403. chapterCss: '.episode-list .list-header',
  1404. headers: {
  1405. referer: 'https://www.bilibilicomics.com/'
  1406. },
  1407. webDesc: '?需要魔法?',
  1408. readtype: 1,
  1409. getComicInfo: async function() {
  1410. const comicid = window.location.href.match(/detail\/(\D*)(\d*)/)[2]
  1411. const data = new FormData()
  1412. data.append('comic_id', parseInt(comicid))
  1413. const getUrl = 'https://www.bilibilicomics.com/twirp/comic.v1.Comic/ComicDetail?device=pc&platform=web'
  1414. const { responseText } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('post', getUrl, data)
  1415. const comic = JSON.parse(responseText)
  1416. const comicName = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .trimSpecial */ .Sc)(comic.data.title)
  1417. const comic_list = comic.data.ep_list
  1418. const allList = []
  1419. comic_list.forEach(element => {
  1420. const url = `https://www.bilibilicomics.com/mc${comicid}/${element.id}`
  1421. const data = {
  1422. comicName: comicName,
  1423. chapterName: (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .trimSpecial */ .Sc)(element.short_title + ' ' + element.title),
  1424. chapterNumStr: '',
  1425. url,
  1426. readtype: this.readtype,
  1427. isPay: element.is_locked,
  1428. isSelect: false
  1429. }
  1430. allList.push(data)
  1431. })
  1432. return allList.reverse()
  1433. },
  1434. getImgs: async function(context, processData) {
  1435. const { url, isPay } = processData
  1436. const chapter_id = parseInt(url.match(/.com\/(\D*)(\d*)\/(\d*)/)[3])
  1437. const data = new FormData()
  1438. data.append('ep_id', chapter_id)
  1439. const postUrl = 'https://www.bilibilicomics.com/twirp/comic.v1.Comic/GetImageIndex?device=pc&platform=web'
  1440. const { responseText } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)({ method: 'post', url: postUrl, data, useCookie: isPay })
  1441. const imgArray = JSON.parse(responseText).data.images
  1442.  
  1443. const saveImg = []
  1444. const query = []
  1445. const imgPostUrl = 'https://www.bilibilicomics.com/twirp/comic.v1.Comic/ImageToken?device=pc&platform=web'
  1446. imgArray.forEach(item => {
  1447. query.push(item.path)
  1448. })
  1449. const img_data = new FormData()
  1450. img_data.append('urls', JSON.stringify(query))
  1451. const img_data_res = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('post', imgPostUrl, img_data)
  1452. const imgObjArr = JSON.parse(img_data_res.responseText).data
  1453. imgObjArr.forEach(imgObj => {
  1454. saveImg.push(`${imgObj.url}?token=${imgObj.token}`)
  1455. })
  1456. return saveImg
  1457. }
  1458. },
  1459. {
  1460. domain: 'komiic.com',
  1461. homepage: 'https://komiic.com/',
  1462. webName: 'Komiic漫画',
  1463. comicNameCss: '.ComicMain__info .text-h6',
  1464. chapterCss: '.v-card-text .v-container .v-row',
  1465. chapterNameReg: / class="serial">(.*?)<\/span>/,
  1466. webDesc: 'SPA页面, 新页面需“重载列表”重新匹配新名称',
  1467. headers: {
  1468. referer: 'https://komiic.com/'
  1469. },
  1470. readtype: 1,
  1471. getImgs: async function(context, processData) {
  1472. const { url } = processData
  1473. const chapter_id = url.match(/chapter\/(\d*)\/images/)[1]
  1474. const postUrl = 'https://komiic.com/api/query'
  1475. const data = {
  1476. 'operationName': 'imagesByChapterId',
  1477. 'variables': {
  1478. 'chapterId': chapter_id
  1479. },
  1480. 'query': 'query imagesByChapterId($chapterId: ID!) {\n imagesByChapterId(chapterId: $chapterId) {\n id\n kid\n height\n width\n __typename\n }\n}\n'
  1481. }
  1482. const headers = { 'Content-Type': 'application/json' }
  1483. const { responseText } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)({ method: 'post', url: postUrl, headers, data: JSON.stringify(data) })
  1484. const img_data = JSON.parse(responseText).data.imagesByChapterId
  1485. const saveImg = []
  1486. img_data.forEach(element => {
  1487. saveImg.push('https://komiic.com/api/image/' + element.kid)
  1488. })
  1489. return saveImg
  1490. }
  1491. },
  1492. {
  1493. domain: ['www.darpou.com', 'darpou.com'],
  1494. homepage: 'https://www.darpou.com/',
  1495. webName: '百漫谷',
  1496. comicNameCss: '.fed-part-eone.fed-font-xvi a',
  1497. chapterCss: '.fed-play-item.fed-drop-item.fed-visible .fed-part-rows:nth-child(2)',
  1498. readtype: 1,
  1499. getImgs: async function(context) {
  1500. const txtUrl = context.match(/http(\S*).txt/gi)[0]
  1501. const txtRes = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('get', txtUrl)
  1502. let txtContext = txtRes.responseText
  1503. txtContext = txtContext.replace(/img2.manga8.xyz/g, 'img4.manga8.xyz')
  1504. txtContext = txtContext.replace(/img.manga8.xyz/g, 'img3.manga8.xyz')
  1505. const imgReg = /http(\S*)jpg/g
  1506. return txtContext.match(imgReg)
  1507. }
  1508. },
  1509. {
  1510. domain: ['qiximh2.com', 'www.qiximh2.com'],
  1511. homepage: 'http://www.qiximh2.com/',
  1512. webName: '七夕漫画',
  1513. comicNameCss: '.cy_title h1',
  1514. chapterCss: '.cy_plist ul',
  1515. readtype: 1,
  1516. useFrame: true,
  1517. getImgs: function(context, processData) {
  1518. const str = document.getElementById(processData.frameId).contentDocument.body.outerHTML
  1519. const imgStr = str.match(/main_img[\s\S]*?class="cy_intro_r/)[0]
  1520. const group = imgStr.matchAll(/data-src="(.*?)"/g)
  1521. const imgarr = []
  1522. for (const item of group) {
  1523. imgarr.push(item[1])
  1524. }
  1525. document.getElementById(processData.frameId).remove()
  1526. return imgarr
  1527. }
  1528. },
  1529. {
  1530. domain: ['www.copymanga.tv'],
  1531. homepage: 'https://www.copymanga.tv/',
  1532. webName: '拷贝漫画',
  1533. comicNameCss: 'div.container .comicParticulars-title-right h6',
  1534. chapterCss: '.tab-content > div.active > ul:nth-child(1)',
  1535. readtype: 1,
  1536. useFrame: true,
  1537. getImgs: async function(context, processData) {
  1538. const iframeDom = document.getElementById(processData.frameId).contentDocument
  1539. const iframeWindow = document.getElementById(processData.frameId).contentWindow
  1540.  
  1541. // 存在加载慢的可能性,10秒内持续检测是否存在数据
  1542. await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .doThingsEachSecond */ .w1)(10, () => parseInt(iframeDom.querySelector('.comicCount')?.innerText))
  1543. const totalNum = parseInt(iframeDom.querySelector('.comicCount')?.innerText)
  1544. console.log('totalNum: ', totalNum)
  1545. const contentEle = iframeDom.querySelector('ul.comicContent-list')
  1546.  
  1547. // 结束滚动条件
  1548. const end_condition_1 = () => {
  1549. const curHeight = iframeWindow.innerHeight + iframeWindow.scrollY
  1550. return curHeight >= contentEle.offsetHeight
  1551. }
  1552. const end_condition_2 = () => contentEle.childElementCount === totalNum
  1553.  
  1554. // 等待滚动结果
  1555. const result = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .startScroll */ .qs)(iframeWindow, [end_condition_1, end_condition_2])
  1556. console.log('result: ', result)
  1557. clearInterval(result[0])
  1558.  
  1559. document.getElementById(processData.frameId).remove()
  1560.  
  1561. return [...contentEle.querySelectorAll('img')].map(img => img.dataset.src ?? img.src)
  1562. }
  1563. },
  1564. {
  1565. domain: 'www.fengchemh.com',
  1566. homepage: 'https://www.fengchemh.com/',
  1567. webName: '风车漫画',
  1568. comicNameCss: 'h1',
  1569. chapterCss: '#ewave-playlist-1',
  1570. readtype: 1,
  1571. useFrame: true,
  1572. getImgs: async function(context, processData) {
  1573. const iframeWindow = document.getElementById(processData.frameId).contentWindow
  1574. const images = iframeWindow.params.images
  1575. document.getElementById(processData.frameId).remove()
  1576. return images
  1577. }
  1578. },
  1579. {
  1580. domain: ['manhuagui.com'],
  1581. homepage: 'https://www.manhuagui.com/',
  1582. webName: '漫画柜',
  1583. comicNameCss: '.book-title h1',
  1584. chapterCss: '.chapter-list',
  1585. readtype: 1,
  1586. // context 章节请求正文
  1587. getImgs: function(context) {
  1588. // 获取到 html请求正文 context 的一段js代码字符 并执行这代码获取到 图片地址信息
  1589. // window["\x65\x76\x61\x6c"] => eval
  1590. // (function[\s\S]+?return \S*?}) 匿名函数部分
  1591. // (\([\s\S]+?{}\)) 需要的参数
  1592. const dataStr = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(context, /window\["\\x65\\x76\\x61\\x6c"\]\((function[\s\S]+?return \S*?})(\([\s\S]+?{}\))/g)
  1593. const matchObj = /"files":(?<files>.*?),"finished".*"path":"(?<path>.*?)".*"e":(?<e>\d*),"m":"(?<m>.*)"}/g.exec(dataStr)
  1594. var { files, path, e, m } = matchObj.groups
  1595. files = JSON.parse(files)
  1596. const image = files.map(ele => {
  1597. return 'https://i.hamreus.com' + path + ele + '?e=' + e + '&m=' + m
  1598. })
  1599. return image
  1600. }
  1601. },
  1602. {
  1603. domain: 'www.36manga.com',
  1604. homepage: 'https://www.36manga.com/',
  1605. webName: '36漫画网',
  1606. comicNameCss: '.book-title h1 span',
  1607. chapterCss: '#chapter-list-4 li:not(:first-of-type)',
  1608. readtype: 1,
  1609. webDesc: '?可访问 ?',
  1610. getImgs: function(context) {
  1611. const group = context.matchAll(/chapterImages = ([\s\S]+?);var chapterPath = "([\s\S]+?)";var chapterPrice/g)
  1612. let imgarr = []
  1613. let middleStr = ''
  1614. for (const item of group) {
  1615. imgarr = JSON.parse(item[1])
  1616. middleStr = item[2]
  1617. }
  1618. if (imgarr[0].search('http') === -1) {
  1619. imgarr = imgarr.map((item) => {
  1620. return 'https://img001.arc-theday.com/' + middleStr + item
  1621. })
  1622. }
  1623. return imgarr
  1624. }
  1625. },
  1626. {
  1627. domain: 'www.gufengmh9.com',
  1628. homepage: 'https://www.gufengmh9.com/',
  1629. webName: '古风漫画网',
  1630. comicNameCss: '.book-title h1 span',
  1631. chapterCss: '.chapter-body',
  1632. readtype: 1,
  1633. readCssText: '.img_info {display: none;}.tbCenter img {border: 0px;}',
  1634. searchTemplate_1: {
  1635. search_add_url: 'search/?keywords=',
  1636. alllist_dom_css: '.book-list',
  1637. minlist_dom_css: 'li',
  1638. img_src: 'src'
  1639. },
  1640. getImgs: async function(context) {
  1641. const group = context.matchAll(/chapterImages = (.*?);var chapterPath = "(.*?)"/g)
  1642. const strArr = []
  1643. for (const item of group) {
  1644. strArr.push(item[1])
  1645. strArr.push(item[2])
  1646. }
  1647. const josnRes = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('get', this.homepage + 'js/config.js')
  1648. const josnContext = josnRes.responseText
  1649. const imageDomian = josnContext.match(/"domain":\["(.*?)"]/)[1]
  1650. let imgarr = JSON.parse(strArr[0])
  1651. imgarr = imgarr.map((item) => {
  1652. if (imgarr[0].search('http') === -1) {
  1653. return imageDomian + '/' + strArr[1] + item
  1654. }
  1655. return item
  1656. })
  1657. return imgarr
  1658. }
  1659. },
  1660. {
  1661. domain: 'comic.acgn.cc',
  1662. homepage: 'https://comic.acgn.cc/',
  1663. webName: '动漫戏说',
  1664. comicNameCss: '.list_navbox h3 a',
  1665. chapterCss: '#comic_chapter > ul',
  1666. readtype: 1,
  1667. getImgs: async function(context) {
  1668. const group = context.matchAll(/_src="(.*?)"/g)
  1669. const imgArray = []
  1670. for (const item of group) {
  1671. imgArray.push(item[1])
  1672. }
  1673. return imgArray
  1674. }
  1675. },
  1676. {
  1677. domain: 'www.77mh.xyz',
  1678. homepage: 'https://www.77mh.xyz/',
  1679. webName: '新新漫画',
  1680. comicNameCss: '.ar_list_coc h1',
  1681. chapterCss: '.ar_list_coc .ar_rlos_bor',
  1682. readtype: 1,
  1683. downHeaders: {
  1684. Accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8'
  1685. },
  1686. searchTemplate_1: {
  1687. search_add_url: 'k.php?k=',
  1688. search_pre: 'https://so.77mh.xyz/',
  1689. alllist_dom_css: '.ar_list_co ul',
  1690. minlist_dom_css: 'dl',
  1691. img_src: 'src'
  1692. },
  1693. getImgs: async function(context, processData) {
  1694. const imgStr = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(context, /(function[\s\S]+?return \S})(\([\s\S]+?{}\))/g)
  1695. const params = imgStr.match(/var atsvr="(.*?)";var msg='(.*?)'.*img_s=(.*?);.*colist_(.*?).htm/)
  1696. let imgArray = params[2].split('|')
  1697.  
  1698. const coid = window.location.href.match(/colist_(\d*?).html/)[1]
  1699. const reqUrl = `https://css.gdbyhtl.net:5443/img_v1/cnlo_svr.asp?z=${params[1]}&s=${params[3]}&cid=${params[4]}&coid=${coid}`
  1700.  
  1701. const { responseText } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('get', reqUrl)
  1702. const getImgPre = responseText.match(/= "(.*?)"/)[1]
  1703.  
  1704. if (imgArray[0].search('http') === -1) {
  1705. imgArray = imgArray.map((item) => {
  1706. return getImgPre + item
  1707. })
  1708. }
  1709. return imgArray
  1710. }
  1711. },
  1712. {
  1713. domain: 'www.mhxqiu4.com',
  1714. homepage: 'http://www.mhxqiu4.com/',
  1715. webName: '漫画星球',
  1716. comicNameCss: '.cy_title h1',
  1717. chapterCss: '.cy_plist #mh-chapter-list-ol-0',
  1718. readtype: 1,
  1719. getImgs: function(context) {
  1720. let imgStr = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(context, /(function.*?return \S})(\(.*?{}\))/g)
  1721. imgStr = imgStr.match(/\[[\s\S]+?\]/)[0]
  1722. const imgArray = JSON.parse(imgStr)
  1723. return imgArray
  1724. }
  1725. },
  1726.  
  1727. {
  1728. domain: 'www.mhua5.com',
  1729. homepage: 'https://www.mhua5.com/',
  1730. webName: '漫画屋',
  1731. comicNameCss: '.comic-title.j-comic-title',
  1732. chapterCss: '.chapter__list-box.clearfix',
  1733. readtype: 1,
  1734. getImgs: function(context) {
  1735. const group = context.matchAll(/data-original="(.*?)"/g)
  1736. const imgArray = []
  1737. for (const item of group) {
  1738. imgArray.push(item[1])
  1739. }
  1740. return imgArray
  1741. }
  1742. },
  1743. {
  1744. domain: 'www.yymanhua.com',
  1745. homepage: 'https://www.yymanhua.com/',
  1746. webName: 'yymanhua',
  1747. comicNameCss: 'p.detail-info-title',
  1748. chapterCss: '.detail-list-form-con',
  1749. readtype: 1,
  1750. headers: {
  1751. referer: 'https://www.yymanhua.com/'
  1752. },
  1753. useFrame: true,
  1754. getImgs: async function(context, processData) {
  1755. const iframe = document.getElementById(processData.frameId).contentWindow
  1756. const cid = iframe.YYMANHUA_CID
  1757. let page
  1758. const _cid = iframe.YYMANHUA_CID
  1759. const _mid = iframe.COMIC_MID
  1760. const _dt = iframe.YYMANHUA_VIEWSIGN_DT
  1761. const _sign = iframe.YYMANHUA_VIEWSIGN
  1762.  
  1763. const imageArray = []
  1764. const count = iframe.YYMANHUA_IMAGE_COUNT
  1765.  
  1766. let currentCount = 0
  1767. while (currentCount < count) {
  1768. page = currentCount + 1
  1769. console.log('page: ', page)
  1770. const url = `https://www.yymanhua.com/m${cid}/chapterimage.ashx?cid=${cid}&page=${page}&key=&_cid=${_cid}&_mid=${_mid}&_dt=${_dt}&_sign=${_sign}`
  1771. const { response } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)({ method: 'get', url })
  1772. console.log('response: ', response)
  1773. const funStr = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(response, /(function.*?return \S;})(\(.*?{}\))/g)
  1774. const newImgs = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(funStr, /(function.*?return .*?})()/g)
  1775. imageArray.push(...newImgs)
  1776. currentCount = imageArray.length
  1777. await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .delay */ .gw)(0.5)
  1778. }
  1779. document.getElementById(processData.frameId).remove()
  1780. return imageArray
  1781. }
  1782. },
  1783. {
  1784. domain: ['www.xmanhua.com', 'xmanhua.com'],
  1785. homepage: 'https://xmanhua.com/',
  1786. webName: 'xmanhua',
  1787. comicNameCss: 'p.detail-info-title',
  1788. chapterCss: '.detail-list-form-con',
  1789. readtype: 1,
  1790. headers: {
  1791. referer: 'https://xmanhua.com/'
  1792. },
  1793. useFrame: true,
  1794. getImgs: async function(context, processData) {
  1795. const iframe = document.getElementById(processData.frameId).contentWindow
  1796.  
  1797. const cid = iframe.XMANHUA_CID
  1798. let page
  1799. const _cid = iframe.XMANHUA_CID
  1800. const _mid = iframe.COMIC_MID
  1801. const _dt = iframe.XMANHUA_VIEWSIGN_DT
  1802. const _sign = iframe.XMANHUA_VIEWSIGN
  1803.  
  1804. const imageArray = []
  1805. const count = iframe.XMANHUA_IMAGE_COUNT
  1806. let currentCount = 0
  1807. while (currentCount < count) {
  1808. page = currentCount + 1
  1809. console.log('page: ', page)
  1810. const url = `https://xmanhua.com/m${cid}/chapterimage.ashx?cid=${cid}&page=${page}&key=&_cid=${_cid}&_mid=${_mid}&_dt=${_dt}&_sign=${_sign}`
  1811. const { response } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)({ method: 'get', url })
  1812. const funStr = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(response, /(function.*?return \S;})(\(.*?{}\))/g)
  1813. const newImgs = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(funStr, /(function.*?return .*?})()/g)
  1814. imageArray.push(...newImgs)
  1815. currentCount = imageArray.length
  1816. await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .delay */ .gw)(0.5)
  1817. }
  1818. document.getElementById(processData.frameId).remove()
  1819. return imageArray
  1820. }
  1821. },
  1822. {
  1823. domain: 'www.cartoonmad.com',
  1824. homepage: 'https://www.cartoonmad.com/',
  1825. webName: '动漫狂',
  1826. comicNameCss: 'table > tbody > tr:nth-child(3) > td:nth-child(2) > a:nth-child(6)',
  1827. chapterCss: '#info',
  1828. readtype: 1,
  1829. downHeaders: {
  1830. referer: 'https://www.cartoonmad.com/'
  1831. },
  1832. getImgs: function(context) {
  1833. const preImgUrl = 'https:' + context.match(/<img src="(.*?)001.*?"/)[1]
  1834. const suffix = context.match(/<img src="(.*?)001\.(.*?)"/)[2]
  1835. const pageTotalNum = context.match(/<\/option>.*html">.*?(\d+).*?<\/select>/)[1]
  1836. const imgArray = []
  1837. for (let i = 0; i < pageTotalNum; i++) {
  1838. const imgUrl = preImgUrl + (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .addZeroForNum */ .xo)(i + 1, 3) + '.' + suffix
  1839. imgArray.push(imgUrl)
  1840. }
  1841. return imgArray
  1842. }
  1843. },
  1844. {
  1845. domain: 'www.zuimh.com',
  1846. homepage: 'https://www.zuimh.com/',
  1847. webName: '最漫画',
  1848. comicNameCss: '.book-detail .book-title h1 span',
  1849. chapterCss: '.chapter-body.clearfix #chapter-list-1',
  1850. readtype: 1,
  1851. readCssText: '.img_info {display: none;}.tbCenter img {border: 0px;}',
  1852. getImgs: async function(context) {
  1853. const imgStr = context.match(/var chapterImages = ([[\s\S]+?])[\s\S]+?var chapterPath/)[1]
  1854. const imgs = eval(imgStr)
  1855. return imgs
  1856. }
  1857. },
  1858. {
  1859. domain: 'www.6mh1.com',
  1860. homepage: 'http://www.6mh1.com/',
  1861. webName: '六漫画',
  1862. comicNameCss: 'h1.name_mh',
  1863. chapterCss: '#chapter-list1',
  1864. readtype: 1,
  1865. useFrame: true,
  1866. getImgs: async function(context, processData) {
  1867. const iframe = document.getElementById(processData.frameId).contentWindow
  1868. const newImgs = JSON.parse(JSON.stringify(iframe.newImgs))
  1869. document.getElementById(processData.frameId).remove()
  1870. return newImgs
  1871. }
  1872. },
  1873. {
  1874. domain: 'www.mhxin.com',
  1875. homepage: 'https://www.mhxin.com/',
  1876. webName: '漫画芯',
  1877. comicNameCss: '.wrap_intro_l_comic .comic_deCon h1',
  1878. chapterCss: '.zj_list_con #chapter-list-1',
  1879. readtype: 1,
  1880. readCssText: '.img_info {display: none;}.comic_wraCon img {border: 0px;margin-top:0px;}',
  1881. getImgs: async function(context) {
  1882. const group = context.matchAll(/chapterImages = (.*?);var chapterPath = "(.*?)"/g)
  1883. const strArr = []
  1884. for (const item of group) {
  1885. strArr.push(item[1])
  1886. strArr.push(item[2])
  1887. }
  1888. let imgarr = JSON.parse(strArr[0])
  1889. const josnRes = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('get', this.homepage + 'js/config.js')
  1890. const josnContext = josnRes.responseText
  1891. const imageDomian = josnContext.match(/"domain":\["(.*?)"]/)[1]
  1892. imgarr = imgarr.map((item) => {
  1893. if (imgarr[0].search('http') === -1) {
  1894. return imageDomian + '/' + strArr[1] + item
  1895. }
  1896. return item
  1897. })
  1898. return imgarr
  1899. }
  1900. },
  1901. {
  1902. domain: ['cn.baozimh.com', 'WWW.baozimh.com'],
  1903. homepage: 'https://cn.baozimh.com/',
  1904. webName: '包子漫画',
  1905. comicNameCss: 'h1.comics-detail__title',
  1906. chapterCss: '.comics-detail > .l-content:nth-of-type(3) #chapter-items',
  1907. chapterCss_2: '.comics-detail > .l-content:nth-of-type(3) .pure-g',
  1908. readtype: 1,
  1909. searchTemplate_1: {
  1910. search_add_url: 'search/?keyword=',
  1911. alllist_dom_css: '.pure-g.classify-items',
  1912. minlist_dom_css: 'div.comics-card',
  1913. img_reg: /src=('|")(.*?)\?/,
  1914. match_reg_num: 2
  1915. },
  1916. getImgs: async function(context, processData) {
  1917. const imgArray = []
  1918. const nextReg = /next_chapter"><a href="(.*)?"[\s\S]{1,10}点击进入下一页/
  1919. let hasNext = false
  1920. let nextHtml = ''
  1921. do {
  1922. const group = context.matchAll(/<img.*src="(.*?)"/g)
  1923. for (const item of group) {
  1924. if (!imgArray.includes(item[1])) {
  1925. imgArray.push(item[1])
  1926. }
  1927. }
  1928. hasNext = nextReg.test(context)
  1929. if (hasNext) {
  1930. nextHtml = context.match(nextReg)[1]
  1931. const { responseText } = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('get', nextHtml)
  1932. context = responseText
  1933. }
  1934. } while (hasNext)
  1935. return imgArray
  1936. }
  1937. },
  1938. {
  1939. domain: 'www.guoman.net',
  1940. homepage: 'https://www.guoman.net/',
  1941. webName: '爱国漫',
  1942. comicNameCss: '.detail-info > .detail-info-title',
  1943. chapterCss: '#chapterlistload',
  1944. readtype: 1,
  1945. getImgs: async function(context) {
  1946. const group = context.matchAll(/<img.*src="(.*?)"/g)
  1947. const imgArray = []
  1948. for (const item of group) {
  1949. imgArray.push(item[1])
  1950. }
  1951. return imgArray
  1952. }
  1953. },
  1954. {
  1955. domain: ['zcymh.com', 'www.zcymh.com'],
  1956. homepage: 'https://zcymh.com/',
  1957. webName: '最次元',
  1958. comicNameCss: 'h1',
  1959. chapterCss: '#detail-chapter .bd',
  1960. readtype: 1,
  1961. getImgs: async function(context) {
  1962. const group = context.matchAll(/chapter-pid="[\s\S]*?<img src="(.*?)"/g)
  1963. const imgArray = []
  1964. for (const item of group) {
  1965. imgArray.push(item[1])
  1966. }
  1967. return imgArray
  1968. }
  1969. },
  1970. {
  1971. domain: 'www.kanman.com',
  1972. homepage: 'https://www.kanman.com/',
  1973. webName: '看漫画',
  1974. comicNameCss: 'h1.title',
  1975. chapterCss: '#j_chapter_list',
  1976. readtype: 1,
  1977. getImgs: async function(context) {
  1978. const imgStr = context.match(/chapter_img_list:(\[.*?\])/)[1]
  1979. let imgArray = eval(imgStr)
  1980. imgArray = imgArray.map(element => {
  1981. element = element.replace('hw-chapter2', 'hw-chapter3')
  1982. return element
  1983. })
  1984. return imgArray
  1985. }
  1986. },
  1987. {
  1988. domain: 'www.kuaikanmanhua.com',
  1989. homepage: 'https://www.kuaikanmanhua.com/',
  1990. webName: '快看漫画',
  1991. comicNameCss: 'h3.title',
  1992. chapterCss: '.episode-title',
  1993. readtype: 1,
  1994. hasSpend: true,
  1995. useFrame: true,
  1996. getComicInfo: async function() {
  1997. const list = unsafeWindow.__NUXT__.data[0].comics
  1998. const comicName = unsafeWindow.__NUXT__.data[0].topicInfo.title
  1999. const newList = []
  2000. list.forEach(element => {
  2001. const url = `https://www.kuaikanmanhua.com/web/comic/${element.id}/`
  2002. const data = {
  2003. comicName: comicName,
  2004. chapterName: element.title,
  2005. chapterNumStr: '',
  2006. url,
  2007. readtype: this.readtype,
  2008. isPay: element.locked,
  2009. isSelect: false
  2010. }
  2011. newList.push(data)
  2012. })
  2013. return newList
  2014. },
  2015. getImgs: async function(context, processData) {
  2016. const str = document.getElementById(processData.frameId).contentDocument.body.outerHTML
  2017. const data = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(str, /(function.*}})(\(.*)\);<\/script>/g)
  2018. let comicImages = data.data[0].comicInfo.comicImages
  2019. const imgarr = []
  2020. if (!comicImages) {
  2021. comicImages = data.data[0].imgList
  2022. }
  2023. comicImages.forEach(element => {
  2024. imgarr.push(element.url)
  2025. })
  2026. document.getElementById(processData.frameId).remove()
  2027. return imgarr
  2028. }
  2029. },
  2030. {
  2031. domain: 'm.kuaikanmanhua.com',
  2032. homepage: 'https://m.kuaikanmanhua.com/',
  2033. webName: '快看漫画m',
  2034. comicNameCss: '.mask p.title',
  2035. chapterCss: '',
  2036. readtype: 1,
  2037. hasSpend: true,
  2038. showInList: false,
  2039. useFrame: true,
  2040. getComicInfo: async function() {
  2041. const code = document.body.outerHTML.match(/\(function\(a,b,c.*?(\)\))/g)[0]
  2042. const data = eval(code)
  2043. const list = data.data[0].comicList
  2044. const comicName = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .trimSpecial */ .Sc)(data.data[0].topicInfo.title)
  2045. const newlist = list.map((item) => {
  2046. return {
  2047. comicName: comicName,
  2048. chapterName: (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .trimSpecial */ .Sc)(item.title),
  2049. chapterNumStr: '',
  2050. url: 'https://m.kuaikanmanhua.com/mobile/comics/' + item.id,
  2051. readtype: 1,
  2052. isPay: !item.is_free,
  2053. isSelect: false
  2054. }
  2055. })
  2056. return newlist
  2057. },
  2058. getImgs: async function(context, processData) {
  2059. const str = document.getElementById(processData.frameId).contentDocument.body.outerHTML
  2060. const data = (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData */ .D)(str, /(function.*}})(\(.*)\);<\/script>/g)
  2061. let comicImages = data.data[0].comicInfo.comicImages
  2062. const imgarr = []
  2063. if (!comicImages) {
  2064. comicImages = data.data[0].imgList
  2065. }
  2066. comicImages.forEach(element => {
  2067. imgarr.push(element.url)
  2068. })
  2069. document.getElementById(processData.frameId).remove()
  2070. return imgarr
  2071. }
  2072. },
  2073. {
  2074. domain: 'www.manhua88888.com',
  2075. homepage: 'https://www.manhua88888.com/',
  2076. webName: '好漫8',
  2077. comicNameCss: '.content .title',
  2078. chapterCss: '#j_chapter_list',
  2079. readtype: 1,
  2080. getImgs: function(context) {
  2081. const group = context.matchAll(/data-echo="(.*?)"/g)
  2082. const imgArray = []
  2083. for (const item of group) {
  2084. imgArray.push(item[1])
  2085. }
  2086. return imgArray
  2087. }
  2088. }
  2089. ]
  2090.  
  2091. const getWebList = () => {
  2092. const userWebInfo = eval((0,_config_setup__WEBPACK_IMPORTED_MODULE_1__/* .getStorage */ .cF)('userWebInfo') || [])
  2093. const originalInfo = comicsWebInfo
  2094. return { originalInfo, userWebInfo }
  2095. }
  2096.  
  2097. let currentComics = null
  2098.  
  2099. // 网站匹配
  2100. const matchWeb = (url) => {
  2101. let hname = ''
  2102. var domain = url.split('/')
  2103. if (domain[2]) {
  2104. hname = domain[2]
  2105. } else {
  2106. hname = ''
  2107. }
  2108. // 原漫画列表匹配
  2109. for (let i = 0; i < comicsWebInfo.length; i++) {
  2110. if (hname.includes(comicsWebInfo[i].domain)) {
  2111. currentComics = comicsWebInfo[i]
  2112. break
  2113. }
  2114.  
  2115. if ((0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .getType */ .oL)(comicsWebInfo[i].domain) === 'Array') {
  2116. if (comicsWebInfo[i].domain.includes(hname)) {
  2117. currentComics = comicsWebInfo[i]
  2118. break
  2119. }
  2120. }
  2121. }
  2122. // 导入规则列表匹配
  2123. if (currentComics === null) {
  2124. const userWebInfo = eval((0,_config_setup__WEBPACK_IMPORTED_MODULE_1__/* .getStorage */ .cF)('userWebInfo') || [])
  2125. for (let a = 0; a < userWebInfo.length; a++) {
  2126. if (hname.includes(userWebInfo[a].domain)) {
  2127. currentComics = userWebInfo[a]
  2128. break
  2129. }
  2130.  
  2131. if ((0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .getType */ .oL)(comicsWebInfo[i].domain) === 'Array') {
  2132. if (comicsWebInfo[i].domain.includes(hname)) {
  2133. currentComics = comicsWebInfo[i]
  2134. break
  2135. }
  2136. }
  2137. }
  2138. if (currentComics !== null && typeof currentComics.getImgs === 'string') {
  2139. window.request = _utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY
  2140. currentComics.getImgs = funSplicing(currentComics.getImgs)
  2141. }
  2142. }
  2143. }
  2144.  
  2145. function funSplicing(funStr) {
  2146. const getImgsGroup = funStr.match(/((async )?function\(.*{)([\s\S]*)/)
  2147. const funHead = getImgsGroup[1]
  2148. const funTail = getImgsGroup[3]
  2149. let insertCode = ''
  2150. if (funStr.includes('funstrToData')) {
  2151. insertCode = insertCode + _utils_index__WEBPACK_IMPORTED_MODULE_0__/* .funstrToData.toString */ .D.toString() + '\n'
  2152. }
  2153. if (funStr.includes('request')) {
  2154. insertCode = insertCode + 'const request = window.request' + '\n'
  2155. }
  2156. const code = `
  2157. (function(){
  2158. return ${funHead}
  2159. // 注入开始
  2160. ${insertCode}
  2161. // 注入结束
  2162. ${funTail}
  2163. })()`
  2164. const fun = eval(code)
  2165. // console.log('fun: ', fun.toString())
  2166. return fun
  2167. }
  2168.  
  2169.  
  2170.  
  2171. /***/ }),
  2172.  
  2173. /***/ 624:
  2174. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  2175.  
  2176. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  2177. /* harmony export */ "D": () => (/* binding */ funstrToData),
  2178. /* harmony export */ "HM": () => (/* binding */ loadStyle2),
  2179. /* harmony export */ "Sc": () => (/* binding */ trimSpecial),
  2180. /* harmony export */ "U3": () => (/* binding */ parseToDOM),
  2181. /* harmony export */ "WY": () => (/* binding */ request),
  2182. /* harmony export */ "Xr": () => (/* binding */ loadStyle),
  2183. /* harmony export */ "gJ": () => (/* binding */ getImage),
  2184. /* harmony export */ "gw": () => (/* binding */ delay),
  2185. /* harmony export */ "m1": () => (/* binding */ getdomain),
  2186. /* harmony export */ "oL": () => (/* binding */ getType),
  2187. /* harmony export */ "qs": () => (/* binding */ startScroll),
  2188. /* harmony export */ "w1": () => (/* binding */ doThingsEachSecond),
  2189. /* harmony export */ "xo": () => (/* binding */ addZeroForNum),
  2190. /* harmony export */ "zd": () => (/* binding */ downFile)
  2191. /* harmony export */ });
  2192. /* unused harmony export getCookie */
  2193. /* harmony import */ var _utils_comics__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(872);
  2194. /* harmony import */ var _config_setup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(393);
  2195.  
  2196.  
  2197.  
  2198. const loadStyle = (url, name, text) => {
  2199. const head = document.getElementsByTagName('head')[0]
  2200. const style = document.createElement('style')
  2201. style.name = name
  2202. style.id = name
  2203. style.innerText = text
  2204. head.appendChild(style)
  2205. }
  2206.  
  2207. const loadStyle2 = (url) => {
  2208. return new Promise((resolve, reject) => {
  2209. const head = document.getElementsByTagName('head')[0]
  2210. const link = document.createElement('link')
  2211. link.rel = 'stylesheet'
  2212. link.type = 'text/css'
  2213. link.href = url
  2214. link.media = 'all'
  2215. head.appendChild(link)
  2216. setTimeout(() => {
  2217. resolve(true)
  2218. }, 1200)
  2219. })
  2220. }
  2221.  
  2222. function trimSpecial(string) {
  2223. if (string !== '') {
  2224. const pattern = /[`~!@#$^\&*|{}'<>?:;~']/g
  2225. string = string.replace(pattern, '')
  2226. string = string.replace(/\n|\r/g, '').trim()
  2227. }
  2228. return string
  2229. }
  2230.  
  2231. const getType = (obj) => {
  2232. const type = typeof obj
  2233. if (type !== 'object') {
  2234. return type
  2235. }
  2236. return Object.prototype.toString.call(obj).replace(/^\[object (\S+)\]$/, '$1')
  2237. }
  2238.  
  2239. const getFrameContent = async(id, url) => {
  2240. const iframePromise = new Promise((resolve, reject) => {
  2241. const iframe = document.createElement('iframe')
  2242. iframe.id = id
  2243. iframe.height = 150
  2244. iframe.class = '10comicframe'
  2245. iframe.style.visibility = 'hidden'
  2246. iframe.src = url
  2247. document.body.appendChild(iframe)
  2248. if (iframe.attachEvent) {
  2249. iframe.attachEvent('onload', function() {
  2250. resolve(iframe.contentDocument.body.outerHTML)
  2251. })
  2252. } else {
  2253. iframe.onload = function() {
  2254. resolve(iframe.contentDocument.body.outerHTML)
  2255. }
  2256. }
  2257. })
  2258.  
  2259. return new Promise((resolve, reject) => {
  2260. iframePromise.then(
  2261. (success) => {
  2262. resolve(success)
  2263. },
  2264. error => {
  2265. console.log(error)
  2266. reject('')
  2267. }
  2268. )
  2269. })
  2270. }
  2271.  
  2272. const getImage = async(processData) => {
  2273. try {
  2274. const url = processData.url
  2275. let response = ''
  2276. // 获取网页内容
  2277. if (!_utils_comics__WEBPACK_IMPORTED_MODULE_0__/* .currentComics.useFrame */ .Po.useFrame) {
  2278. const data = await request({ method: 'get', url, useCookie: processData.isPay })
  2279. response = data.response
  2280. } else {
  2281. const arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'g', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
  2282. const random1 = Math.round(Math.random() * 25) + 0
  2283. const random2 = Math.round(Math.random() * 25) + 0
  2284. const id = 'ifr' + new Date().getTime() + arr[random1] + arr[random2]
  2285. response = await getFrameContent(id, url)
  2286. processData.frameId = id
  2287. }
  2288.  
  2289. const imgs = await _utils_comics__WEBPACK_IMPORTED_MODULE_0__/* .currentComics.getImgs */ .Po.getImgs(response, processData)
  2290. return new Promise((resolve, reject) => {
  2291. resolve(imgs)
  2292. })
  2293. } catch (error) {
  2294. console.log('getImageError: ', error)
  2295. return new Promise((resolve, reject) => {
  2296. reject([])
  2297. })
  2298. }
  2299. }
  2300.  
  2301. const request = async function request(...details) {
  2302. let method, url, data, headers, responseType, timeout, useCookie, cookie, onload, onerror, ontimeout, tail
  2303. // 只有一个参数
  2304. if (details.length === 1) {
  2305. ({ method, url, data, headers, responseType, timeout, useCookie, onload, onerror, ontimeout } = details[0])
  2306. useCookie ? cookie = document.cookie : ''
  2307. } else { // 含多个参数时 [*method, *url, data, headers]
  2308. [method, url, ...tail] = details
  2309. if (tail) {
  2310. tail.length > 0 ? (data = tail[0]) : ''
  2311. tail.length > 1 ? (headers = tail[1]) : ''
  2312. }
  2313. }
  2314.  
  2315. // 设置currentComics中的 headers
  2316. if (!headers && _utils_comics__WEBPACK_IMPORTED_MODULE_0__/* .currentComics */ .Po !== null) {
  2317. headers = _utils_comics__WEBPACK_IMPORTED_MODULE_0__/* .currentComics.headers */ .Po.headers
  2318. }
  2319.  
  2320. // 无效地址
  2321. if (url === null || url === '') {
  2322. return new Promise((resolve, reject) => {
  2323. resolve('')
  2324. })
  2325. }
  2326.  
  2327. return new Promise((resolve, reject) => {
  2328. // eslint-disable-next-line no-undef
  2329. GM_xmlhttpRequest({
  2330. method,
  2331. url,
  2332. headers: (headers || ''),
  2333. data: (data || null),
  2334. responseType,
  2335. timeout: (timeout || 30 * 1000),
  2336. cookie: (cookie || ''),
  2337. onload: (onload || function(res) {
  2338. resolve(res)
  2339. }),
  2340. onerror: (onerror || function(e) {
  2341. console.log('request-e: ', e)
  2342. resolve('onerror')
  2343. }),
  2344. ontimeout: (ontimeout || function() {
  2345. console.log('ontimeout: ', ontimeout)
  2346. resolve('timeout')
  2347. })
  2348. })
  2349. })
  2350. }
  2351.  
  2352. let rootDir = '10Comic'
  2353.  
  2354. try {
  2355. rootDir = (0,_config_setup__WEBPACK_IMPORTED_MODULE_1__/* .getStorage */ .cF)('rootDir')
  2356. } catch (error) {
  2357. //
  2358. }
  2359.  
  2360. const downFile = async(...detail) => {
  2361. let url, name, headers, onload, onerror, ontimeout
  2362. if (detail.length === 1) {
  2363. ({ url, name, headers, onload, onerror, ontimeout } = detail[0])
  2364. } else {
  2365. url = detail[0]
  2366. name = detail[1]
  2367. }
  2368. name = name.replace(/\s+/ig, ' ')
  2369.  
  2370. return new Promise((resolve, reject) => {
  2371. // eslint-disable-next-line no-undef
  2372. GM_download({
  2373. url,
  2374. name: rootDir + '\\' + name,
  2375. headers: headers,
  2376. onload: (onload || function(res) {
  2377. resolve(true)
  2378. }),
  2379. onerror: (onerror || function(e) {
  2380. console.log('downFile-e: ', e)
  2381. resolve(false)
  2382. }),
  2383. ontimeout: (ontimeout || function() {
  2384. resolve(false)
  2385. })
  2386. })
  2387. })
  2388. }
  2389.  
  2390. const addZeroForNum = (num, bitNum) => {
  2391. let newNum = num + ''
  2392. if (newNum.length < bitNum) {
  2393. const zeroStr = new Array(bitNum + 1).join('0')
  2394. newNum = zeroStr + newNum
  2395. newNum = newNum.slice(-bitNum)
  2396. return newNum
  2397. }
  2398. return newNum
  2399. }
  2400.  
  2401. // 网站匹配
  2402. const getdomain = (url) => {
  2403. if (!url) {
  2404. url = window.location.href
  2405. }
  2406. let hname = ''
  2407. var domain = url.split('/')
  2408. if (domain[2]) {
  2409. hname = domain[2]
  2410. } else {
  2411. hname = ''
  2412. }
  2413. return hname
  2414. }
  2415.  
  2416. const parseToDOM = (str) => {
  2417. var div = document.createElement('div')
  2418. if (typeof str === 'string') {
  2419. div.innerHTML = str
  2420. }
  2421. return div
  2422. }
  2423.  
  2424. function delay(n) {
  2425. return new Promise(function(resolve) {
  2426. setTimeout(resolve, n * 1000)
  2427. })
  2428. }
  2429.  
  2430. // 在规定时间内坚持做某事,直到事情成功为止
  2431. // @param {num, func} (secondNum, somethimefunc)
  2432. // * secondNum 秒数
  2433. // * somethimefunc 事情函数,执行时返回值为“true”代表成功了
  2434. async function doThingsEachSecond(secondNum, somethimefunc) {
  2435. let i = 0; let res
  2436. do {
  2437. res = somethimefunc()
  2438. if (res) {
  2439. i = secondNum // res 成功了,还没有结束,偷偷改个时间吧
  2440. } else {
  2441. await delay(1)
  2442. }
  2443. i++
  2444. } while (i < secondNum)
  2445. }
  2446.  
  2447. // 窗口滚动
  2448. // @param {window, funcArray} (scrollWindow, conditions)
  2449. // * scrollWindow 滚动窗口
  2450. // * conditions 结束滚动窗口条件函数数组
  2451. async function startScroll(scrollWindow, conditions) {
  2452. return new Promise((resolve, reject) => {
  2453. const id = setInterval(function() {
  2454. scrollWindow.scrollBy(0, 50)
  2455. conditions.forEach((func, index) => {
  2456. // 执行func
  2457. if (func()) {
  2458. clearInterval(id)
  2459. resolve([id, `condition_${index + 1}`])
  2460. }
  2461. })
  2462. }, 200)
  2463. })
  2464. }
  2465.  
  2466. const funstrToData = function funstrToData(str, reg) {
  2467. const group = str.matchAll(reg)
  2468. const func = []
  2469. for (const item of group) {
  2470. // 匿名函数主体
  2471. // function (str){
  2472. // console.log(str);
  2473. // }
  2474. func.push(item[1])
  2475. // 函数 执行参数部分
  2476. func.push(item[2]) // ("aaaaa")
  2477. }
  2478. // 如没有 参数
  2479. if (!func[1]) {
  2480. func[1] = '()'
  2481. }
  2482. const code = '(' + func[0] + ')' + func[1]
  2483. // code =>
  2484. // (function (str){
  2485. // //此时会输出 aaaaa
  2486. // console.log(str);
  2487. // })("aaaaa")
  2488.  
  2489. // eslint-disable-next-line no-eval
  2490. const data = eval(code)
  2491. return data
  2492. }
  2493.  
  2494. const getCookie = (cookieName) => {
  2495. const strCookie = document.cookie
  2496. const cookieList = strCookie.split(';')
  2497.  
  2498. for (let i = 0; i < cookieList.length; i++) {
  2499. const arr = cookieList[i].split('=')
  2500. if (cookieName === arr[0].trim()) {
  2501. return arr[1]
  2502. }
  2503. }
  2504.  
  2505. return ''
  2506. }
  2507.  
  2508.  
  2509. /***/ }),
  2510.  
  2511. /***/ 871:
  2512. /***/ ((module) => {
  2513.  
  2514. module.exports = vant;
  2515.  
  2516. /***/ })
  2517.  
  2518. /******/ });
  2519. /************************************************************************/
  2520. /******/ // The module cache
  2521. /******/ var __webpack_module_cache__ = {};
  2522. /******/
  2523. /******/ // The require function
  2524. /******/ function __webpack_require__(moduleId) {
  2525. /******/ // Check if module is in cache
  2526. /******/ var cachedModule = __webpack_module_cache__[moduleId];
  2527. /******/ if (cachedModule !== undefined) {
  2528. /******/ return cachedModule.exports;
  2529. /******/ }
  2530. /******/ // Create a new module (and put it into the cache)
  2531. /******/ var module = __webpack_module_cache__[moduleId] = {
  2532. /******/ id: moduleId,
  2533. /******/ // no module.loaded needed
  2534. /******/ exports: {}
  2535. /******/ };
  2536. /******/
  2537. /******/ // Execute the module function
  2538. /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
  2539. /******/
  2540. /******/ // Return the exports of the module
  2541. /******/ return module.exports;
  2542. /******/ }
  2543. /******/
  2544. /************************************************************************/
  2545. /******/ /* webpack/runtime/compat get default export */
  2546. /******/ (() => {
  2547. /******/ // getDefaultExport function for compatibility with non-harmony modules
  2548. /******/ __webpack_require__.n = (module) => {
  2549. /******/ var getter = module && module.__esModule ?
  2550. /******/ () => (module['default']) :
  2551. /******/ () => (module);
  2552. /******/ __webpack_require__.d(getter, { a: getter });
  2553. /******/ return getter;
  2554. /******/ };
  2555. /******/ })();
  2556. /******/
  2557. /******/ /* webpack/runtime/create fake namespace object */
  2558. /******/ (() => {
  2559. /******/ var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);
  2560. /******/ var leafPrototypes;
  2561. /******/ // create a fake namespace object
  2562. /******/ // mode & 1: value is a module id, require it
  2563. /******/ // mode & 2: merge all properties of value into the ns
  2564. /******/ // mode & 4: return value when already ns object
  2565. /******/ // mode & 16: return value when it's Promise-like
  2566. /******/ // mode & 8|1: behave like require
  2567. /******/ __webpack_require__.t = function(value, mode) {
  2568. /******/ if(mode & 1) value = this(value);
  2569. /******/ if(mode & 8) return value;
  2570. /******/ if(typeof value === 'object' && value) {
  2571. /******/ if((mode & 4) && value.__esModule) return value;
  2572. /******/ if((mode & 16) && typeof value.then === 'function') return value;
  2573. /******/ }
  2574. /******/ var ns = Object.create(null);
  2575. /******/ __webpack_require__.r(ns);
  2576. /******/ var def = {};
  2577. /******/ leafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];
  2578. /******/ for(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {
  2579. /******/ Object.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));
  2580. /******/ }
  2581. /******/ def['default'] = () => (value);
  2582. /******/ __webpack_require__.d(ns, def);
  2583. /******/ return ns;
  2584. /******/ };
  2585. /******/ })();
  2586. /******/
  2587. /******/ /* webpack/runtime/define property getters */
  2588. /******/ (() => {
  2589. /******/ // define getter functions for harmony exports
  2590. /******/ __webpack_require__.d = (exports, definition) => {
  2591. /******/ for(var key in definition) {
  2592. /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
  2593. /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
  2594. /******/ }
  2595. /******/ }
  2596. /******/ };
  2597. /******/ })();
  2598. /******/
  2599. /******/ /* webpack/runtime/hasOwnProperty shorthand */
  2600. /******/ (() => {
  2601. /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
  2602. /******/ })();
  2603. /******/
  2604. /******/ /* webpack/runtime/make namespace object */
  2605. /******/ (() => {
  2606. /******/ // define __esModule on exports
  2607. /******/ __webpack_require__.r = (exports) => {
  2608. /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
  2609. /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
  2610. /******/ }
  2611. /******/ Object.defineProperty(exports, '__esModule', { value: true });
  2612. /******/ };
  2613. /******/ })();
  2614. /******/
  2615. /******/ /* webpack/runtime/nonce */
  2616. /******/ (() => {
  2617. /******/ __webpack_require__.nc = undefined;
  2618. /******/ })();
  2619. /******/
  2620. /************************************************************************/
  2621. var __webpack_exports__ = {};
  2622. // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
  2623. (() => {
  2624.  
  2625. ;// CONCATENATED MODULE: external "Vue"
  2626. const external_Vue_namespaceObject = Vue;
  2627. var external_Vue_default = /*#__PURE__*/__webpack_require__.n(external_Vue_namespaceObject);
  2628. ;// 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&
  2629. var render = function () {
  2630. var _vm = this
  2631. var _h = _vm.$createElement
  2632. var _c = _vm._self._c || _h
  2633. return _c(
  2634. "div",
  2635. { staticClass: "yi-ling-app" },
  2636. [
  2637. _c(
  2638. "div",
  2639. {
  2640. staticClass: "card",
  2641. class: { "card--hide": _vm.isHide },
  2642. attrs: { id: "app-right" },
  2643. },
  2644. [
  2645. _c(
  2646. "div",
  2647. [
  2648. _c("van-nav-bar", {
  2649. attrs: { id: "border-top-set", title: _vm.titles[this.active] },
  2650. }),
  2651. _vm._v(" "),
  2652. _c(
  2653. "van-swipe",
  2654. {
  2655. ref: "swipe",
  2656. staticClass: "my-swipe",
  2657. staticStyle: { cursor: "default" },
  2658. attrs: {
  2659. "indicator-color": "white",
  2660. touchable: false,
  2661. duration: 5,
  2662. "initial-swipe": _vm.active,
  2663. "show-indicators": false,
  2664. },
  2665. },
  2666. [
  2667. _c(
  2668. "van-swipe-item",
  2669. { staticClass: "swipeitem" },
  2670. [_c("Home")],
  2671. 1
  2672. ),
  2673. _vm._v(" "),
  2674. _c(
  2675. "van-swipe-item",
  2676. { staticClass: "swipeitem" },
  2677. [_c("Table")],
  2678. 1
  2679. ),
  2680. _vm._v(" "),
  2681. _c(
  2682. "van-swipe-item",
  2683. { staticClass: "swipeitem" },
  2684. [_c("Down")],
  2685. 1
  2686. ),
  2687. _vm._v(" "),
  2688. _c(
  2689. "van-swipe-item",
  2690. { staticClass: "swipeitem" },
  2691. [_c("Setting")],
  2692. 1
  2693. ),
  2694. ],
  2695. 1
  2696. ),
  2697. _vm._v(" "),
  2698. _c(
  2699. "div",
  2700. { staticClass: "app-container " },
  2701. [
  2702. _c(
  2703. "van-tabbar",
  2704. {
  2705. staticStyle: { position: "absolute" },
  2706. attrs: {
  2707. id: "border-bottom-set",
  2708. "active-color": "#ee0000",
  2709. "inactive-color": "#000",
  2710. },
  2711. model: {
  2712. value: _vm.active,
  2713. callback: function ($$v) {
  2714. _vm.active = $$v
  2715. },
  2716. expression: "active",
  2717. },
  2718. },
  2719. [
  2720. _c("van-tabbar-item", { attrs: { icon: "home-o" } }),
  2721. _vm._v(" "),
  2722. _c("van-tabbar-item", { attrs: { icon: "todo-list-o" } }),
  2723. _vm._v(" "),
  2724. _c("van-tabbar-item", { attrs: { icon: "underway-o" } }),
  2725. _vm._v(" "),
  2726. _c("van-tabbar-item", { attrs: { icon: "setting-o" } }),
  2727. ],
  2728. 1
  2729. ),
  2730. ],
  2731. 1
  2732. ),
  2733. _vm._v(" "),
  2734. _c("div", { staticClass: "card__btn", on: { click: _vm.hide } }, [
  2735. _c(
  2736. "svg",
  2737. {
  2738. staticClass: "icon",
  2739. attrs: {
  2740. t: "1663828267105",
  2741. viewBox: "0 0 1024 1024",
  2742. version: "1.1",
  2743. "p-id": "2601",
  2744. },
  2745. },
  2746. [
  2747. _c("path", {
  2748. attrs: {
  2749. 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",
  2750. "p-id": "2134",
  2751. fill: "#ee000088",
  2752. },
  2753. }),
  2754. ]
  2755. ),
  2756. ]),
  2757. ],
  2758. 1
  2759. ),
  2760. ]
  2761. ),
  2762. _vm._v(" "),
  2763. _c("Search"),
  2764. ],
  2765. 1
  2766. )
  2767. }
  2768. var staticRenderFns = []
  2769. render._withStripped = true
  2770.  
  2771.  
  2772. ;// CONCATENATED MODULE: ./src/app.vue?vue&type=template&id=5ef48958&scoped=true&
  2773.  
  2774. ;// 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&
  2775. var homevue_type_template_id_7eb2bc79_scoped_true_render = function () {
  2776. var this$1 = this
  2777. var _vm = this
  2778. var _h = _vm.$createElement
  2779. var _c = _vm._self._c || _h
  2780. return _c(
  2781. "div",
  2782. { staticClass: "homeindex" },
  2783. [
  2784. _c(
  2785. "div",
  2786. {
  2787. style: {
  2788. position: "relative",
  2789. margin: "-5px 0 2px 15px",
  2790. zIndex: 999999,
  2791. },
  2792. attrs: { id: "selectId" },
  2793. on: { mouseleave: _vm.leaveCollapse },
  2794. },
  2795. [
  2796. _c(
  2797. "van-collapse",
  2798. {
  2799. staticStyle: { width: "200px" },
  2800. model: {
  2801. value: _vm.activeNames,
  2802. callback: function ($$v) {
  2803. _vm.activeNames = $$v
  2804. },
  2805. expression: "activeNames",
  2806. },
  2807. },
  2808. [
  2809. _c(
  2810. "van-collapse-item",
  2811. {
  2812. staticClass: "xxx",
  2813. attrs: { title: _vm.checkTitle, name: "1" },
  2814. },
  2815. [
  2816. _c(
  2817. "div",
  2818. {
  2819. on: {
  2820. click: function ($event) {
  2821. return _vm.checkContent(1, "原列表")
  2822. },
  2823. },
  2824. },
  2825. [_vm._v("原列表")]
  2826. ),
  2827. _vm._v(" "),
  2828. _c("br"),
  2829. _vm._v(" "),
  2830. _c(
  2831. "div",
  2832. {
  2833. on: {
  2834. click: function ($event) {
  2835. return _vm.checkContent(2, "导入规则列表")
  2836. },
  2837. },
  2838. },
  2839. [_vm._v("导入规则列表")]
  2840. ),
  2841. ]
  2842. ),
  2843. ],
  2844. 1
  2845. ),
  2846. _vm._v(" "),
  2847. _c("van-icon", {
  2848. attrs: {
  2849. id: "search-ico",
  2850. name: "search",
  2851. size: "30",
  2852. color: "#ee0000",
  2853. },
  2854. on: {
  2855. click: function () {
  2856. this$1.$bus.$emit("showSearchPage")
  2857. },
  2858. },
  2859. }),
  2860. ],
  2861. 1
  2862. ),
  2863. _vm._v(" "),
  2864. _vm.checkValue == 1
  2865. ? _c(
  2866. "van-cell-group",
  2867. { attrs: { inset: "" } },
  2868. _vm._l(_vm.originalInfo, function (item, index) {
  2869. return _c("van-cell", {
  2870. key: index,
  2871. attrs: { "is-link": "" },
  2872. on: {
  2873. click: function ($event) {
  2874. return _vm.jump(item.homepage)
  2875. },
  2876. },
  2877. scopedSlots: _vm._u(
  2878. [
  2879. {
  2880. key: "title",
  2881. fn: function () {
  2882. return [
  2883. _c("span", [_vm._v(_vm._s(item.webName))]),
  2884. _vm._v(" "),
  2885. item.webDesc
  2886. ? _c("van-icon", {
  2887. attrs: {
  2888. title: item.webDesc,
  2889. name: "info-o",
  2890. color: "red",
  2891. },
  2892. })
  2893. : _vm._e(),
  2894. ]
  2895. },
  2896. proxy: true,
  2897. },
  2898. ],
  2899. null,
  2900. true
  2901. ),
  2902. })
  2903. }),
  2904. 1
  2905. )
  2906. : _vm._e(),
  2907. _vm._v(" "),
  2908. _vm.checkValue == 2
  2909. ? _c(
  2910. "div",
  2911. [
  2912. _c(
  2913. "van-cell-group",
  2914. { attrs: { inset: "" } },
  2915. _vm._l(_vm.userWebInfo, function (item, index) {
  2916. return _c("van-cell", {
  2917. key: index,
  2918. attrs: { "is-link": "" },
  2919. on: {
  2920. click: function ($event) {
  2921. return _vm.jump(item.homepage)
  2922. },
  2923. },
  2924. scopedSlots: _vm._u(
  2925. [
  2926. {
  2927. key: "title",
  2928. fn: function () {
  2929. return [
  2930. _c("span", [_vm._v(_vm._s(item.webName))]),
  2931. _vm._v(" "),
  2932. item.webDesc
  2933. ? _c("van-icon", {
  2934. attrs: {
  2935. title: item.webDesc,
  2936. name: "info-o",
  2937. color: "red",
  2938. },
  2939. })
  2940. : _vm._e(),
  2941. ]
  2942. },
  2943. proxy: true,
  2944. },
  2945. ],
  2946. null,
  2947. true
  2948. ),
  2949. })
  2950. }),
  2951. 1
  2952. ),
  2953. ],
  2954. 1
  2955. )
  2956. : _vm._e(),
  2957. ],
  2958. 1
  2959. )
  2960. }
  2961. var homevue_type_template_id_7eb2bc79_scoped_true_staticRenderFns = []
  2962. homevue_type_template_id_7eb2bc79_scoped_true_render._withStripped = true
  2963.  
  2964.  
  2965. ;// CONCATENATED MODULE: ./src/views/home.vue?vue&type=template&id=7eb2bc79&scoped=true&
  2966.  
  2967. // EXTERNAL MODULE: ./src/utils/comics.js
  2968. var comics = __webpack_require__(872);
  2969. ;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/home.vue?vue&type=script&lang=js&
  2970. //
  2971. //
  2972. //
  2973. //
  2974. //
  2975. //
  2976. //
  2977. //
  2978. //
  2979. //
  2980. //
  2981. //
  2982. //
  2983. //
  2984. //
  2985. //
  2986. //
  2987. //
  2988. //
  2989. //
  2990. //
  2991. //
  2992. //
  2993. //
  2994. //
  2995. //
  2996. //
  2997. //
  2998. //
  2999. //
  3000. //
  3001. //
  3002. //
  3003. //
  3004. //
  3005. //
  3006. //
  3007. //
  3008. //
  3009. //
  3010. //
  3011. //
  3012. //
  3013. //
  3014. //
  3015. //
  3016. //
  3017. //
  3018. //
  3019. //
  3020. //
  3021. //
  3022. //
  3023. //
  3024. //
  3025. //
  3026. //
  3027. //
  3028. //
  3029. //
  3030. //
  3031.  
  3032.  
  3033.  
  3034.  
  3035. /* harmony default export */ const homevue_type_script_lang_js_ = ({
  3036. name: 'Index',
  3037. data() {
  3038. return {
  3039. originalInfo: [],
  3040. userWebInfo: [],
  3041. //
  3042. activeNames: [1],
  3043. checkValue: 1,
  3044. checkTitle: '原列表'
  3045.  
  3046. }
  3047. },
  3048. created() {
  3049. this.getWeb()
  3050. },
  3051. mounted() {
  3052. this.$bus.$on('getWeb', this.getWeb)
  3053. },
  3054. methods: {
  3055. getWeb() {
  3056. const { originalInfo, userWebInfo } = (0,comics/* getWebList */.eT)()
  3057. this.originalInfo = originalInfo.filter((item) => { return item.showInList !== false })
  3058. this.userWebInfo = userWebInfo
  3059. },
  3060. checkContent(val, title) {
  3061. this.checkValue = val
  3062. this.checkTitle = title
  3063. this.activeNames = []
  3064. },
  3065. leaveCollapse() {
  3066. this.activeNames = []
  3067. },
  3068. jump(url) {
  3069. window.open(url, '_blank')
  3070. // window.location.href = url
  3071. }
  3072. }
  3073. });
  3074.  
  3075. ;// CONCATENATED MODULE: ./src/views/home.vue?vue&type=script&lang=js&
  3076. /* harmony default export */ const views_homevue_type_script_lang_js_ = (homevue_type_script_lang_js_);
  3077. // EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js
  3078. var injectStylesIntoStyleTag = __webpack_require__(379);
  3079. var injectStylesIntoStyleTag_default = /*#__PURE__*/__webpack_require__.n(injectStylesIntoStyleTag);
  3080. // EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/styleDomAPI.js
  3081. var styleDomAPI = __webpack_require__(795);
  3082. var styleDomAPI_default = /*#__PURE__*/__webpack_require__.n(styleDomAPI);
  3083. // EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/insertBySelector.js
  3084. var insertBySelector = __webpack_require__(569);
  3085. var insertBySelector_default = /*#__PURE__*/__webpack_require__.n(insertBySelector);
  3086. // EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js
  3087. var setAttributesWithoutAttributes = __webpack_require__(565);
  3088. var setAttributesWithoutAttributes_default = /*#__PURE__*/__webpack_require__.n(setAttributesWithoutAttributes);
  3089. // EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/insertStyleElement.js
  3090. var insertStyleElement = __webpack_require__(216);
  3091. var insertStyleElement_default = /*#__PURE__*/__webpack_require__.n(insertStyleElement);
  3092. // EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/styleTagTransform.js
  3093. var styleTagTransform = __webpack_require__(589);
  3094. var styleTagTransform_default = /*#__PURE__*/__webpack_require__.n(styleTagTransform);
  3095. // 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&
  3096. var homevue_type_style_index_0_id_7eb2bc79_lang_less_scoped_true_ = __webpack_require__(782);
  3097. ;// 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&
  3098.  
  3099.  
  3100. var options = {};
  3101.  
  3102. options.styleTagTransform = (styleTagTransform_default());
  3103. options.setAttributes = (setAttributesWithoutAttributes_default());
  3104.  
  3105. options.insert = insertBySelector_default().bind(null, "head");
  3106. options.domAPI = (styleDomAPI_default());
  3107. options.insertStyleElement = (insertStyleElement_default());
  3108.  
  3109. var update = injectStylesIntoStyleTag_default()(homevue_type_style_index_0_id_7eb2bc79_lang_less_scoped_true_/* default */.Z, options);
  3110.  
  3111.  
  3112.  
  3113.  
  3114. /* harmony default export */ const views_homevue_type_style_index_0_id_7eb2bc79_lang_less_scoped_true_ = (homevue_type_style_index_0_id_7eb2bc79_lang_less_scoped_true_/* default */.Z && homevue_type_style_index_0_id_7eb2bc79_lang_less_scoped_true_/* default.locals */.Z.locals ? homevue_type_style_index_0_id_7eb2bc79_lang_less_scoped_true_/* default.locals */.Z.locals : undefined);
  3115.  
  3116. ;// CONCATENATED MODULE: ./src/views/home.vue?vue&type=style&index=0&id=7eb2bc79&lang=less&scoped=true&
  3117.  
  3118. ;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
  3119. /* globals __VUE_SSR_CONTEXT__ */
  3120.  
  3121. // IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
  3122. // This module is a runtime utility for cleaner component module output and will
  3123. // be included in the final webpack user bundle.
  3124.  
  3125. function normalizeComponent (
  3126. scriptExports,
  3127. render,
  3128. staticRenderFns,
  3129. functionalTemplate,
  3130. injectStyles,
  3131. scopeId,
  3132. moduleIdentifier, /* server only */
  3133. shadowMode /* vue-cli only */
  3134. ) {
  3135. // Vue.extend constructor export interop
  3136. var options = typeof scriptExports === 'function'
  3137. ? scriptExports.options
  3138. : scriptExports
  3139.  
  3140. // render functions
  3141. if (render) {
  3142. options.render = render
  3143. options.staticRenderFns = staticRenderFns
  3144. options._compiled = true
  3145. }
  3146.  
  3147. // functional template
  3148. if (functionalTemplate) {
  3149. options.functional = true
  3150. }
  3151.  
  3152. // scopedId
  3153. if (scopeId) {
  3154. options._scopeId = 'data-v-' + scopeId
  3155. }
  3156.  
  3157. var hook
  3158. if (moduleIdentifier) { // server build
  3159. hook = function (context) {
  3160. // 2.3 injection
  3161. context =
  3162. context || // cached call
  3163. (this.$vnode && this.$vnode.ssrContext) || // stateful
  3164. (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
  3165. // 2.2 with runInNewContext: true
  3166. if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
  3167. context = __VUE_SSR_CONTEXT__
  3168. }
  3169. // inject component styles
  3170. if (injectStyles) {
  3171. injectStyles.call(this, context)
  3172. }
  3173. // register component module identifier for async chunk inferrence
  3174. if (context && context._registeredComponents) {
  3175. context._registeredComponents.add(moduleIdentifier)
  3176. }
  3177. }
  3178. // used by ssr in case component is cached and beforeCreate
  3179. // never gets called
  3180. options._ssrRegister = hook
  3181. } else if (injectStyles) {
  3182. hook = shadowMode
  3183. ? function () {
  3184. injectStyles.call(
  3185. this,
  3186. (options.functional ? this.parent : this).$root.$options.shadowRoot
  3187. )
  3188. }
  3189. : injectStyles
  3190. }
  3191.  
  3192. if (hook) {
  3193. if (options.functional) {
  3194. // for template-only hot-reload because in that case the render fn doesn't
  3195. // go through the normalizer
  3196. options._injectStyles = hook
  3197. // register for functional component in vue file
  3198. var originalRender = options.render
  3199. options.render = function renderWithStyleInjection (h, context) {
  3200. hook.call(context)
  3201. return originalRender(h, context)
  3202. }
  3203. } else {
  3204. // inject component registration as beforeCreate hook
  3205. var existing = options.beforeCreate
  3206. options.beforeCreate = existing
  3207. ? [].concat(existing, hook)
  3208. : [hook]
  3209. }
  3210. }
  3211.  
  3212. return {
  3213. exports: scriptExports,
  3214. options: options
  3215. }
  3216. }
  3217.  
  3218. ;// CONCATENATED MODULE: ./src/views/home.vue
  3219.  
  3220.  
  3221.  
  3222. ;
  3223.  
  3224.  
  3225. /* normalize component */
  3226.  
  3227. var component = normalizeComponent(
  3228. views_homevue_type_script_lang_js_,
  3229. homevue_type_template_id_7eb2bc79_scoped_true_render,
  3230. homevue_type_template_id_7eb2bc79_scoped_true_staticRenderFns,
  3231. false,
  3232. null,
  3233. "7eb2bc79",
  3234. null
  3235. )
  3236.  
  3237. /* hot reload */
  3238. if (false) { var api; }
  3239. component.options.__file = "src/views/home.vue"
  3240. /* harmony default export */ const home = (component.exports);
  3241. ;// 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&
  3242. var tablevue_type_template_id_657d4b24_scoped_true_render = function () {
  3243. var this$1 = this
  3244. var _vm = this
  3245. var _h = _vm.$createElement
  3246. var _c = _vm._self._c || _h
  3247. return _c(
  3248. "div",
  3249. { ref: "comiclist", staticClass: "comiclist" },
  3250. [
  3251. _c(
  3252. "van-popup",
  3253. {
  3254. style: {
  3255. position: "absolute",
  3256. width: "100%",
  3257. height: "40%",
  3258. borderTop: "1px solid #fcadad",
  3259. marginTop: "-15px",
  3260. },
  3261. attrs: {
  3262. "get-container": "#chapterpage",
  3263. round: "",
  3264. position: "top",
  3265. },
  3266. model: {
  3267. value: _vm.show,
  3268. callback: function ($$v) {
  3269. _vm.show = $$v
  3270. },
  3271. expression: "show",
  3272. },
  3273. },
  3274. [
  3275. _c(
  3276. "van-cell-group",
  3277. {
  3278. style: {
  3279. display: "flex",
  3280. flexDirection: "column",
  3281. width: "350px",
  3282. margin: "10px auto",
  3283. },
  3284. attrs: { title: "选项", inset: "" },
  3285. },
  3286. [
  3287. _c(
  3288. "label",
  3289. {
  3290. staticStyle: {
  3291. "margin-top": "5px",
  3292. "margin-left": "16px",
  3293. "text-align": "left",
  3294. },
  3295. },
  3296. [_vm._v("本次下载(临时更改)")]
  3297. ),
  3298. _vm._v(" "),
  3299. _c("van-cell", {
  3300. attrs: { title: "" },
  3301. scopedSlots: _vm._u([
  3302. {
  3303. key: "right-icon",
  3304. fn: function () {
  3305. return [
  3306. _c("br"),
  3307. _vm._v(" "),
  3308. _c(
  3309. "van-radio-group",
  3310. {
  3311. attrs: { direction: "horizontal" },
  3312. model: {
  3313. value: _vm.downType,
  3314. callback: function ($$v) {
  3315. _vm.downType = $$v
  3316. },
  3317. expression: "downType",
  3318. },
  3319. },
  3320. [
  3321. _c("van-radio", { attrs: { name: 0 } }, [
  3322. _vm._v("直接下载"),
  3323. ]),
  3324. _vm._v(" "),
  3325. _c("van-radio", { attrs: { name: 1 } }, [
  3326. _vm._v("压缩下载"),
  3327. ]),
  3328. _vm._v(" "),
  3329. _c(
  3330. "van-radio",
  3331. {
  3332. attrs: {
  3333. name: 2,
  3334. title: "拼接后单张高度不超过 10000 像素",
  3335. },
  3336. },
  3337. [
  3338. _vm._v("拼接下载"),
  3339. _c("van-icon", {
  3340. attrs: { name: "info-o", color: "red" },
  3341. }),
  3342. ],
  3343. 1
  3344. ),
  3345. ],
  3346. 1
  3347. ),
  3348. ]
  3349. },
  3350. proxy: true,
  3351. },
  3352. ]),
  3353. }),
  3354. _vm._v(" "),
  3355. _c("van-cell", [
  3356. _c(
  3357. "div",
  3358. {
  3359. style: { display: "flex", justifyContent: "space-between" },
  3360. },
  3361. [
  3362. _c(
  3363. "van-checkbox",
  3364. {
  3365. attrs: { "label-position": "left" },
  3366. on: { change: _vm.characterSequenceChange },
  3367. model: {
  3368. value: _vm.useCharacterNum,
  3369. callback: function ($$v) {
  3370. _vm.useCharacterNum = $$v
  3371. },
  3372. expression: "useCharacterNum",
  3373. },
  3374. },
  3375. [_vm._v("章节补充序号\n ")]
  3376. ),
  3377. _vm._v(" "),
  3378. _c(
  3379. "van-checkbox",
  3380. {
  3381. attrs: {
  3382. disabled: !_vm.useCharacterNum,
  3383. "label-position": "left",
  3384. },
  3385. on: { change: _vm.characterSequenceChange },
  3386. model: {
  3387. value: _vm.characterNumSequence,
  3388. callback: function ($$v) {
  3389. _vm.characterNumSequence = $$v
  3390. },
  3391. expression: "characterNumSequence",
  3392. },
  3393. },
  3394. [_vm._v("—序号反序\n ")]
  3395. ),
  3396. ],
  3397. 1
  3398. ),
  3399. ]),
  3400. _vm._v(" "),
  3401. _c(
  3402. "div",
  3403. {
  3404. staticStyle: {
  3405. "margin-top": "8px",
  3406. display: "flex",
  3407. height: "25px",
  3408. "line-height": "25px",
  3409. "justify-content": "space-between",
  3410. },
  3411. },
  3412. [
  3413. _c(
  3414. "label",
  3415. {
  3416. staticStyle: {
  3417. "margin-left": "16px",
  3418. "text-align": "left",
  3419. },
  3420. attrs: { for: "" },
  3421. },
  3422. [_vm._v("下载当前阅读章节 (测试)")]
  3423. ),
  3424. _vm._v(" "),
  3425. _c(
  3426. "van-button",
  3427. {
  3428. attrs: { type: "default", size: "mini" },
  3429. on: { click: _vm.getCurrentWebData },
  3430. },
  3431. [_vm._v("获取")]
  3432. ),
  3433. ],
  3434. 1
  3435. ),
  3436. _vm._v(" "),
  3437. _c("van-cell", {
  3438. staticStyle: { "padding-top": "0px" },
  3439. attrs: { title: "" },
  3440. scopedSlots: _vm._u([
  3441. {
  3442. key: "right-icon",
  3443. fn: function () {
  3444. return [
  3445. _c("van-field", {
  3446. attrs: {
  3447. name: "defineComicName",
  3448. placeholder: "漫画名",
  3449. },
  3450. model: {
  3451. value: _vm.defineComicName,
  3452. callback: function ($$v) {
  3453. _vm.defineComicName = $$v
  3454. },
  3455. expression: "defineComicName",
  3456. },
  3457. }),
  3458. _vm._v(" "),
  3459. _c("van-field", {
  3460. attrs: {
  3461. name: "definechapterName",
  3462. placeholder: "章节名",
  3463. },
  3464. model: {
  3465. value: _vm.definechapterName,
  3466. callback: function ($$v) {
  3467. _vm.definechapterName = $$v
  3468. },
  3469. expression: "definechapterName",
  3470. },
  3471. }),
  3472. ]
  3473. },
  3474. proxy: true,
  3475. },
  3476. ]),
  3477. }),
  3478. ],
  3479. 1
  3480. ),
  3481. ],
  3482. 1
  3483. ),
  3484. _vm._v(" "),
  3485. _c(
  3486. "div",
  3487. { attrs: { id: "editItem" } },
  3488. [
  3489. _c(
  3490. "div",
  3491. [
  3492. _c(
  3493. "van-button",
  3494. {
  3495. attrs: { size: "mini", disabled: !_vm.showSelectList },
  3496. on: { click: _vm.selectAll },
  3497. },
  3498. [_vm._v("全选")]
  3499. ),
  3500. _vm._v(" "),
  3501. _c(
  3502. "van-button",
  3503. {
  3504. attrs: { size: "mini", disabled: !_vm.showSelectList },
  3505. on: { click: _vm.CancelSelect },
  3506. },
  3507. [_vm._v("取消")]
  3508. ),
  3509. ],
  3510. 1
  3511. ),
  3512. _vm._v(" "),
  3513. _c(
  3514. "div",
  3515. { staticClass: "editItem-center" },
  3516. [
  3517. _vm._v("\n 选\n "),
  3518. _c("van-icon", {
  3519. style: { cursor: "pointer" },
  3520. attrs: { name: "more-o", color: "#ee0000", size: "25" },
  3521. on: {
  3522. click: function () {
  3523. this$1.show = !this$1.show
  3524. },
  3525. },
  3526. }),
  3527. _vm._v(" 项\n "),
  3528. ],
  3529. 1
  3530. ),
  3531. _vm._v(" "),
  3532. _c(
  3533. "van-button",
  3534. {
  3535. staticStyle: { width: "80px" },
  3536. attrs: { size: "mini", round: "", disabled: !_vm.showSelectList },
  3537. on: { click: _vm.downSelectList },
  3538. },
  3539. [_vm._v("下载")]
  3540. ),
  3541. ],
  3542. 1
  3543. ),
  3544. _vm._v(" "),
  3545. _c(
  3546. "van-divider",
  3547. {
  3548. style: {
  3549. color: "#1989fa",
  3550. borderColor: "#1989fa",
  3551. padding: "0 15px",
  3552. height: "10px",
  3553. },
  3554. },
  3555. [
  3556. _c(
  3557. "code",
  3558. {
  3559. staticStyle: { cursor: "pointer" },
  3560. on: { click: _vm.reloadList },
  3561. },
  3562. [_vm._v("重载列表")]
  3563. ),
  3564. ]
  3565. ),
  3566. _vm._v(" "),
  3567. !_vm.showSelectList
  3568. ? _c(
  3569. "div",
  3570. [
  3571. _c(
  3572. "van-empty",
  3573. { attrs: { description: "漫画章节" } },
  3574. [
  3575. _c(
  3576. "van-button",
  3577. {
  3578. staticClass: "bottom-button",
  3579. staticStyle: { width: "120px" },
  3580. attrs: {
  3581. round: "",
  3582. disabled: _vm.comicName === "------",
  3583. },
  3584. on: { click: _vm.getSelectList },
  3585. },
  3586. [_vm._v(" 加载 ")]
  3587. ),
  3588. ],
  3589. 1
  3590. ),
  3591. _vm._v(" "),
  3592. _c(
  3593. "van-cell-group",
  3594. { attrs: { id: "comicinfo", inset: "" } },
  3595. [
  3596. _c("van-cell", {
  3597. attrs: { title: "网站", value: _vm.webname },
  3598. }),
  3599. _vm._v(" "),
  3600. _c("van-cell", {
  3601. attrs: { title: "漫画", value: _vm.comicName },
  3602. }),
  3603. ],
  3604. 1
  3605. ),
  3606. ],
  3607. 1
  3608. )
  3609. : _vm._e(),
  3610. _vm._v(" "),
  3611. _c("van-overlay", { attrs: { id: "overlayDom", show: _vm.overlayShow } }),
  3612. _vm._v(" "),
  3613. _vm.showSelectList
  3614. ? _c(
  3615. "div",
  3616. {
  3617. staticStyle: { "border-radius": "25px" },
  3618. attrs: { id: "select-list" },
  3619. },
  3620. [
  3621. _c("div", { attrs: { id: "select-list-top" } }, [
  3622. _c("div", { attrs: { id: "select-list-info" } }, [
  3623. _vm._m(0),
  3624. _vm._v(" "),
  3625. _c(
  3626. "div",
  3627. { attrs: { id: "select-list-info-right" } },
  3628. [
  3629. _c("van-icon", {
  3630. style: { cursor: "pointer" },
  3631. attrs: {
  3632. name: "edit",
  3633. color: "#66ccff",
  3634. size: "18",
  3635. title: "编辑",
  3636. },
  3637. on: { click: _vm.editList },
  3638. }),
  3639. _vm._v(" "),
  3640. _c("van-icon", {
  3641. style: { cursor: "pointer" },
  3642. attrs: {
  3643. name: "sort",
  3644. color: "#ee000088",
  3645. size: "18",
  3646. title: "排序",
  3647. },
  3648. on: { click: _vm.reverseList },
  3649. }),
  3650. ],
  3651. 1
  3652. ),
  3653. ]),
  3654. _vm._v(" "),
  3655. _c(
  3656. "div",
  3657. {
  3658. directives: [
  3659. {
  3660. name: "show",
  3661. rawName: "v-show",
  3662. value: _vm.isEditList,
  3663. expression: "isEditList",
  3664. },
  3665. ],
  3666. attrs: { id: "select-show-edit" },
  3667. },
  3668. [
  3669. _c(
  3670. "div",
  3671. {
  3672. staticStyle: {
  3673. display: "flex",
  3674. "align-items": "center",
  3675. },
  3676. },
  3677. [
  3678. _c(
  3679. "label",
  3680. {
  3681. staticStyle: {
  3682. "text-align": "left",
  3683. "margin-right": "20px",
  3684. },
  3685. attrs: { for: "" },
  3686. },
  3687. [_vm._v("删除所选章节首个字符")]
  3688. ),
  3689. _vm._v(" "),
  3690. _c(
  3691. "van-button",
  3692. {
  3693. attrs: { type: "default", size: "mini" },
  3694. on: {
  3695. click: function ($event) {
  3696. return _vm.delOnechapterNameFont(1)
  3697. },
  3698. },
  3699. },
  3700. [_vm._v("删除")]
  3701. ),
  3702. ],
  3703. 1
  3704. ),
  3705. _vm._v(" "),
  3706. _c(
  3707. "div",
  3708. {
  3709. staticStyle: {
  3710. display: "flex",
  3711. "align-items": "center",
  3712. "margin-top": "3px",
  3713. "margin-bottom": "3px",
  3714. },
  3715. },
  3716. [
  3717. _c(
  3718. "label",
  3719. {
  3720. staticStyle: {
  3721. "text-align": "left",
  3722. "margin-right": "20px",
  3723. },
  3724. attrs: { for: "" },
  3725. },
  3726. [_vm._v("删除所选章节末尾一个字符")]
  3727. ),
  3728. _vm._v(" "),
  3729. _c(
  3730. "van-button",
  3731. {
  3732. attrs: { type: "default", size: "mini" },
  3733. on: {
  3734. click: function ($event) {
  3735. return _vm.delOnechapterNameFont(-1)
  3736. },
  3737. },
  3738. },
  3739. [_vm._v("删除")]
  3740. ),
  3741. ],
  3742. 1
  3743. ),
  3744. ]
  3745. ),
  3746. ]),
  3747. _vm._v(" "),
  3748. _c(
  3749. "div",
  3750. { attrs: { id: "select-list-2" } },
  3751. [
  3752. _c(
  3753. "van-cell-group",
  3754. {
  3755. style: _vm.isEditList
  3756. ? "max-height: 530px;"
  3757. : "max-height: 585px;",
  3758. attrs: { id: "select-list-2-1", inset: "" },
  3759. },
  3760. _vm._l(_vm.list, function (item, index) {
  3761. return _c("van-cell", {
  3762. key: index,
  3763. style: _vm.titleStyle(
  3764. item.url,
  3765. item.isPay,
  3766. item.characterType
  3767. ),
  3768. attrs: {
  3769. title: _vm.showComicTitleName(
  3770. item.chapterNumStr,
  3771. item.chapterName
  3772. ),
  3773. },
  3774. scopedSlots: _vm._u(
  3775. [
  3776. _vm.isEditList
  3777. ? {
  3778. key: "title",
  3779. fn: function () {
  3780. return [
  3781. _c(
  3782. "div",
  3783. {
  3784. staticStyle: {
  3785. display: "flex",
  3786. "justify-content": "space-around",
  3787. },
  3788. },
  3789. [
  3790. _c(
  3791. "label",
  3792. {
  3793. attrs: {
  3794. for: item.chapterNumStr,
  3795. },
  3796. },
  3797. [_vm._v(_vm._s(item.chapterNumStr))]
  3798. ),
  3799. _vm._v(" "),
  3800. _c("input", {
  3801. directives: [
  3802. {
  3803. name: "model",
  3804. rawName: "v-model",
  3805. value: item.chapterName,
  3806. expression: "item.chapterName",
  3807. },
  3808. ],
  3809. staticClass: "input-chaptername",
  3810. attrs: { type: "text" },
  3811. domProps: {
  3812. value: item.chapterName,
  3813. },
  3814. on: {
  3815. input: function ($event) {
  3816. if ($event.target.composing) {
  3817. return
  3818. }
  3819. _vm.$set(
  3820. item,
  3821. "chapterName",
  3822. $event.target.value
  3823. )
  3824. },
  3825. },
  3826. }),
  3827. ]
  3828. ),
  3829. ]
  3830. },
  3831. proxy: true,
  3832. }
  3833. : null,
  3834. {
  3835. key: "right-icon",
  3836. fn: function () {
  3837. return [
  3838. _c("van-checkbox", {
  3839. staticClass: "selectChapter",
  3840. attrs: {
  3841. name: index,
  3842. disabled:
  3843. item.url !== "javascript:void();"
  3844. ? false
  3845. : true,
  3846. "icon-size": "24px",
  3847. },
  3848. on: {
  3849. click: function ($event) {
  3850. return _vm.radioSelect(
  3851. item.isSelect,
  3852. index
  3853. )
  3854. },
  3855. },
  3856. model: {
  3857. value: item.isSelect,
  3858. callback: function ($$v) {
  3859. _vm.$set(item, "isSelect", $$v)
  3860. },
  3861. expression: "item.isSelect",
  3862. },
  3863. }),
  3864. ]
  3865. },
  3866. proxy: true,
  3867. },
  3868. ],
  3869. null,
  3870. true
  3871. ),
  3872. })
  3873. }),
  3874. 1
  3875. ),
  3876. ],
  3877. 1
  3878. ),
  3879. ]
  3880. )
  3881. : _vm._e(),
  3882. ],
  3883. 1
  3884. )
  3885. }
  3886. var tablevue_type_template_id_657d4b24_scoped_true_staticRenderFns = [
  3887. function () {
  3888. var _vm = this
  3889. var _h = _vm.$createElement
  3890. var _c = _vm._self._c || _h
  3891. return _c("div", { attrs: { id: "select-list-info-left" } }, [
  3892. _c("span", [_vm._v("颜色")]),
  3893. _vm._v(" "),
  3894. _c("span", {
  3895. staticClass: "span-circle",
  3896. staticStyle: { background: "blue" },
  3897. attrs: { title: "免费" },
  3898. }),
  3899. _vm._v(" "),
  3900. _c("span", {
  3901. staticClass: "span-circle",
  3902. staticStyle: { background: "#AA6680" },
  3903. attrs: { title: "最新/其它/单行本/卷" },
  3904. }),
  3905. _vm._v(" "),
  3906. _c("span", {
  3907. staticClass: "span-circle",
  3908. staticStyle: { background: "red" },
  3909. attrs: { title: "付费" },
  3910. }),
  3911. _vm._v(" "),
  3912. _c("span", {
  3913. staticClass: "span-circle",
  3914. staticStyle: { background: "#ccc" },
  3915. attrs: { title: "无效" },
  3916. }),
  3917. ])
  3918. },
  3919. ]
  3920. tablevue_type_template_id_657d4b24_scoped_true_render._withStripped = true
  3921.  
  3922.  
  3923. ;// CONCATENATED MODULE: ./src/views/table.vue?vue&type=template&id=657d4b24&scoped=true&
  3924.  
  3925. // EXTERNAL MODULE: ./src/config/setup.js
  3926. var setup = __webpack_require__(393);
  3927. // EXTERNAL MODULE: ./src/utils/index.js
  3928. var utils = __webpack_require__(624);
  3929. // EXTERNAL MODULE: external "vant"
  3930. var external_vant_ = __webpack_require__(871);
  3931. ;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/table.vue?vue&type=script&lang=js&
  3932. //
  3933. //
  3934. //
  3935. //
  3936. //
  3937. //
  3938. //
  3939. //
  3940. //
  3941. //
  3942. //
  3943. //
  3944. //
  3945. //
  3946. //
  3947. //
  3948. //
  3949. //
  3950. //
  3951. //
  3952. //
  3953. //
  3954. //
  3955. //
  3956. //
  3957. //
  3958. //
  3959. //
  3960. //
  3961. //
  3962. //
  3963. //
  3964. //
  3965. //
  3966. //
  3967. //
  3968. //
  3969. //
  3970. //
  3971. //
  3972. //
  3973. //
  3974. //
  3975. //
  3976. //
  3977. //
  3978. //
  3979. //
  3980. //
  3981. //
  3982. //
  3983. //
  3984. //
  3985. //
  3986. //
  3987. //
  3988. //
  3989. //
  3990. //
  3991. //
  3992. //
  3993. //
  3994. //
  3995. //
  3996. //
  3997. //
  3998. //
  3999. //
  4000. //
  4001. //
  4002. //
  4003. //
  4004. //
  4005. //
  4006. //
  4007. //
  4008. //
  4009. //
  4010. //
  4011. //
  4012. //
  4013. //
  4014. //
  4015. //
  4016. //
  4017. //
  4018. //
  4019. //
  4020. //
  4021. //
  4022. //
  4023. //
  4024. //
  4025. //
  4026. //
  4027. //
  4028. //
  4029. //
  4030. //
  4031. //
  4032. //
  4033. //
  4034. //
  4035. //
  4036. //
  4037. //
  4038. //
  4039. //
  4040. //
  4041. //
  4042. //
  4043. //
  4044. //
  4045. //
  4046. //
  4047. //
  4048. //
  4049. //
  4050. //
  4051. //
  4052. //
  4053. //
  4054. //
  4055. //
  4056. //
  4057. //
  4058. //
  4059. //
  4060. //
  4061. //
  4062. //
  4063. //
  4064. //
  4065. //
  4066. //
  4067. //
  4068. //
  4069. //
  4070. //
  4071. //
  4072. //
  4073. //
  4074. //
  4075. //
  4076. //
  4077. //
  4078. //
  4079. //
  4080. //
  4081. //
  4082. //
  4083. //
  4084. //
  4085. //
  4086. //
  4087. //
  4088. //
  4089. //
  4090. //
  4091. //
  4092. //
  4093. //
  4094. //
  4095. //
  4096. //
  4097. //
  4098. //
  4099. //
  4100. //
  4101. //
  4102. //
  4103. //
  4104. //
  4105. //
  4106. //
  4107. //
  4108. //
  4109. //
  4110. //
  4111. //
  4112. //
  4113. //
  4114. //
  4115. //
  4116. //
  4117. //
  4118. //
  4119. //
  4120. //
  4121. //
  4122. //
  4123. //
  4124. //
  4125. //
  4126. //
  4127. //
  4128. //
  4129. //
  4130. //
  4131. //
  4132. //
  4133. //
  4134. //
  4135. //
  4136. //
  4137. //
  4138. //
  4139. //
  4140. //
  4141. //
  4142. //
  4143. //
  4144. //
  4145. //
  4146. //
  4147. //
  4148. //
  4149. //
  4150. //
  4151. //
  4152. //
  4153. //
  4154. //
  4155. //
  4156. //
  4157. //
  4158. //
  4159. //
  4160. //
  4161. //
  4162. //
  4163. //
  4164. //
  4165. //
  4166. //
  4167. //
  4168. //
  4169. //
  4170. //
  4171.  
  4172.  
  4173.  
  4174.  
  4175.  
  4176.  
  4177.  
  4178.  
  4179. /* harmony default export */ const tablevue_type_script_lang_js_ = ({
  4180. name: 'Table',
  4181. data() {
  4182. return {
  4183. list: [],
  4184. downResult: [],
  4185. lastSelectIndex: null,
  4186. onShfit: false,
  4187.  
  4188. showSelectList: false,
  4189. overlayShow: false,
  4190. show: false,
  4191. isEditList: false,
  4192.  
  4193. currentComics: '',
  4194. webname: '未匹配',
  4195. comicName: '------',
  4196.  
  4197. paylogoArr: [],
  4198. downType: 0,
  4199. useCharacterNum: false,
  4200. characterNumSequence: false,
  4201.  
  4202. defineComicName: '',
  4203. definechapterName: ''
  4204.  
  4205. }
  4206. },
  4207. computed: {
  4208.  
  4209. },
  4210. mounted() {
  4211. this.watchKeyEvent()
  4212. this.getInfo()
  4213. },
  4214. methods: {
  4215. titleStyle: function(url, isPay, type) {
  4216. if (url === 'javascript:void();') {
  4217. return { color: '#ccc' }
  4218. }
  4219. if (isPay === true) {
  4220. return { color: 'red' }
  4221. }
  4222. if (type === 'many') {
  4223. return { color: '#AA6680' }
  4224. }
  4225. return `color: blue`
  4226. },
  4227. showComicTitleName(numStr, name) {
  4228. let showname = ''
  4229. if (numStr !== '') {
  4230. const newname = name === '' ? '' : ('-' + name)
  4231. showname = numStr + newname
  4232. return showname
  4233. }
  4234. return name
  4235. },
  4236. editList() {
  4237. this.overlayShow = true
  4238. this.isEditList = !this.isEditList
  4239. this.overlayShow = false
  4240. },
  4241. // 删除章节一个字符
  4242. delOnechapterNameFont(pos) {
  4243. this.list.forEach((element, index) => {
  4244. if (element.isSelect === true && element.chapterName.length >= 1) {
  4245. if (pos === 1) {
  4246. element.chapterName = element.chapterName.slice(1)
  4247. } else {
  4248. element.chapterName = element.chapterName.slice(0, -1)
  4249. }
  4250. }
  4251. })
  4252. },
  4253. getInfo(times) {
  4254. try {
  4255. this.currentComics = comics/* currentComics */.Po
  4256. if (comics/* currentComics */.Po === null) {
  4257. return
  4258. }
  4259. const comicNameCss = this.currentComics.comicNameCss
  4260. this.webname = comics/* currentComics.webName */.Po.webName
  4261.  
  4262. this.comicName = document.querySelectorAll(comicNameCss)[0].innerText.split('\n')[0].trim()
  4263. if (this.comicName === '') {
  4264. setTimeout(() => {
  4265. this.getInfo(1)
  4266. }, 1500)
  4267. return
  4268. }
  4269. this.$bus.$emit('getComicName', this.comicName)
  4270. //
  4271. this.downType = (0,setup/* getStorage */.cF)('downType')
  4272. // eslint-disable-next-line no-empty
  4273. } catch (error) {
  4274. if (times === undefined) {
  4275. setTimeout(() => {
  4276. this.getInfo(1)
  4277. }, 1500)
  4278. }
  4279. console.log('getInfo-e: ', error)
  4280. }
  4281. this.lastSelectIndex = null
  4282. return
  4283. },
  4284. reverseList() {
  4285. this.overlayShow = true
  4286. this.list = this.list.reverse()
  4287. this.lastSelectIndex = null
  4288. this.overlayShow = false
  4289. },
  4290. selectAll() {
  4291. this.list.forEach((element, index) => {
  4292. if (element.url !== 'javascript:void();') {
  4293. element.isSelect = true
  4294. }
  4295. })
  4296. this.lastSelectIndex = null
  4297. },
  4298. CancelSelect() {
  4299. this.list.forEach((element, index) => {
  4300. element.isSelect = false
  4301. })
  4302. this.lastSelectIndex = null
  4303. },
  4304. radioSelect(isSelect, index) {
  4305. if (!isSelect) {
  4306. this.lastSelectIndex = null
  4307. return
  4308. }
  4309. let minIndex, maxIndex
  4310. if (this.lastSelectIndex < index) {
  4311. minIndex = this.lastSelectIndex
  4312. maxIndex = index
  4313. } else {
  4314. minIndex = index
  4315. maxIndex = this.lastSelectIndex
  4316. }
  4317.  
  4318. if (this.onShfit && this.lastSelectIndex !== null) {
  4319. for (let i = minIndex; i < maxIndex; i++) {
  4320. if (this.list[i].url !== 'javascript:void();') {
  4321. this.list[i].isSelect = true
  4322. }
  4323. }
  4324. }
  4325. this.lastSelectIndex = index
  4326. },
  4327. watchKeyEvent() {
  4328. const setKeyStatus = (keyCode, status) => {
  4329. switch (keyCode) {
  4330. case 16:
  4331. if (this.onShfit === status) return
  4332. this.onShfit = status
  4333. break
  4334. }
  4335. }
  4336. const dom = this.$refs.comiclist
  4337. dom.onkeydown = (e) => {
  4338. setKeyStatus(e.keyCode, true)
  4339. }
  4340. dom.onkeyup = (e) => {
  4341. setKeyStatus(e.keyCode, false)
  4342. }
  4343. },
  4344. async getSelectList() {
  4345. this.overlayShow = true
  4346. try {
  4347. // 优先 getComicInfo 获取章节信息
  4348. if (comics/* currentComics.getComicInfo */.Po.getComicInfo) {
  4349. const list = await comics/* currentComics.getComicInfo */.Po.getComicInfo(this.comicName)
  4350. if (list) {
  4351. this.list = list
  4352. this.overlayShow = false
  4353. this.showSelectList = true
  4354. return
  4355. }
  4356. }
  4357.  
  4358. setTimeout(() => {
  4359. // 单章数据
  4360. const nodeList = document.querySelectorAll(comics/* currentComics.chapterCss */.Po.chapterCss)
  4361. this.getChapterData(nodeList, comics/* currentComics */.Po, 'one')
  4362.  
  4363. // (如果存在)分卷数据
  4364. if (comics/* currentComics.chapterCss_2 */.Po.chapterCss_2) {
  4365. const nodeList_2 = document.querySelectorAll(comics/* currentComics.chapterCss_2 */.Po.chapterCss_2)
  4366. this.getChapterData(nodeList_2, comics/* currentComics */.Po, 'many')
  4367. }
  4368.  
  4369. this.overlayShow = false
  4370. this.showSelectList = true
  4371. }, 100)
  4372. } catch (error) {
  4373. console.log('getSelectList-e: ', error)
  4374. ;(0,external_vant_.Toast)({
  4375. message: '网站未匹配或方法已失效',
  4376. getContainer: '.card',
  4377. position: 'bottom'
  4378. })
  4379. setTimeout(() => {
  4380. this.overlayShow = false
  4381. }, 3000)
  4382. }
  4383. },
  4384. // 获取章节数据
  4385. getChapterData(nodeList, currentComics, type) {
  4386. const hasSpend = currentComics.hasSpend
  4387. const chapterNameReg = currentComics.chapterNameReg
  4388. nodeList.forEach(dom => {
  4389. const urls = dom.querySelectorAll('a')
  4390. const readtype = currentComics.readtype
  4391.  
  4392. urls.forEach((element, index) => {
  4393. let chapterName = ''
  4394. try {
  4395. if (!chapterNameReg) {
  4396. chapterName = element.innerText
  4397. } else {
  4398. chapterName = element.outerHTML.match(chapterNameReg)[1]
  4399. }
  4400. chapterName = (0,utils/* trimSpecial */.Sc)(chapterName)
  4401. } catch (error) {
  4402. // console.log()
  4403. }
  4404.  
  4405. // 获取付费标志
  4406. let currentIsPay = false
  4407. if (hasSpend) {
  4408. const payKey = currentComics.payKey
  4409. const parent = element.parentElement
  4410. if (parent.outerHTML.indexOf(payKey) > 0) {
  4411. currentIsPay = true
  4412. } else {
  4413. currentIsPay = false
  4414. }
  4415. }
  4416.  
  4417. const data = {
  4418. comicName: (0,utils/* trimSpecial */.Sc)(this.comicName),
  4419. chapterNumStr: '',
  4420. chapterName,
  4421. downChapterName: '',
  4422. url: element.href,
  4423. characterType: type,
  4424. readtype,
  4425. isPay: currentIsPay,
  4426. isSelect: false
  4427. }
  4428.  
  4429. if (data.chapterName !== '') {
  4430. this.list.push(data)
  4431. }
  4432. })
  4433. })
  4434. },
  4435.  
  4436. // 已进入原网站漫画章节页面阅读,获取章节 下载
  4437. getCurrentWebData() {
  4438. if (!comics/* currentComics */.Po) {
  4439. (0,external_vant_.Toast)({
  4440. message: '未在匹配网站',
  4441. getContainer: '.card',
  4442. position: 'bottom'
  4443. })
  4444. return
  4445. }
  4446. if (this.defineComicName === '' || this.definechapterName === '') {
  4447. (0,external_vant_.Toast)({
  4448. message: '请输入名称',
  4449. getContainer: '.card',
  4450. position: 'bottom'
  4451. })
  4452. return
  4453. }
  4454. const item = {
  4455. comicName: this.defineComicName,
  4456. chapterNumStr: '',
  4457. chapterName: this.definechapterName,
  4458. downChapterName: this.definechapterName,
  4459. url: window.location.href,
  4460. characterType: 'one',
  4461. readtype: comics/* currentComics.readtype */.Po.readtype,
  4462. isPay: comics/* currentComics.hasSpend */.Po.hasSpend,
  4463. downType: this.downType,
  4464. downHeaders: comics/* currentComics.downHeaders */.Po.downHeaders
  4465. }
  4466. this.downResult.push(item)
  4467.  
  4468. this.$bus.$emit('selectDown', this.downResult)
  4469. this.$bus.$emit('changTab', 2)
  4470. this.downResult = []
  4471. this.show = false
  4472. },
  4473. downSelectList() {
  4474. let hasSelect = false
  4475. this.list.forEach((item, index) => {
  4476. if (item.isSelect) {
  4477. item.downType = this.downType
  4478. item.downHeaders = comics/* currentComics.downHeaders */.Po.downHeaders
  4479. if (!hasSelect && item.isSelect) {
  4480. hasSelect = true
  4481. }
  4482.  
  4483. if (item.chapterNumStr !== '' && item.chapterNumStr !== undefined) {
  4484. const newName = item.chapterName === '' ? '' : ('-' + item.chapterName)
  4485. item.downChapterName = item.chapterNumStr + newName
  4486. } else {
  4487. item.downChapterName = item.chapterName
  4488. }
  4489.  
  4490. // 下载的章节名可能修改为空,为空跳过
  4491. if (item.downChapterName !== '') {
  4492. this.downResult.push(item)
  4493. item.isSelect = false
  4494. }
  4495. }
  4496. })
  4497.  
  4498. if (!hasSelect) {
  4499. (0,external_vant_.Toast)({
  4500. message: '请选择章节',
  4501. getContainer: '.card',
  4502. position: 'bottom'
  4503. })
  4504. return
  4505. }
  4506.  
  4507. this.$bus.$emit('selectDown', this.downResult)
  4508. this.$bus.$emit('changTab', 2)
  4509. this.downResult = []
  4510. },
  4511. reloadList() {
  4512. this.list = []
  4513. this.getInfo(1)
  4514. this.getSelectList()
  4515. },
  4516. characterSequenceChange() {
  4517. if (!this.useCharacterNum) {
  4518. // 删除 前几个字符
  4519. this.list.forEach((item, index) => {
  4520. item.chapterNumStr = ''
  4521. })
  4522. return
  4523. }
  4524.  
  4525. if (this.characterNumSequence === true) {
  4526. const len = this.list.length
  4527. this.list.forEach((item, index) => {
  4528. item.chapterNumStr = (0,utils/* addZeroForNum */.xo)(len - index, 3)
  4529. })
  4530. } else {
  4531. this.list.forEach((item, index) => {
  4532. item.chapterNumStr = (0,utils/* addZeroForNum */.xo)(index + 1, 3)
  4533. })
  4534. }
  4535. }
  4536.  
  4537. }
  4538. });
  4539.  
  4540. ;// CONCATENATED MODULE: ./src/views/table.vue?vue&type=script&lang=js&
  4541. /* harmony default export */ const views_tablevue_type_script_lang_js_ = (tablevue_type_script_lang_js_);
  4542. // 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&
  4543. var tablevue_type_style_index_0_id_657d4b24_lang_less_scoped_true_ = __webpack_require__(737);
  4544. ;// 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&
  4545.  
  4546.  
  4547. var tablevue_type_style_index_0_id_657d4b24_lang_less_scoped_true_options = {};
  4548.  
  4549. tablevue_type_style_index_0_id_657d4b24_lang_less_scoped_true_options.styleTagTransform = (styleTagTransform_default());
  4550. tablevue_type_style_index_0_id_657d4b24_lang_less_scoped_true_options.setAttributes = (setAttributesWithoutAttributes_default());
  4551.  
  4552. tablevue_type_style_index_0_id_657d4b24_lang_less_scoped_true_options.insert = insertBySelector_default().bind(null, "head");
  4553. tablevue_type_style_index_0_id_657d4b24_lang_less_scoped_true_options.domAPI = (styleDomAPI_default());
  4554. tablevue_type_style_index_0_id_657d4b24_lang_less_scoped_true_options.insertStyleElement = (insertStyleElement_default());
  4555.  
  4556. 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);
  4557.  
  4558.  
  4559.  
  4560.  
  4561. /* harmony default export */ const views_tablevue_type_style_index_0_id_657d4b24_lang_less_scoped_true_ = (tablevue_type_style_index_0_id_657d4b24_lang_less_scoped_true_/* default */.Z && tablevue_type_style_index_0_id_657d4b24_lang_less_scoped_true_/* default.locals */.Z.locals ? tablevue_type_style_index_0_id_657d4b24_lang_less_scoped_true_/* default.locals */.Z.locals : undefined);
  4562.  
  4563. ;// CONCATENATED MODULE: ./src/views/table.vue?vue&type=style&index=0&id=657d4b24&lang=less&scoped=true&
  4564.  
  4565. ;// CONCATENATED MODULE: ./src/views/table.vue
  4566.  
  4567.  
  4568.  
  4569. ;
  4570.  
  4571.  
  4572. /* normalize component */
  4573.  
  4574. var table_component = normalizeComponent(
  4575. views_tablevue_type_script_lang_js_,
  4576. tablevue_type_template_id_657d4b24_scoped_true_render,
  4577. tablevue_type_template_id_657d4b24_scoped_true_staticRenderFns,
  4578. false,
  4579. null,
  4580. "657d4b24",
  4581. null
  4582. )
  4583.  
  4584. /* hot reload */
  4585. if (false) { var table_api; }
  4586. table_component.options.__file = "src/views/table.vue"
  4587. /* harmony default export */ const table = (table_component.exports);
  4588. ;// 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&
  4589. var settingvue_type_template_id_234d1526_scoped_true_render = function () {
  4590. var _vm = this
  4591. var _h = _vm.$createElement
  4592. var _c = _vm._self._c || _h
  4593. return _c(
  4594. "div",
  4595. { staticClass: "setindex" },
  4596. [
  4597. _c(
  4598. "van-swipe",
  4599. {
  4600. ref: "swipe2",
  4601. staticClass: "my-swipe",
  4602. staticStyle: { cursor: "default" },
  4603. attrs: { "initial-swipe": 0, duration: 5, "show-indicators": false },
  4604. },
  4605. [
  4606. _c("van-swipe-item", { staticClass: "swipeitem" }, [
  4607. _c(
  4608. "div",
  4609. { attrs: { id: "setpart" } },
  4610. [
  4611. _c(
  4612. "van-cell-group",
  4613. { attrs: { id: "app-loadset", title: "app加载", inset: "" } },
  4614. [
  4615. _c("van-cell", {
  4616. attrs: {
  4617. "title-class": "cellleftvalue",
  4618. "value-class": "cellrightvalue",
  4619. center: "",
  4620. },
  4621. scopedSlots: _vm._u([
  4622. {
  4623. key: "title",
  4624. fn: function () {
  4625. return [
  4626. _c("span", { staticClass: "custom-title" }, [
  4627. _vm._v("随网页加载UI界面"),
  4628. ]),
  4629. _vm._v(" "),
  4630. _c(
  4631. "van-popover",
  4632. {
  4633. attrs: {
  4634. placement: "right-start",
  4635. "get-container": "#app-loadset",
  4636. offset: [-2, 10],
  4637. "close-on-click-outside": true,
  4638. },
  4639. scopedSlots: _vm._u([
  4640. {
  4641. key: "reference",
  4642. fn: function () {
  4643. return [
  4644. _c("van-icon", {
  4645. attrs: {
  4646. name: "info-o",
  4647. color: "red",
  4648. },
  4649. on: {
  4650. mouseover: function ($event) {
  4651. _vm.showUiPopover = true
  4652. },
  4653. mouseleave: function ($event) {
  4654. _vm.showUiPopover = false
  4655. },
  4656. },
  4657. }),
  4658. ]
  4659. },
  4660. proxy: true,
  4661. },
  4662. ]),
  4663. model: {
  4664. value: _vm.showUiPopover,
  4665. callback: function ($$v) {
  4666. _vm.showUiPopover = $$v
  4667. },
  4668. expression: "showUiPopover",
  4669. },
  4670. },
  4671. [
  4672. _c("code", { staticClass: "popovertext" }, [
  4673. _vm._v("关闭后可通过快捷键唤起"),
  4674. ]),
  4675. ]
  4676. ),
  4677. ]
  4678. },
  4679. proxy: true,
  4680. },
  4681. {
  4682. key: "default",
  4683. fn: function () {
  4684. return [
  4685. _c("van-checkbox", {
  4686. staticClass: "rightbutton",
  4687. on: {
  4688. change: function ($event) {
  4689. return _vm.onChangeData(
  4690. "appLoadDefault",
  4691. _vm.appLoadDefault.isShowUI,
  4692. "isShowUI"
  4693. )
  4694. },
  4695. },
  4696. model: {
  4697. value: _vm.appLoadDefault.isShowUI,
  4698. callback: function ($$v) {
  4699. _vm.$set(
  4700. _vm.appLoadDefault,
  4701. "isShowUI",
  4702. $$v
  4703. )
  4704. },
  4705. expression: "appLoadDefault.isShowUI",
  4706. },
  4707. }),
  4708. ]
  4709. },
  4710. proxy: true,
  4711. },
  4712. ]),
  4713. }),
  4714. _vm._v(" "),
  4715. _c("van-cell", {
  4716. attrs: {
  4717. "title-class": "cellleftvalue",
  4718. "value-class": "cellrightvalue",
  4719. center: "",
  4720. },
  4721. scopedSlots: _vm._u([
  4722. {
  4723. key: "title",
  4724. fn: function () {
  4725. return [
  4726. _c("span", { staticClass: "custom-title" }, [
  4727. _vm._v("加载界面快捷键"),
  4728. ]),
  4729. ]
  4730. },
  4731. proxy: true,
  4732. },
  4733. {
  4734. key: "default",
  4735. fn: function () {
  4736. return [
  4737. _c("div", [
  4738. _c("code", { staticStyle: { width: "35px" } }, [
  4739. _vm._v("Alt + "),
  4740. ]),
  4741. _vm._v(" "),
  4742. _c("input", {
  4743. directives: [
  4744. {
  4745. name: "model",
  4746. rawName: "v-model",
  4747. value: _vm.appLoadDefault.loadHotKey,
  4748. expression: "appLoadDefault.loadHotKey",
  4749. },
  4750. ],
  4751. staticClass: "rightbutton",
  4752. attrs: { id: "hot-key-input" },
  4753. domProps: {
  4754. value: _vm.appLoadDefault.loadHotKey,
  4755. },
  4756. on: {
  4757. input: [
  4758. function ($event) {
  4759. if ($event.target.composing) {
  4760. return
  4761. }
  4762. _vm.$set(
  4763. _vm.appLoadDefault,
  4764. "loadHotKey",
  4765. $event.target.value
  4766. )
  4767. },
  4768. _vm.loadHotKeyChange,
  4769. ],
  4770. },
  4771. }),
  4772. ]),
  4773. ]
  4774. },
  4775. proxy: true,
  4776. },
  4777. ]),
  4778. }),
  4779. _vm._v(" "),
  4780. _c("van-cell", {
  4781. attrs: {
  4782. "title-class": "cellleftvalue",
  4783. "value-class": "cellrightvalue",
  4784. center: "",
  4785. },
  4786. scopedSlots: _vm._u([
  4787. {
  4788. key: "title",
  4789. fn: function () {
  4790. return [
  4791. _c("span", { staticClass: "custom-title" }, [
  4792. _vm._v("右边大小缩放(%)"),
  4793. ]),
  4794. ]
  4795. },
  4796. proxy: true,
  4797. },
  4798. {
  4799. key: "default",
  4800. fn: function () {
  4801. return [
  4802. _c("van-stepper", {
  4803. staticClass: "rightbutton",
  4804. attrs: {
  4805. min: "75",
  4806. max: "125",
  4807. "default-value": 100,
  4808. step: "1",
  4809. integer: "",
  4810. "button-size": "20px",
  4811. },
  4812. on: {
  4813. change: function ($event) {
  4814. return _vm.changeRightSize(_vm.appRightSize)
  4815. },
  4816. },
  4817. model: {
  4818. value: _vm.appRightSize,
  4819. callback: function ($$v) {
  4820. _vm.appRightSize = $$v
  4821. },
  4822. expression: "appRightSize",
  4823. },
  4824. }),
  4825. ]
  4826. },
  4827. proxy: true,
  4828. },
  4829. ]),
  4830. }),
  4831. _vm._v(" "),
  4832. _c("van-cell", {
  4833. attrs: {
  4834. "title-class": "cellleftvalue",
  4835. "value-class": "cellrightvalue",
  4836. center: "",
  4837. },
  4838. scopedSlots: _vm._u([
  4839. {
  4840. key: "title",
  4841. fn: function () {
  4842. return [
  4843. _c("span", { staticClass: "custom-title" }, [
  4844. _vm._v("中间大小缩放(%)"),
  4845. ]),
  4846. ]
  4847. },
  4848. proxy: true,
  4849. },
  4850. {
  4851. key: "default",
  4852. fn: function () {
  4853. return [
  4854. _c("van-stepper", {
  4855. staticClass: "rightbutton",
  4856. attrs: {
  4857. min: "75",
  4858. max: "125",
  4859. "default-value": 100,
  4860. step: "1",
  4861. integer: "",
  4862. "button-size": "20px",
  4863. },
  4864. on: {
  4865. change: function ($event) {
  4866. return _vm.changeCenterSize(
  4867. _vm.appCenterSize
  4868. )
  4869. },
  4870. },
  4871. model: {
  4872. value: _vm.appCenterSize,
  4873. callback: function ($$v) {
  4874. _vm.appCenterSize = $$v
  4875. },
  4876. expression: "appCenterSize",
  4877. },
  4878. }),
  4879. ]
  4880. },
  4881. proxy: true,
  4882. },
  4883. ]),
  4884. }),
  4885. ],
  4886. 1
  4887. ),
  4888. _vm._v(" "),
  4889. _c(
  4890. "van-cell-group",
  4891. { attrs: { id: "downpart", title: "下载", inset: "" } },
  4892. [
  4893. _c("van-cell", {
  4894. attrs: { label: "*下载前生效", center: "" },
  4895. scopedSlots: _vm._u([
  4896. {
  4897. key: "title",
  4898. fn: function () {
  4899. return [
  4900. _c(
  4901. "span",
  4902. {
  4903. staticClass: "custom-title",
  4904. staticStyle: { width: "300px" },
  4905. },
  4906. [_vm._v("最大下载章节数")]
  4907. ),
  4908. ]
  4909. },
  4910. proxy: true,
  4911. },
  4912. {
  4913. key: "default",
  4914. fn: function () {
  4915. return [
  4916. _c(
  4917. "div",
  4918. { staticStyle: { display: "flex" } },
  4919. [
  4920. _vm._v(
  4921. "\n 1 \n "
  4922. ),
  4923. _c("van-slider", {
  4924. staticClass: "rightslider",
  4925. attrs: { min: 1, max: 3 },
  4926. on: {
  4927. change: function ($event) {
  4928. return _vm.onChangeData(
  4929. "maxChapterNum",
  4930. _vm.maxChapterNum
  4931. )
  4932. },
  4933. },
  4934. scopedSlots: _vm._u([
  4935. {
  4936. key: "button",
  4937. fn: function () {
  4938. return [
  4939. _c(
  4940. "div",
  4941. { staticClass: "custom-button" },
  4942. [
  4943. _vm._v(
  4944. _vm._s(_vm.maxChapterNum)
  4945. ),
  4946. ]
  4947. ),
  4948. ]
  4949. },
  4950. proxy: true,
  4951. },
  4952. ]),
  4953. model: {
  4954. value: _vm.maxChapterNum,
  4955. callback: function ($$v) {
  4956. _vm.maxChapterNum = $$v
  4957. },
  4958. expression: "maxChapterNum",
  4959. },
  4960. }),
  4961. _vm._v(" 3\n "),
  4962. ],
  4963. 1
  4964. ),
  4965. ]
  4966. },
  4967. proxy: true,
  4968. },
  4969. ]),
  4970. }),
  4971. _vm._v(" "),
  4972. _c("van-cell", {
  4973. attrs: { label: "*下载前生效", center: "" },
  4974. scopedSlots: _vm._u([
  4975. {
  4976. key: "title",
  4977. fn: function () {
  4978. return [
  4979. _c(
  4980. "span",
  4981. {
  4982. staticClass: "custom-title",
  4983. staticStyle: { width: "300px" },
  4984. },
  4985. [_vm._v("每章最大下载图片数")]
  4986. ),
  4987. ]
  4988. },
  4989. proxy: true,
  4990. },
  4991. {
  4992. key: "default",
  4993. fn: function () {
  4994. return [
  4995. _c(
  4996. "div",
  4997. { staticStyle: { display: "flex" } },
  4998. [
  4999. _vm._v(
  5000. "\n 1 \n "
  5001. ),
  5002. _c("van-slider", {
  5003. staticClass: "rightslider",
  5004. attrs: { min: 1, max: 5 },
  5005. on: {
  5006. change: function ($event) {
  5007. return _vm.onChangeData(
  5008. "maxPictureNum",
  5009. _vm.maxPictureNum
  5010. )
  5011. },
  5012. },
  5013. scopedSlots: _vm._u([
  5014. {
  5015. key: "button",
  5016. fn: function () {
  5017. return [
  5018. _c(
  5019. "div",
  5020. { staticClass: "custom-button" },
  5021. [
  5022. _vm._v(
  5023. _vm._s(_vm.maxPictureNum)
  5024. ),
  5025. ]
  5026. ),
  5027. ]
  5028. },
  5029. proxy: true,
  5030. },
  5031. ]),
  5032. model: {
  5033. value: _vm.maxPictureNum,
  5034. callback: function ($$v) {
  5035. _vm.maxPictureNum = $$v
  5036. },
  5037. expression: "maxPictureNum",
  5038. },
  5039. }),
  5040. _vm._v(" 5\n "),
  5041. ],
  5042. 1
  5043. ),
  5044. ]
  5045. },
  5046. proxy: true,
  5047. },
  5048. ]),
  5049. }),
  5050. _vm._v(" "),
  5051. _c("van-cell", {
  5052. attrs: {
  5053. "title-class": "cellleftvalue",
  5054. "value-class": "cellrightvalue",
  5055. label: "*本次默认设置,修改后下次启动默认生效",
  5056. center: "",
  5057. },
  5058. scopedSlots: _vm._u([
  5059. {
  5060. key: "title",
  5061. fn: function () {
  5062. return [
  5063. _c("span", { staticClass: "custom-title" }, [
  5064. _vm._v("下载方式"),
  5065. ]),
  5066. _vm._v(" "),
  5067. _c(
  5068. "van-popover",
  5069. {
  5070. attrs: {
  5071. placement: "right",
  5072. "get-container": "#downpart",
  5073. offset: [-8, 10],
  5074. "close-on-click-outside": true,
  5075. },
  5076. scopedSlots: _vm._u([
  5077. {
  5078. key: "reference",
  5079. fn: function () {
  5080. return [
  5081. _c("van-icon", {
  5082. attrs: {
  5083. name: "info-o",
  5084. color: "red",
  5085. },
  5086. on: {
  5087. mouseover: function ($event) {
  5088. _vm.downTypePopover = true
  5089. },
  5090. mouseleave: function ($event) {
  5091. _vm.downTypePopover = false
  5092. },
  5093. },
  5094. }),
  5095. ]
  5096. },
  5097. proxy: true,
  5098. },
  5099. ]),
  5100. model: {
  5101. value: _vm.downTypePopover,
  5102. callback: function ($$v) {
  5103. _vm.downTypePopover = $$v
  5104. },
  5105. expression: "downTypePopover",
  5106. },
  5107. },
  5108. [
  5109. _c("div", [
  5110. _c("code", { staticClass: "popovertext" }, [
  5111. _vm._v(
  5112. "* 如需保存在文件夹需要设置油猴下载模式为浏览器API"
  5113. ),
  5114. ]),
  5115. ]),
  5116. ]
  5117. ),
  5118. ]
  5119. },
  5120. proxy: true,
  5121. },
  5122. {
  5123. key: "default",
  5124. fn: function () {
  5125. return [
  5126. _c(
  5127. "div",
  5128. {
  5129. staticClass: "dropdown",
  5130. on: {
  5131. mouseover: function ($event) {
  5132. _vm.showDropDown = true
  5133. },
  5134. mouseleave: function ($event) {
  5135. _vm.showDropDown = false
  5136. },
  5137. },
  5138. },
  5139. [
  5140. _c("button", { staticClass: "dropbtn" }, [
  5141. _vm._v(
  5142. _vm._s(_vm.dropItem[_vm.downType].Text)
  5143. ),
  5144. ]),
  5145. _vm._v(" "),
  5146. _c(
  5147. "div",
  5148. {
  5149. directives: [
  5150. {
  5151. name: "show",
  5152. rawName: "v-show",
  5153. value: _vm.showDropDown,
  5154. expression: "showDropDown",
  5155. },
  5156. ],
  5157. staticClass: "dropdown-content",
  5158. attrs: { id: "myDropdown" },
  5159. },
  5160. _vm._l(
  5161. _vm.dropItem,
  5162. function (item, index) {
  5163. return _c(
  5164. "a",
  5165. {
  5166. key: index,
  5167. attrs: { href: "#" },
  5168. on: {
  5169. click: function ($event) {
  5170. return _vm.changeDownType(
  5171. item.value
  5172. )
  5173. },
  5174. },
  5175. },
  5176. [
  5177. _c(
  5178. "div",
  5179. { attrs: { title: item.hint } },
  5180. [
  5181. _vm._v(
  5182. "\n " +
  5183. _vm._s(item.Text) +
  5184. "\n "
  5185. ),
  5186. _c("van-icon", {
  5187. directives: [
  5188. {
  5189. name: "show",
  5190. rawName: "v-show",
  5191. value: item.hint,
  5192. expression: "item.hint",
  5193. },
  5194. ],
  5195. attrs: {
  5196. name: "info-o",
  5197. color: "red",
  5198. },
  5199. }),
  5200. ],
  5201. 1
  5202. ),
  5203. ]
  5204. )
  5205. }
  5206. ),
  5207. 0
  5208. ),
  5209. ]
  5210. ),
  5211. ]
  5212. },
  5213. proxy: true,
  5214. },
  5215. ]),
  5216. }),
  5217. _vm._v(" "),
  5218. _c("van-cell", {
  5219. attrs: {
  5220. "title-class": "cellleftvalue",
  5221. "value-class": "cellrightvalue",
  5222. label: "*下载拼接前生效",
  5223. center: "",
  5224. },
  5225. scopedSlots: _vm._u([
  5226. {
  5227. key: "title",
  5228. fn: function () {
  5229. return [
  5230. _c("span", { staticClass: "custom-title" }, [
  5231. _vm._v("拼接图片最大高度"),
  5232. ]),
  5233. _vm._v(" "),
  5234. _c(
  5235. "van-popover",
  5236. {
  5237. attrs: {
  5238. placement: "right",
  5239. "get-container": "#downpart",
  5240. offset: [-8, 10],
  5241. "close-on-click-outside": true,
  5242. },
  5243. scopedSlots: _vm._u([
  5244. {
  5245. key: "reference",
  5246. fn: function () {
  5247. return [
  5248. _c("van-icon", {
  5249. attrs: {
  5250. name: "info-o",
  5251. color: "red",
  5252. },
  5253. on: {
  5254. mouseover: function ($event) {
  5255. _vm.splicingHeightPopover = true
  5256. },
  5257. mouseleave: function ($event) {
  5258. _vm.splicingHeightPopover = false
  5259. },
  5260. },
  5261. }),
  5262. ]
  5263. },
  5264. proxy: true,
  5265. },
  5266. ]),
  5267. model: {
  5268. value: _vm.splicingHeightPopover,
  5269. callback: function ($$v) {
  5270. _vm.splicingHeightPopover = $$v
  5271. },
  5272. expression: "splicingHeightPopover",
  5273. },
  5274. },
  5275. [
  5276. _c("div", [
  5277. _c("code", { staticClass: "popovertext" }, [
  5278. _vm._v("* chrome和Edge 最大不超过 65530"),
  5279. ]),
  5280. ]),
  5281. ]
  5282. ),
  5283. ]
  5284. },
  5285. proxy: true,
  5286. },
  5287. {
  5288. key: "default",
  5289. fn: function () {
  5290. return [
  5291. _c("div", [
  5292. _c("input", {
  5293. directives: [
  5294. {
  5295. name: "model",
  5296. rawName: "v-model",
  5297. value: _vm.maxSplicingHeight,
  5298. expression: "maxSplicingHeight",
  5299. },
  5300. ],
  5301. staticClass: "rightbutton",
  5302. attrs: {
  5303. id: "max-splicing-height-input",
  5304. type: "number",
  5305. min: 10000,
  5306. max: 65530,
  5307. onkeyup:
  5308. "value=value.replace(/^(0+)|[^\\d]+/g,'')",
  5309. },
  5310. domProps: { value: _vm.maxSplicingHeight },
  5311. on: {
  5312. blur: _vm.splicingHeightBlur,
  5313. input: function ($event) {
  5314. if ($event.target.composing) {
  5315. return
  5316. }
  5317. _vm.maxSplicingHeight =
  5318. $event.target.value
  5319. },
  5320. },
  5321. }),
  5322. ]),
  5323. ]
  5324. },
  5325. proxy: true,
  5326. },
  5327. ]),
  5328. }),
  5329. _vm._v(" "),
  5330. _c("van-cell", {
  5331. attrs: {
  5332. "title-class": "cellleftvalue",
  5333. "value-class": "cellrightvalue",
  5334. label: "*本次启动默认设置,修改刷新生效",
  5335. center: "",
  5336. },
  5337. scopedSlots: _vm._u([
  5338. {
  5339. key: "title",
  5340. fn: function () {
  5341. return [
  5342. _c("span", { staticClass: "custom-title" }, [
  5343. _vm._v("图片序号最少位数"),
  5344. ]),
  5345. _vm._v(" "),
  5346. _c(
  5347. "van-popover",
  5348. {
  5349. attrs: {
  5350. placement: "right",
  5351. "get-container": "#downpart",
  5352. offset: [-5, 5],
  5353. "close-on-click-outside": true,
  5354. },
  5355. scopedSlots: _vm._u([
  5356. {
  5357. key: "reference",
  5358. fn: function () {
  5359. return [
  5360. _c("van-icon", {
  5361. attrs: {
  5362. name: "info-o",
  5363. color: "red",
  5364. },
  5365. on: {
  5366. mouseover: function ($event) {
  5367. _vm.addZeroHint = true
  5368. },
  5369. mouseleave: function ($event) {
  5370. _vm.addZeroHint = false
  5371. },
  5372. },
  5373. }),
  5374. ]
  5375. },
  5376. proxy: true,
  5377. },
  5378. ]),
  5379. model: {
  5380. value: _vm.addZeroHint,
  5381. callback: function ($$v) {
  5382. _vm.addZeroHint = $$v
  5383. },
  5384. expression: "addZeroHint",
  5385. },
  5386. },
  5387. [
  5388. _c("div", [
  5389. _c("code", { staticClass: "popovertext" }, [
  5390. _vm._v('* 不足则向前补充"0"'),
  5391. ]),
  5392. _c("br"),
  5393. _vm._v(" "),
  5394. _c("code", { staticClass: "popovertext" }, [
  5395. _vm._v("* 选择1,则默认数字序号"),
  5396. ]),
  5397. ]),
  5398. ]
  5399. ),
  5400. ]
  5401. },
  5402. proxy: true,
  5403. },
  5404. {
  5405. key: "default",
  5406. fn: function () {
  5407. return [
  5408. _c("van-stepper", {
  5409. staticClass: "rightbutton",
  5410. attrs: {
  5411. max: "5",
  5412. integer: "",
  5413. "button-size": "20px",
  5414. },
  5415. on: {
  5416. change: function ($event) {
  5417. return _vm.onChangeData(
  5418. "imgIndexBitNum",
  5419. _vm.imgIndexBitNum
  5420. )
  5421. },
  5422. },
  5423. model: {
  5424. value: _vm.imgIndexBitNum,
  5425. callback: function ($$v) {
  5426. _vm.imgIndexBitNum = $$v
  5427. },
  5428. expression: "imgIndexBitNum",
  5429. },
  5430. }),
  5431. ]
  5432. },
  5433. proxy: true,
  5434. },
  5435. ]),
  5436. }),
  5437. _vm._v(" "),
  5438. _c("van-cell", {
  5439. attrs: {
  5440. "title-class": "cellleftvalue",
  5441. "value-class": "cellrightvalue",
  5442. label: "原默认设置 1至-1",
  5443. center: "",
  5444. },
  5445. scopedSlots: _vm._u([
  5446. {
  5447. key: "title",
  5448. fn: function () {
  5449. return [
  5450. _c("span", { staticClass: "custom-title" }, [
  5451. _vm._v("图片下载范围"),
  5452. ]),
  5453. _vm._v(" "),
  5454. _c(
  5455. "van-popover",
  5456. {
  5457. attrs: {
  5458. placement: "right",
  5459. "get-container": "#downpart",
  5460. offset: [-5, 5],
  5461. "close-on-click-outside": true,
  5462. },
  5463. scopedSlots: _vm._u([
  5464. {
  5465. key: "reference",
  5466. fn: function () {
  5467. return [
  5468. _c("van-icon", {
  5469. attrs: {
  5470. name: "info-o",
  5471. color: "red",
  5472. },
  5473. on: {
  5474. mouseover: function ($event) {
  5475. _vm.imgDownRangeHint = true
  5476. },
  5477. mouseleave: function ($event) {
  5478. _vm.imgDownRangeHint = false
  5479. },
  5480. },
  5481. }),
  5482. ]
  5483. },
  5484. proxy: true,
  5485. },
  5486. ]),
  5487. model: {
  5488. value: _vm.imgDownRangeHint,
  5489. callback: function ($$v) {
  5490. _vm.imgDownRangeHint = $$v
  5491. },
  5492. expression: "imgDownRangeHint",
  5493. },
  5494. },
  5495. [
  5496. _c("div", [
  5497. _c("code", { staticClass: "popovertext" }, [
  5498. _vm._v(
  5499. "*1至-1 代表从第一张图片下载至最后一张"
  5500. ),
  5501. ]),
  5502. _c("br"),
  5503. ]),
  5504. ]
  5505. ),
  5506. ]
  5507. },
  5508. proxy: true,
  5509. },
  5510. {
  5511. key: "default",
  5512. fn: function () {
  5513. return [
  5514. _c("div", [
  5515. _c("input", {
  5516. directives: [
  5517. {
  5518. name: "model",
  5519. rawName: "v-model",
  5520. value: _vm.imgDownRange[0],
  5521. expression: "imgDownRange[0]",
  5522. },
  5523. ],
  5524. staticClass: "img-down-range-input",
  5525. attrs: {
  5526. type: "number",
  5527. min: "1",
  5528. onkeyup:
  5529. "value=value.replace(/^(0+)|[^\\d]+/g,'')",
  5530. },
  5531. domProps: { value: _vm.imgDownRange[0] },
  5532. on: {
  5533. blur: _vm.imgDownRangeBlur,
  5534. input: function ($event) {
  5535. if ($event.target.composing) {
  5536. return
  5537. }
  5538. _vm.$set(
  5539. _vm.imgDownRange,
  5540. 0,
  5541. $event.target.value
  5542. )
  5543. },
  5544. },
  5545. }),
  5546. _vm._v(" "),
  5547. _c("code", { staticStyle: { width: "10px" } }, [
  5548. _vm._v(" - "),
  5549. ]),
  5550. _vm._v(" "),
  5551. _c("input", {
  5552. directives: [
  5553. {
  5554. name: "model",
  5555. rawName: "v-model",
  5556. value: _vm.imgDownRange[1],
  5557. expression: "imgDownRange[1]",
  5558. },
  5559. ],
  5560. staticClass: "img-down-range-input",
  5561. attrs: {
  5562. type: "number",
  5563. max: "-1",
  5564. onkeyup:
  5565. "value=value.replace(/^(0+)|[^\\d]+/g,'')",
  5566. },
  5567. domProps: { value: _vm.imgDownRange[1] },
  5568. on: {
  5569. blur: _vm.imgDownRangeBlur,
  5570. input: function ($event) {
  5571. if ($event.target.composing) {
  5572. return
  5573. }
  5574. _vm.$set(
  5575. _vm.imgDownRange,
  5576. 1,
  5577. $event.target.value
  5578. )
  5579. },
  5580. },
  5581. }),
  5582. ]),
  5583. ]
  5584. },
  5585. proxy: true,
  5586. },
  5587. ]),
  5588. }),
  5589. ],
  5590. 1
  5591. ),
  5592. _vm._v(" "),
  5593. _c(
  5594. "van-cell-group",
  5595. {
  5596. attrs: {
  5597. id: "webpart",
  5598. title: "原网站阅读样式修改",
  5599. inset: "",
  5600. },
  5601. },
  5602. [
  5603. _c("van-cell", {
  5604. attrs: {
  5605. "title-class": "cellleftvalue",
  5606. "value-class": "cellrightvalue",
  5607. label: "去除部分漫画网站图片上下间隔",
  5608. center: "",
  5609. },
  5610. scopedSlots: _vm._u([
  5611. {
  5612. key: "title",
  5613. fn: function () {
  5614. return [
  5615. _c("span", { staticClass: "custom-title" }, [
  5616. _vm._v("图片拼接"),
  5617. ]),
  5618. _vm._v(" "),
  5619. _c(
  5620. "van-popover",
  5621. {
  5622. attrs: {
  5623. placement: "right-start",
  5624. "get-container": "#webpart",
  5625. offset: [0, 10],
  5626. "close-on-click-outside": true,
  5627. },
  5628. scopedSlots: _vm._u([
  5629. {
  5630. key: "reference",
  5631. fn: function () {
  5632. return [
  5633. _c("van-icon", {
  5634. attrs: {
  5635. name: "info-o",
  5636. color: "red",
  5637. },
  5638. on: {
  5639. mouseover: function ($event) {
  5640. _vm.showPopover = true
  5641. },
  5642. mouseleave: function ($event) {
  5643. _vm.showPopover = false
  5644. },
  5645. },
  5646. }),
  5647. ]
  5648. },
  5649. proxy: true,
  5650. },
  5651. ]),
  5652. model: {
  5653. value: _vm.showPopover,
  5654. callback: function ($$v) {
  5655. _vm.showPopover = $$v
  5656. },
  5657. expression: "showPopover",
  5658. },
  5659. },
  5660. [
  5661. _c("code", { staticClass: "popovertext" }, [
  5662. _vm._v("建议浏览长条漫画时开启"),
  5663. ]),
  5664. ]
  5665. ),
  5666. ]
  5667. },
  5668. proxy: true,
  5669. },
  5670. {
  5671. key: "default",
  5672. fn: function () {
  5673. return [
  5674. _c("van-checkbox", {
  5675. staticClass: "rightbutton",
  5676. on: { change: _vm.webImgSplicing },
  5677. model: {
  5678. value: _vm.imgSplicingFlag,
  5679. callback: function ($$v) {
  5680. _vm.imgSplicingFlag = $$v
  5681. },
  5682. expression: "imgSplicingFlag",
  5683. },
  5684. }),
  5685. ]
  5686. },
  5687. proxy: true,
  5688. },
  5689. ]),
  5690. }),
  5691. ],
  5692. 1
  5693. ),
  5694. _vm._v(" "),
  5695. _c(
  5696. "van-cell-group",
  5697. { attrs: { title: "自定义规则", inset: "" } },
  5698. [
  5699. _c("van-cell", {
  5700. attrs: {
  5701. "title-class": "cellleftvalue",
  5702. "value-class": "cellrightvalue",
  5703. title: "导入规则",
  5704. "is-link": "",
  5705. center: "",
  5706. },
  5707. on: {
  5708. click: function ($event) {
  5709. return _vm.changeSwipe(1)
  5710. },
  5711. },
  5712. }),
  5713. _vm._v(" "),
  5714. _c("van-cell", {
  5715. attrs: {
  5716. "title-class": "cellleftvalue",
  5717. "value-class": "cellrightvalue",
  5718. title: "清空导入的规则",
  5719. "is-link": "",
  5720. center: "",
  5721. },
  5722. on: {
  5723. click: function ($event) {
  5724. return _vm.deleteAllUserWeb()
  5725. },
  5726. },
  5727. }),
  5728. ],
  5729. 1
  5730. ),
  5731. _vm._v(" "),
  5732. _c(
  5733. "van-cell-group",
  5734. { attrs: { id: "otherpart", title: "其他", inset: "" } },
  5735. [
  5736. _c("van-cell", {
  5737. attrs: {
  5738. "title-class": "cellleftvalue",
  5739. "value-class": "cellrightvalue",
  5740. title: "脚本反馈/评分",
  5741. "is-link": "",
  5742. center: "",
  5743. },
  5744. on: {
  5745. click: function ($event) {
  5746. return _vm.jump(
  5747. "https://greasyfork.org/zh-CN/scripts/447819/feedback"
  5748. )
  5749. },
  5750. },
  5751. }),
  5752. ],
  5753. 1
  5754. ),
  5755. ],
  5756. 1
  5757. ),
  5758. _vm._v(" "),
  5759. _c(
  5760. "div",
  5761. { attrs: { id: "set-bottom" } },
  5762. [
  5763. _c(
  5764. "van-button",
  5765. {
  5766. style: {
  5767. width: "120px",
  5768. background: "#ee000055 !important",
  5769. },
  5770. attrs: { size: "small", round: "" },
  5771. on: { click: _vm.allInit },
  5772. },
  5773. [_vm._v("全部重置")]
  5774. ),
  5775. ],
  5776. 1
  5777. ),
  5778. ]),
  5779. _vm._v(" "),
  5780. _c(
  5781. "van-swipe-item",
  5782. {
  5783. staticClass: "swipeitem",
  5784. style: { marginBottom: "15px", cursor: "pointer", flex: 1 },
  5785. },
  5786. [
  5787. _c(
  5788. "div",
  5789. [
  5790. _c(
  5791. "div",
  5792. {
  5793. attrs: { id: "setup-return" },
  5794. on: {
  5795. click: function ($event) {
  5796. return _vm.changeSwipe(0)
  5797. },
  5798. },
  5799. },
  5800. [
  5801. _c("van-icon", { attrs: { name: "arrow-left" } }),
  5802. _vm._v(" 返回\n "),
  5803. ],
  5804. 1
  5805. ),
  5806. _vm._v(" "),
  5807. _vm.setupOtherPage === 1 ? _c("import-page") : _vm._e(),
  5808. ],
  5809. 1
  5810. ),
  5811. ]
  5812. ),
  5813. ],
  5814. 1
  5815. ),
  5816. ],
  5817. 1
  5818. )
  5819. }
  5820. var settingvue_type_template_id_234d1526_scoped_true_staticRenderFns = []
  5821. settingvue_type_template_id_234d1526_scoped_true_render._withStripped = true
  5822.  
  5823.  
  5824. ;// CONCATENATED MODULE: ./src/views/setting.vue?vue&type=template&id=234d1526&scoped=true&
  5825.  
  5826. ;// 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&
  5827. var importPagevue_type_template_id_3e5333e4_scoped_true_render = function () {
  5828. var _vm = this
  5829. var _h = _vm.$createElement
  5830. var _c = _vm._self._c || _h
  5831. return _c(
  5832. "div",
  5833. { staticClass: "import-page" },
  5834. [
  5835. _c("textarea", {
  5836. directives: [
  5837. {
  5838. name: "model",
  5839. rawName: "v-model",
  5840. value: _vm.codeText,
  5841. expression: "codeText",
  5842. },
  5843. ],
  5844. ref: "codeTextarea",
  5845. staticStyle: { resize: "none" },
  5846. style: { width: "97%", height: "92%" },
  5847. attrs: { id: "codeTextarea" },
  5848. domProps: { value: _vm.codeText },
  5849. on: {
  5850. input: function ($event) {
  5851. if ($event.target.composing) {
  5852. return
  5853. }
  5854. _vm.codeText = $event.target.value
  5855. },
  5856. },
  5857. }),
  5858. _vm._v(" "),
  5859. _c(
  5860. "van-button",
  5861. { attrs: { size: "mini" }, on: { click: _vm.getCode } },
  5862. [_vm._v("确定")]
  5863. ),
  5864. ],
  5865. 1
  5866. )
  5867. }
  5868. var importPagevue_type_template_id_3e5333e4_scoped_true_staticRenderFns = []
  5869. importPagevue_type_template_id_3e5333e4_scoped_true_render._withStripped = true
  5870.  
  5871.  
  5872. ;// CONCATENATED MODULE: ./src/components/importPage.vue?vue&type=template&id=3e5333e4&scoped=true&
  5873.  
  5874. // EXTERNAL MODULE: ./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/importPage.vue?vue&type=script&lang=js&
  5875. var importPagevue_type_script_lang_js_ = __webpack_require__(555);
  5876. ;// CONCATENATED MODULE: ./src/components/importPage.vue?vue&type=script&lang=js&
  5877. /* harmony default export */ const components_importPagevue_type_script_lang_js_ = (importPagevue_type_script_lang_js_/* default */.Z);
  5878. // 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&
  5879. var importPagevue_type_style_index_0_id_3e5333e4_lang_less_scoped_true_ = __webpack_require__(159);
  5880. ;// 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&
  5881.  
  5882.  
  5883. var importPagevue_type_style_index_0_id_3e5333e4_lang_less_scoped_true_options = {};
  5884.  
  5885. importPagevue_type_style_index_0_id_3e5333e4_lang_less_scoped_true_options.styleTagTransform = (styleTagTransform_default());
  5886. importPagevue_type_style_index_0_id_3e5333e4_lang_less_scoped_true_options.setAttributes = (setAttributesWithoutAttributes_default());
  5887.  
  5888. importPagevue_type_style_index_0_id_3e5333e4_lang_less_scoped_true_options.insert = insertBySelector_default().bind(null, "head");
  5889. importPagevue_type_style_index_0_id_3e5333e4_lang_less_scoped_true_options.domAPI = (styleDomAPI_default());
  5890. importPagevue_type_style_index_0_id_3e5333e4_lang_less_scoped_true_options.insertStyleElement = (insertStyleElement_default());
  5891.  
  5892. 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);
  5893.  
  5894.  
  5895.  
  5896.  
  5897. /* harmony default export */ const components_importPagevue_type_style_index_0_id_3e5333e4_lang_less_scoped_true_ = (importPagevue_type_style_index_0_id_3e5333e4_lang_less_scoped_true_/* default */.Z && importPagevue_type_style_index_0_id_3e5333e4_lang_less_scoped_true_/* default.locals */.Z.locals ? importPagevue_type_style_index_0_id_3e5333e4_lang_less_scoped_true_/* default.locals */.Z.locals : undefined);
  5898.  
  5899. ;// CONCATENATED MODULE: ./src/components/importPage.vue?vue&type=style&index=0&id=3e5333e4&lang=less&scoped=true&
  5900.  
  5901. ;// CONCATENATED MODULE: ./src/components/importPage.vue
  5902.  
  5903.  
  5904.  
  5905. ;
  5906.  
  5907.  
  5908. /* normalize component */
  5909.  
  5910. var importPage_component = normalizeComponent(
  5911. components_importPagevue_type_script_lang_js_,
  5912. importPagevue_type_template_id_3e5333e4_scoped_true_render,
  5913. importPagevue_type_template_id_3e5333e4_scoped_true_staticRenderFns,
  5914. false,
  5915. null,
  5916. "3e5333e4",
  5917. null
  5918. )
  5919.  
  5920. /* hot reload */
  5921. if (false) { var importPage_api; }
  5922. importPage_component.options.__file = "src/components/importPage.vue"
  5923. /* harmony default export */ const importPage = (importPage_component.exports);
  5924. ;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/setting.vue?vue&type=script&lang=js&
  5925. //
  5926. //
  5927. //
  5928. //
  5929. //
  5930. //
  5931. //
  5932. //
  5933. //
  5934. //
  5935. //
  5936. //
  5937. //
  5938. //
  5939. //
  5940. //
  5941. //
  5942. //
  5943. //
  5944. //
  5945. //
  5946. //
  5947. //
  5948. //
  5949. //
  5950. //
  5951. //
  5952. //
  5953. //
  5954. //
  5955. //
  5956. //
  5957. //
  5958. //
  5959. //
  5960. //
  5961. //
  5962. //
  5963. //
  5964. //
  5965. //
  5966. //
  5967. //
  5968. //
  5969. //
  5970. //
  5971. //
  5972. //
  5973. //
  5974. //
  5975. //
  5976. //
  5977. //
  5978. //
  5979. //
  5980. //
  5981. //
  5982. //
  5983. //
  5984. //
  5985. //
  5986. //
  5987. //
  5988. //
  5989. //
  5990. //
  5991. //
  5992. //
  5993. //
  5994. //
  5995. //
  5996. //
  5997. //
  5998. //
  5999. //
  6000. //
  6001. //
  6002. //
  6003. //
  6004. //
  6005. //
  6006. //
  6007. //
  6008. //
  6009. //
  6010. //
  6011. //
  6012. //
  6013. //
  6014. //
  6015. //
  6016. //
  6017. //
  6018. //
  6019. //
  6020. //
  6021. //
  6022. //
  6023. //
  6024. //
  6025. //
  6026. //
  6027. //
  6028. //
  6029. //
  6030. //
  6031. //
  6032. //
  6033. //
  6034. //
  6035. //
  6036. //
  6037. //
  6038. //
  6039. //
  6040. //
  6041. //
  6042. //
  6043. //
  6044. //
  6045. //
  6046. //
  6047. //
  6048. //
  6049. //
  6050. //
  6051. //
  6052. //
  6053. //
  6054. //
  6055. //
  6056. //
  6057. //
  6058. //
  6059. //
  6060. //
  6061. //
  6062. //
  6063. //
  6064. //
  6065. //
  6066. //
  6067. //
  6068. //
  6069. //
  6070. //
  6071. //
  6072. //
  6073. //
  6074. //
  6075. //
  6076. //
  6077. //
  6078. //
  6079. //
  6080. //
  6081. //
  6082. //
  6083. //
  6084. //
  6085. //
  6086. //
  6087. //
  6088. //
  6089. //
  6090. //
  6091. //
  6092. //
  6093. //
  6094. //
  6095. //
  6096. //
  6097. //
  6098. //
  6099. //
  6100. //
  6101. //
  6102. //
  6103. //
  6104. //
  6105. //
  6106. //
  6107. //
  6108. //
  6109. //
  6110. //
  6111. //
  6112. //
  6113. //
  6114. //
  6115. //
  6116. //
  6117. //
  6118. //
  6119. //
  6120. //
  6121. //
  6122. //
  6123. //
  6124. //
  6125. //
  6126. //
  6127. //
  6128. //
  6129. //
  6130. //
  6131. //
  6132. //
  6133. //
  6134. //
  6135. //
  6136. //
  6137. //
  6138. //
  6139. //
  6140. //
  6141. //
  6142. //
  6143. //
  6144. //
  6145. //
  6146. //
  6147. //
  6148. //
  6149. //
  6150. //
  6151. //
  6152. //
  6153. //
  6154. //
  6155. //
  6156. //
  6157. //
  6158. //
  6159. //
  6160. //
  6161. //
  6162. //
  6163. //
  6164. //
  6165. //
  6166. //
  6167. //
  6168. //
  6169. //
  6170. //
  6171. //
  6172. //
  6173. //
  6174. //
  6175. //
  6176. //
  6177. //
  6178. //
  6179. //
  6180. //
  6181. //
  6182. //
  6183. //
  6184. //
  6185. //
  6186. //
  6187. //
  6188. //
  6189. //
  6190. //
  6191. //
  6192. //
  6193. //
  6194. //
  6195. //
  6196. //
  6197. //
  6198. //
  6199. //
  6200. //
  6201. //
  6202. //
  6203. //
  6204. //
  6205. //
  6206. //
  6207. //
  6208. //
  6209. //
  6210. //
  6211. //
  6212. //
  6213. //
  6214. //
  6215. //
  6216. //
  6217. //
  6218. //
  6219. //
  6220. //
  6221. //
  6222. //
  6223. //
  6224. //
  6225. //
  6226. //
  6227. //
  6228. //
  6229. //
  6230. //
  6231. //
  6232. //
  6233. //
  6234. //
  6235. //
  6236. //
  6237. //
  6238. //
  6239. //
  6240. //
  6241. //
  6242. //
  6243. //
  6244. //
  6245. //
  6246. //
  6247. //
  6248. //
  6249. //
  6250. //
  6251. //
  6252. //
  6253. //
  6254. //
  6255. //
  6256. //
  6257. //
  6258. //
  6259. //
  6260. //
  6261. //
  6262. //
  6263. //
  6264. //
  6265. //
  6266. //
  6267. //
  6268. //
  6269. //
  6270. //
  6271. //
  6272. //
  6273. //
  6274. //
  6275. //
  6276. //
  6277. //
  6278. //
  6279. //
  6280. //
  6281. //
  6282. //
  6283. //
  6284. //
  6285. //
  6286. //
  6287. //
  6288. //
  6289. //
  6290. //
  6291. //
  6292. //
  6293. //
  6294. //
  6295. //
  6296. //
  6297. //
  6298. //
  6299. //
  6300. //
  6301. //
  6302. //
  6303. //
  6304. //
  6305. //
  6306. //
  6307. //
  6308. //
  6309. //
  6310. //
  6311. //
  6312. //
  6313. //
  6314. //
  6315. //
  6316. //
  6317. //
  6318. //
  6319. //
  6320. //
  6321. //
  6322. //
  6323. //
  6324. //
  6325. //
  6326. //
  6327. //
  6328. //
  6329. //
  6330. //
  6331. //
  6332. //
  6333. //
  6334. //
  6335. //
  6336. //
  6337. //
  6338. //
  6339. //
  6340. //
  6341. //
  6342. //
  6343. //
  6344. //
  6345. //
  6346. //
  6347. //
  6348. //
  6349. //
  6350. //
  6351. //
  6352. //
  6353. //
  6354. //
  6355. //
  6356. //
  6357. //
  6358. //
  6359. //
  6360. //
  6361. //
  6362. //
  6363. //
  6364. //
  6365. //
  6366. //
  6367. //
  6368. //
  6369. //
  6370. //
  6371. //
  6372. //
  6373. //
  6374. //
  6375. //
  6376. //
  6377. //
  6378. //
  6379. //
  6380. //
  6381. //
  6382. //
  6383. //
  6384. //
  6385. //
  6386. //
  6387. //
  6388. //
  6389. //
  6390. //
  6391. //
  6392. //
  6393.  
  6394. /* eslint-disable no-undef */
  6395.  
  6396.  
  6397.  
  6398.  
  6399.  
  6400.  
  6401.  
  6402.  
  6403. /* harmony default export */ const settingvue_type_script_lang_js_ = ({
  6404. name: 'Setting',
  6405. components: {
  6406. importPage: importPage
  6407. },
  6408. data() {
  6409. return {
  6410. appLoadDefault: {
  6411. isShowUI: true,
  6412. loadHotKey: '',
  6413. rightSize: 100,
  6414. centerSize: 100
  6415. },
  6416. appRightSize: 100,
  6417. appCenterSize: 100,
  6418. maxChapterNum: 1,
  6419. maxPictureNum: 2,
  6420. imgIndexBitNum: 3,
  6421. imgDownRange: [1, -1],
  6422. imgSplicingFlag: false,
  6423. //
  6424. downTypePopover: false,
  6425. addZeroHint: false,
  6426. imgDownRangeHint: false,
  6427. showPopover: false,
  6428. showUiPopover: false,
  6429. setupOtherPage: 0,
  6430.  
  6431. showDropDown: false,
  6432. downType: 0,
  6433. maxSplicingHeight: 20000,
  6434. splicingHeightPopover: false,
  6435. dropItem: [
  6436. { Text: '直接下载', value: 0 },
  6437. { Text: '压缩下载', value: 1 },
  6438. { Text: '拼接下载', value: 2, hint: '拼接后单张高度不超过 10000 像素' }
  6439. ]
  6440.  
  6441. }
  6442. },
  6443. mounted() {
  6444. this.getAllData()
  6445. this.$bus.$on('changeSetupFirstPage', () => { this.changeSwipe(0) })
  6446. },
  6447. methods: {
  6448. jump(url) {
  6449. window.open(url, '_blank')
  6450. },
  6451. onChangeData(key, value, key2) {
  6452. (0,setup/* setStorage */.po)(key, value, key2)
  6453. },
  6454. changeRightSize(num) {
  6455. if (num === undefined) {
  6456. num = 100
  6457. }
  6458. const appRightDom = document.getElementById('app-right')
  6459. appRightDom.style.scale = num / 100
  6460. this.onChangeData('appLoadDefault', num, 'rightSize')
  6461. },
  6462. changeCenterSize(num) {
  6463. if (num === undefined) {
  6464. num = 100
  6465. }
  6466. const appRightDom = document.getElementById('search-page')
  6467. appRightDom.style.scale = num / 100
  6468. this.onChangeData('appLoadDefault', num, 'centerSize')
  6469. },
  6470. loadHotKeyChange(obj) {
  6471. if (obj.data) {
  6472. this.appLoadDefault.loadHotKey = obj.data.toUpperCase()
  6473. this.onChangeData('appLoadDefault', this.appLoadDefault.loadHotKey, 'loadHotKey')
  6474. }
  6475. },
  6476. webImgSplicing(value) {
  6477. const splicingimgstyle = document.getElementById('splicingimgstyle')
  6478. if (value === true && comics/* currentComics */.Po && comics/* currentComics.readCssText */.Po.readCssText !== undefined) {
  6479. if (splicingimgstyle) {
  6480. splicingimgstyle.innerText = comics/* currentComics.readCssText */.Po.readCssText
  6481. } else {
  6482. (0,utils/* loadStyle */.Xr)('', 'splicingimgstyle', comics/* currentComics.readCssText */.Po.readCssText)
  6483. }
  6484. } else {
  6485. if (splicingimgstyle) {
  6486. splicingimgstyle.innerText = ''
  6487. }
  6488. }
  6489. this.onChangeData('imgSplicingFlag', value)
  6490. },
  6491. changeSwipe(val) {
  6492. console.log('val: ', val)
  6493. this.$refs.swipe2.swipeTo(val)
  6494. this.setupOtherPage = val
  6495. },
  6496. changeDownType(val) {
  6497. if (this.downType !== val) {
  6498. this.downType = val
  6499. this.onChangeData('downType', val)
  6500. }
  6501. },
  6502. splicingHeightBlur(event) {
  6503. const val = event.currentTarget.value
  6504. if (val < 10000) this.maxSplicingHeight = 10000
  6505. if (val > 65530) this.maxSplicingHeight = 65530
  6506. this.onChangeData('maxSplicingHeight', this.maxSplicingHeight)
  6507. },
  6508. imgDownRangeBlur() {
  6509. if (this.imgDownRange[0] < 1) this.imgDownRange[0] = 1
  6510. if (this.imgDownRange[1] > -1) this.imgDownRange[1] = -1
  6511. this.imgDownRange = JSON.parse(JSON.stringify(this.imgDownRange))
  6512. this.onChangeData('imgDownRange', this.imgDownRange)
  6513. },
  6514. exeFun(flag, basic) {
  6515. let rightSize = 100; let centerSize = 100
  6516. basic.rightSize ? rightSize = basic.rightSize : ''
  6517. basic.rightSize ? this.appRightSize = basic.rightSize : ''
  6518. this.changeRightSize(rightSize)
  6519.  
  6520. basic.centerSize ? centerSize = basic.centerSize : ''
  6521. basic.centerSize ? this.appCenterSize = basic.centerSize : ''
  6522. this.changeRightSize(centerSize)
  6523.  
  6524. this.webImgSplicing(flag)
  6525. },
  6526. getAllData() {
  6527. try {
  6528. this.maxChapterNum = GM_getValue('maxChapterNum')
  6529. this.maxPictureNum = GM_getValue('maxPictureNum')
  6530. this.downType = GM_getValue('downType')
  6531. this.maxSplicingHeight = GM_getValue('maxSplicingHeight')
  6532. this.imgIndexBitNum = GM_getValue('imgIndexBitNum')
  6533. this.imgSplicingFlag = GM_getValue('imgSplicingFlag')
  6534.  
  6535. this.imgDownRange = GM_getValue('imgDownRange')
  6536. //
  6537. this.appLoadDefault = GM_getValue('appLoadDefault')
  6538. // eslint-disable-next-line no-empty
  6539. } catch (error) {}
  6540. // 获取数据后执行其他方法
  6541. this.exeFun(this.imgSplicingFlag, this.appLoadDefault)
  6542. },
  6543. async allInit() {
  6544. external_vant_.Dialog.confirm({
  6545. getContainer: '.card',
  6546. message: '确认重置'
  6547. })
  6548. .then(() => {
  6549. (0,setup/* setinit */.zU)().then((result) => {
  6550. this.getAllData()
  6551. })
  6552. })
  6553. .catch(() => {
  6554. // on cancel
  6555. })
  6556. },
  6557. deleteAllUserWeb() {
  6558. external_vant_.Dialog.confirm({
  6559. getContainer: '.card',
  6560. message: '确认清空'
  6561. })
  6562. .then(() => {
  6563. (0,setup/* setStorage */.po)('userWebInfo', [])
  6564. this.$bus.$emit('getWeb')
  6565. })
  6566. .catch(() => {
  6567. // on cancel
  6568. })
  6569. }
  6570. }
  6571. });
  6572.  
  6573. ;// CONCATENATED MODULE: ./src/views/setting.vue?vue&type=script&lang=js&
  6574. /* harmony default export */ const views_settingvue_type_script_lang_js_ = (settingvue_type_script_lang_js_);
  6575. // 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&
  6576. var settingvue_type_style_index_0_id_234d1526_lang_less_scoped_true_ = __webpack_require__(55);
  6577. ;// 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&
  6578.  
  6579.  
  6580. var settingvue_type_style_index_0_id_234d1526_lang_less_scoped_true_options = {};
  6581.  
  6582. settingvue_type_style_index_0_id_234d1526_lang_less_scoped_true_options.styleTagTransform = (styleTagTransform_default());
  6583. settingvue_type_style_index_0_id_234d1526_lang_less_scoped_true_options.setAttributes = (setAttributesWithoutAttributes_default());
  6584.  
  6585. settingvue_type_style_index_0_id_234d1526_lang_less_scoped_true_options.insert = insertBySelector_default().bind(null, "head");
  6586. settingvue_type_style_index_0_id_234d1526_lang_less_scoped_true_options.domAPI = (styleDomAPI_default());
  6587. settingvue_type_style_index_0_id_234d1526_lang_less_scoped_true_options.insertStyleElement = (insertStyleElement_default());
  6588.  
  6589. 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);
  6590.  
  6591.  
  6592.  
  6593.  
  6594. /* harmony default export */ const views_settingvue_type_style_index_0_id_234d1526_lang_less_scoped_true_ = (settingvue_type_style_index_0_id_234d1526_lang_less_scoped_true_/* default */.Z && settingvue_type_style_index_0_id_234d1526_lang_less_scoped_true_/* default.locals */.Z.locals ? settingvue_type_style_index_0_id_234d1526_lang_less_scoped_true_/* default.locals */.Z.locals : undefined);
  6595.  
  6596. ;// CONCATENATED MODULE: ./src/views/setting.vue?vue&type=style&index=0&id=234d1526&lang=less&scoped=true&
  6597.  
  6598. ;// CONCATENATED MODULE: ./src/views/setting.vue
  6599.  
  6600.  
  6601.  
  6602. ;
  6603.  
  6604.  
  6605. /* normalize component */
  6606.  
  6607. var setting_component = normalizeComponent(
  6608. views_settingvue_type_script_lang_js_,
  6609. settingvue_type_template_id_234d1526_scoped_true_render,
  6610. settingvue_type_template_id_234d1526_scoped_true_staticRenderFns,
  6611. false,
  6612. null,
  6613. "234d1526",
  6614. null
  6615. )
  6616.  
  6617. /* hot reload */
  6618. if (false) { var setting_api; }
  6619. setting_component.options.__file = "src/views/setting.vue"
  6620. /* harmony default export */ const setting = (setting_component.exports);
  6621. ;// 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&
  6622. var downvue_type_template_id_1e855a88_scoped_true_render = function () {
  6623. var _vm = this
  6624. var _h = _vm.$createElement
  6625. var _c = _vm._self._c || _h
  6626. return _c(
  6627. "div",
  6628. { attrs: { id: "downcontext" } },
  6629. [
  6630. _c(
  6631. "van-collapse",
  6632. {
  6633. model: {
  6634. value: _vm.collapseActiveName,
  6635. callback: function ($$v) {
  6636. _vm.collapseActiveName = $$v
  6637. },
  6638. expression: "collapseActiveName",
  6639. },
  6640. },
  6641. [
  6642. _c(
  6643. "van-collapse-item",
  6644. {
  6645. attrs: { title: "下载中", name: "1" },
  6646. scopedSlots: _vm._u([
  6647. {
  6648. key: "title",
  6649. fn: function () {
  6650. return [
  6651. _c(
  6652. "div",
  6653. { style: { display: "flex", lineHeight: "25px" } },
  6654. [
  6655. _vm._v("下载中\n "),
  6656. _vm.comicName
  6657. ? _c("van-tag", { staticClass: "comicnametag1" }, [
  6658. _vm._v(_vm._s(_vm.comicName)),
  6659. ])
  6660. : _vm._e(),
  6661. ],
  6662. 1
  6663. ),
  6664. ]
  6665. },
  6666. proxy: true,
  6667. },
  6668. ]),
  6669. },
  6670. [
  6671. _vm._v(" "),
  6672. _c(
  6673. "div",
  6674. { attrs: { id: "downlist" } },
  6675. _vm._l(_vm.queue.worker, function (item, index) {
  6676. return _c("div", { key: index, staticClass: "downitem" }, [
  6677. item !== undefined
  6678. ? _c(
  6679. "div",
  6680. [
  6681. _c("div", { staticClass: "itemname" }, [
  6682. _c("span", { staticClass: "custom-title" }, [
  6683. _vm._v(_vm._s(item.downChapterName)),
  6684. ]),
  6685. ]),
  6686. _vm._v(" "),
  6687. _c("van-progress", {
  6688. ref: "progress",
  6689. refInFor: true,
  6690. staticStyle: {
  6691. width: "100%",
  6692. "margin-top": "10px",
  6693. },
  6694. attrs: {
  6695. percentage: item.progress,
  6696. "pivot-color": "#66ccff",
  6697. color:
  6698. "linear-gradient(to right, #66ccff22, ##66ccff)",
  6699. },
  6700. }),
  6701. _vm._v(" "),
  6702. _c("van-divider", {
  6703. style: {
  6704. margin: "13px 0px",
  6705. padding: "0 0px",
  6706. height: "1px",
  6707. },
  6708. }),
  6709. ],
  6710. 1
  6711. )
  6712. : _vm._e(),
  6713. ])
  6714. }),
  6715. 0
  6716. ),
  6717. ]
  6718. ),
  6719. _vm._v(" "),
  6720. _c("van-collapse-item", { attrs: { title: "待下载", name: "2" } }, [
  6721. _c(
  6722. "div",
  6723. { attrs: { id: "downlist" } },
  6724. _vm._l(_vm.queue.list, function (item, index) {
  6725. return _c(
  6726. "div",
  6727. { key: index, staticClass: "downitem" },
  6728. [
  6729. _c("div", { staticClass: "itemname" }, [
  6730. _c("span", { staticClass: "custom-title" }, [
  6731. _vm._v(_vm._s(item.downChapterName)),
  6732. ]),
  6733. ]),
  6734. _vm._v(" "),
  6735. _c("van-divider", {
  6736. style: {
  6737. margin: "8px 0px",
  6738. padding: "0 0px",
  6739. height: "1px",
  6740. },
  6741. }),
  6742. ],
  6743. 1
  6744. )
  6745. }),
  6746. 0
  6747. ),
  6748. ]),
  6749. _vm._v(" "),
  6750. _c(
  6751. "van-collapse-item",
  6752. {
  6753. attrs: { name: "3" },
  6754. scopedSlots: _vm._u([
  6755. {
  6756. key: "title",
  6757. fn: function () {
  6758. return [
  6759. _c(
  6760. "div",
  6761. { style: { display: "flex" } },
  6762. [
  6763. _c(
  6764. "span",
  6765. { attrs: { title: _vm.currentDomain } },
  6766. [
  6767. _vm._v("\n 下载记录\n "),
  6768. _c("van-icon", {
  6769. attrs: { name: "info-o", color: "#adadad" },
  6770. }),
  6771. ],
  6772. 1
  6773. ),
  6774. _vm._v(" "),
  6775. _c("van-icon", {
  6776. staticStyle: {
  6777. "line-height": "25px",
  6778. "margin-left": "10px",
  6779. },
  6780. attrs: {
  6781. name: "delete-o",
  6782. color: "#EE0000",
  6783. size: "20",
  6784. },
  6785. on: {
  6786. click: function ($event) {
  6787. $event.stopPropagation()
  6788. return _vm.deleteAllHistoryData.apply(
  6789. null,
  6790. arguments
  6791. )
  6792. },
  6793. },
  6794. }),
  6795. ],
  6796. 1
  6797. ),
  6798. ]
  6799. },
  6800. proxy: true,
  6801. },
  6802. ]),
  6803. },
  6804. [
  6805. _vm._v(" "),
  6806. _c(
  6807. "div",
  6808. { attrs: { id: "downlist" } },
  6809. _vm._l(_vm.historyData, function (item, index) {
  6810. return _c(
  6811. "div",
  6812. { key: index, staticClass: "downitem" },
  6813. [
  6814. _c(
  6815. "div",
  6816. { staticClass: "itemname" },
  6817. [
  6818. _c(
  6819. "div",
  6820. { staticStyle: { display: "flex" } },
  6821. [
  6822. _c(
  6823. "van-tag",
  6824. {
  6825. staticClass: "comicnametag",
  6826. attrs: { title: item.comicName },
  6827. on: {
  6828. click: function ($event) {
  6829. return _vm.jump(item.comicPageUrl)
  6830. },
  6831. },
  6832. },
  6833. [_vm._v(_vm._s(item.comicName))]
  6834. ),
  6835. _vm._v(" "),
  6836. _c(
  6837. "span",
  6838. {
  6839. staticClass: "custom-title chapterspan",
  6840. class: { hasError: item.hasError },
  6841. },
  6842. [_vm._v(_vm._s(item.downChapterName))]
  6843. ),
  6844. ],
  6845. 1
  6846. ),
  6847. _vm._v(" "),
  6848. _c("van-icon", {
  6849. style: { cursor: "pointer" },
  6850. attrs: { name: "delete-o", size: "18px" },
  6851. on: {
  6852. click: function ($event) {
  6853. return _vm.deleteHistoryData(index, item.id)
  6854. },
  6855. },
  6856. }),
  6857. ],
  6858. 1
  6859. ),
  6860. _vm._v(" "),
  6861. _c("van-divider", {
  6862. style: {
  6863. margin: "8px 0px",
  6864. padding: "0 0px",
  6865. height: "1px",
  6866. },
  6867. }),
  6868. ],
  6869. 1
  6870. )
  6871. }),
  6872. 0
  6873. ),
  6874. ]
  6875. ),
  6876. ],
  6877. 1
  6878. ),
  6879. ],
  6880. 1
  6881. )
  6882. }
  6883. var downvue_type_template_id_1e855a88_scoped_true_staticRenderFns = []
  6884. downvue_type_template_id_1e855a88_scoped_true_render._withStripped = true
  6885.  
  6886.  
  6887. ;// CONCATENATED MODULE: ./src/views/down.vue?vue&type=template&id=1e855a88&scoped=true&
  6888.  
  6889. ;// CONCATENATED MODULE: external "JSZip"
  6890. const external_JSZip_namespaceObject = JSZip;
  6891. var external_JSZip_default = /*#__PURE__*/__webpack_require__.n(external_JSZip_namespaceObject);
  6892. ;// CONCATENATED MODULE: ./src/utils/queue.js
  6893.  
  6894.  
  6895.  
  6896.  
  6897. // 多个任务并行执行的队列
  6898. // https://juejin.cn/post/6844903961728647181
  6899.  
  6900. class Queue {
  6901. constructor(workerLen, maxPictureNum, imgIndexBitNum, vue) {
  6902. this.workerLen = workerLen || 3 // 同时执行的任务数
  6903. this.pictureNum = maxPictureNum || 2 // 章节最大下载图片数量
  6904. this.list = [] // 任务队列
  6905. this.worker = new Array(this.workerLen) // 正在执行的任务
  6906. this.workerDownInfo = new Array(this.workerLen) // 存储下载信息
  6907. this.imgIndexBitNum = imgIndexBitNum // 图片序号位数
  6908. this.Vue = vue
  6909. }
  6910.  
  6911. // 压缩下载方式
  6912. async downloadFile(fileName, content) {
  6913. const url = window.URL.createObjectURL(content)
  6914. await (0,utils/* downFile */.zd)(url, fileName)
  6915. window.URL.revokeObjectURL(url)
  6916. }
  6917.  
  6918. /**
  6919. * 执行一个任务
  6920. * @param { number } index
  6921. */
  6922. async * exeDown(index) {
  6923. const { readtype, downChapterName } = this.worker[index]
  6924. const _this = this
  6925.  
  6926. async function afterDown(index) {
  6927. const { comicName, hasError } = _this.worker[index]
  6928. const comicPageUrl = window.location.href
  6929. let historyData = localStorage.getItem('ylComicDownHistory') || '[]'
  6930. historyData = JSON.parse(historyData)
  6931. const id = (new Date()).getTime()
  6932. historyData.unshift({ id, comicName, downChapterName, comicPageUrl, hasError })
  6933. historyData = JSON.stringify(historyData)
  6934. localStorage.setItem('ylComicDownHistory', historyData)
  6935. _this.Vue.getHistoryData()
  6936. _this.worker[index] = undefined
  6937. // 休息下?
  6938. setTimeout(() => {
  6939. _this.run()
  6940. }, 2000)
  6941. }
  6942.  
  6943. if (readtype === 1) {
  6944. const { url, isPay } = this.worker[index]
  6945. const processData = { url, isPay }
  6946. let imgs = []
  6947. try {
  6948. imgs = await (0,utils/* getImage */.gJ)(processData)
  6949. const imgDownRange = (0,setup/* getStorage */.cF)('imgDownRange')
  6950. const start = parseInt(imgDownRange[0])
  6951. const end = parseInt(imgDownRange[1])
  6952. if (end === -1) {
  6953. imgs = imgs.slice(start - 1)
  6954. } else {
  6955. imgs = imgs.slice(start - 1, end + 1)
  6956. }
  6957. // eslint-disable-next-line eqeqeq
  6958. imgs == [] ? this.worker[index].hasError = true : ''
  6959. this.worker[index].imgs = imgs
  6960. this.worker[index].totalNumber = imgs.length
  6961. } catch (error) {
  6962. this.worker[index].hasError = true
  6963. }
  6964. yield this.down(index)
  6965. .then(function() {
  6966. afterDown(index)
  6967. })
  6968. //
  6969. } else {
  6970. yield this.down2(index)
  6971. .then(function() {
  6972. afterDown(index)
  6973. })
  6974. }
  6975. }
  6976.  
  6977. /**
  6978. * 添加到任务队列
  6979. * @param { Array<Array<any>> } list: 任务队列
  6980. */
  6981. addList(list) {
  6982. for (const item of list) {
  6983. this.list.unshift(item)
  6984. }
  6985. }
  6986.  
  6987. refresh() {
  6988. this.worker.splice(0, 0)
  6989. }
  6990.  
  6991. // 直接下载图片 Promise
  6992. addImgDownPromise(index, imgurl, imgIndex, newHeaders, retryTimes) {
  6993. const headers = {
  6994. referer: this.worker[index].url
  6995. }
  6996. return new Promise((resolve, reject) => {
  6997. const _this = this
  6998. if (!imgurl) {
  6999. _this.worker[index].progress = parseInt(_this.worker[index].imgIndex / _this.worker[index].totalNumber * 100)
  7000. _this.refresh()
  7001. resolve(false)
  7002. }
  7003.  
  7004. (0,utils/* request */.WY)({
  7005. method: 'get',
  7006. url: imgurl,
  7007. responseType: 'blob',
  7008. headers: newHeaders || headers,
  7009. timeout: 60 * 1000
  7010. }).then((res) => {
  7011. const name = this.worker[index].comicName + '\\' + this.worker[index].downChapterName + '\\' +
  7012. (0,utils/* addZeroForNum */.xo)(imgIndex, this.imgIndexBitNum) + '.'
  7013.  
  7014. let suffix = this.getSuffix(res.finalUrl)
  7015.  
  7016. _this.worker[index].successNum = _this.worker[index].successNum + 1
  7017. _this.worker[index].progress = parseInt(_this.worker[index].imgIndex / _this.worker[index].totalNumber * 100)
  7018. _this.refresh()
  7019.  
  7020. let newurl = ''
  7021. if (res === 'onerror' || res === 'timeout') {
  7022. if (retryTimes !== 2) {
  7023. if (retryTimes === undefined) retryTimes = 0
  7024. return resolve(_this.addImgDownPromise(index, imgurl, imgIndex, newHeaders, ++retryTimes))
  7025. }
  7026.  
  7027. _this.worker[index].hasError = true
  7028. suffix = 'txt'
  7029. const newBlob = new Blob([imgurl], { type: 'text/plain' })
  7030. newurl = window.URL.createObjectURL(newBlob)
  7031. } else {
  7032. newurl = window.URL.createObjectURL(res.response)
  7033. }
  7034. (0,utils/* downFile */.zd)(newurl, name + suffix).then((downRes) => {
  7035. if (downRes) {
  7036. resolve(true)
  7037. } else {
  7038. _this.worker[index].hasError = true
  7039. resolve(false)
  7040. }
  7041. })
  7042. })
  7043. })
  7044. }
  7045.  
  7046. // 请求图片Blob Promise (后用于压缩)
  7047. addImgPromise(index, imgurl, newHeaders, retryTimes) {
  7048. const headers = {
  7049. referer: this.worker[index].url
  7050. }
  7051. return new Promise((resolve, reject) => {
  7052. const _this = this
  7053. if (imgurl === '' || imgurl === undefined) {
  7054. _this.worker[index].hasError = true
  7055. return resolve({
  7056. blob: 1,
  7057. imgurl,
  7058. suffix: '' })
  7059. }
  7060.  
  7061. const suffix = this.getSuffix(imgurl)
  7062. ;(0,utils/* request */.WY)({
  7063. method: 'get',
  7064. url: imgurl,
  7065. responseType: 'blob',
  7066. headers: newHeaders || headers,
  7067. timeout: 60 * 1000,
  7068. onload: function(gmRes) {
  7069. _this.worker[index].successNum = _this.worker[index].successNum + 1
  7070. _this.worker[index].progress = parseInt(_this.worker[index].imgIndex / _this.worker[index].totalNumber * 100)
  7071. _this.refresh()
  7072. resolve({
  7073. blob: gmRes.response,
  7074. imgurl,
  7075. suffix: suffix })
  7076. },
  7077. onerror: function(e) {
  7078. if (retryTimes !== 2) {
  7079. if (retryTimes === undefined) retryTimes = 0
  7080. return resolve(_this.addImgPromise(index, imgurl, newHeaders, ++retryTimes))
  7081. }
  7082. _this.worker[index].hasError = true
  7083. resolve({
  7084. blob: 1,
  7085. imgurl,
  7086. suffix: '' })
  7087. },
  7088. ontimeout: function() {
  7089. if (retryTimes !== 2) {
  7090. if (retryTimes === undefined) retryTimes = 0
  7091. return resolve(_this.addImgPromise(index, imgurl, newHeaders, ++retryTimes))
  7092. }
  7093. resolve({
  7094. blob: 0,
  7095. imgurl,
  7096. suffix: '' })
  7097. }
  7098. })
  7099. })
  7100. }
  7101.  
  7102. /**
  7103. * 下载图片
  7104. * @param { workerId } workerId: 任务id
  7105. */
  7106.  
  7107. // 网站翻页阅读
  7108. async down2(workerId) {
  7109. const { url, downType, totalNumber, isPay, imgIndex, downHeaders } = this.worker[workerId]
  7110.  
  7111. const processData = { url, imgIndex, totalNumber, isPay }
  7112. processData.otherData = this.worker[workerId].otherData
  7113.  
  7114. const { imgUrlArr, nextPageUrl, imgCount, otherData } = await (0,utils/* getImage */.gJ)(processData)
  7115. this.worker[workerId].otherData = otherData
  7116.  
  7117. this.worker[workerId].totalNumber = parseInt(imgCount)
  7118. const beforeDownLen = imgUrlArr.length
  7119. // console.log('下载前', beforeDownLen, imgIndex, totalNumber)
  7120.  
  7121. while (imgUrlArr.length > 0) {
  7122. // eslint-disable-next-line prefer-const
  7123. let promise = []
  7124. for (let index = this.pictureNum; index > 0; index--) {
  7125. if (imgUrlArr[0] === undefined) {
  7126. break
  7127. }
  7128. const imgIndex = ++this.worker[workerId].imgIndex
  7129. if (downType) {
  7130. promise.push(this.addImgPromise(workerId, imgUrlArr[0], downHeaders))
  7131. } else {
  7132. promise.push(this.addImgDownPromise(workerId, imgUrlArr[0], imgIndex, downHeaders))
  7133. }
  7134. imgUrlArr.shift()
  7135. }
  7136.  
  7137. const res = await Promise.all(promise)
  7138. res.forEach(element => {
  7139. this.workerDownInfo[workerId].push(element)
  7140. })
  7141. }
  7142.  
  7143. const newImgIndex = this.worker[workerId].imgIndex
  7144. if (beforeDownLen !== 0 && nextPageUrl !== '' && newImgIndex < parseInt(imgCount)) {
  7145. this.worker[workerId].url = nextPageUrl
  7146. return new Promise((resolve, reject) => {
  7147. // 休息一下?
  7148. setTimeout(() => {
  7149. resolve(this.down2(workerId))
  7150. }, 1000)
  7151. })
  7152. } else {
  7153. // 压缩
  7154. if (downType === 1) {
  7155. const result = await this.makeZip(workerId)
  7156. return new Promise((resolve, reject) => {
  7157. resolve(result)
  7158. })
  7159. } else if (downType === 2) { // 拼接
  7160. await this.combineImages(workerId)
  7161. return new Promise((resolve, reject) => {
  7162. resolve()
  7163. })
  7164. } else {
  7165. return new Promise((resolve, reject) => {
  7166. resolve(1)
  7167. })
  7168. }
  7169. }
  7170. }
  7171.  
  7172. // 网站卷轴阅读
  7173. async down(workerId) {
  7174. const { imgs, downType, downHeaders } = this.worker[workerId]
  7175. const promise = []
  7176. let len = imgs.length
  7177. let pictureNum = this.pictureNum
  7178.  
  7179. while (pictureNum-- && len > 0) {
  7180. // 是否压缩
  7181. const imgIndex = ++this.worker[workerId].imgIndex
  7182. if (downType) {
  7183. promise.push(this.addImgPromise(workerId, imgs[0], downHeaders))
  7184. } else {
  7185. promise.push(this.addImgDownPromise(workerId, imgs[0], imgIndex, downHeaders))
  7186. }
  7187. this.worker[workerId].imgs.shift()
  7188. len--
  7189. }
  7190.  
  7191. const res = await Promise.all(promise)
  7192.  
  7193. res.forEach(element => {
  7194. this.workerDownInfo[workerId].push(element)
  7195. })
  7196.  
  7197. if (this.worker[workerId].imgs.length > 0) {
  7198. return new Promise((resolve, reject) => {
  7199. // 休息一下?
  7200. setTimeout(() => {
  7201. resolve(this.down(workerId))
  7202. }, 1000)
  7203. })
  7204. }
  7205.  
  7206. // 压缩
  7207. if (downType === 1) {
  7208. const result = await this.makeZip(workerId)
  7209. return new Promise((resolve, reject) => {
  7210. resolve(result)
  7211. })
  7212. } else if (downType === 2) { // 拼接
  7213. await this.combineImages(workerId)
  7214. return new Promise((resolve, reject) => {
  7215. resolve()
  7216. })
  7217. } else {
  7218. return new Promise((resolve, reject) => {
  7219. resolve(1)
  7220. })
  7221. }
  7222. }
  7223.  
  7224. // 分配并执行任务
  7225. async run() {
  7226. const runIndex = []
  7227. for (let i = 0; i < this.workerLen; i++) {
  7228. const len = this.list.length
  7229. if (!this.worker[i] && len > 0) {
  7230. // 需要执行的任务
  7231. const item = this.list[len - 1]
  7232.  
  7233. const worker = {
  7234. comicName: item.comicName,
  7235. downChapterName: item.downChapterName,
  7236. url: item.url,
  7237. isPay: item.isPay, // 是否付费章节
  7238. imgIndex: 0, // 图片序号
  7239. successNum: 0, // 下载成功数量
  7240. totalNumber: 0, // 图片总数
  7241. imgs: [],
  7242. progress: 0, // 进度百分比
  7243. readtype: item.readtype, // 阅读(下载)方式类型
  7244. func: this.exeDown(i),
  7245. downType: item.downType, // 下载方式 0:直接 1:压缩 2:拼接
  7246. hasError: false,
  7247. downHeaders: item.downHeaders,
  7248. otherData: undefined // 自定义存储其他下载数据
  7249. }
  7250. this.worker[i] = worker
  7251. this.workerDownInfo[i] = []
  7252. this.list.pop()
  7253. runIndex.push(i)
  7254. }
  7255. }
  7256. // 执行任务
  7257. for (const index of runIndex) {
  7258. this.worker[index].func.next()
  7259. }
  7260. }
  7261.  
  7262. getSuffix(url) {
  7263. if (url) {
  7264. const testurl = url.toLowerCase()
  7265. const imgtype = ['jpg', 'jpeg', 'webp', 'png', 'gif', 'bmp', 'tiff', 'svg', 'ico']
  7266. for (let i = 0; i < imgtype.length; i++) {
  7267. const a = testurl.search(imgtype[i])
  7268. if (a !== -1) {
  7269. return imgtype[i]
  7270. }
  7271. }
  7272. // 可能网址没有图片后缀
  7273. return 'jpg'
  7274. }
  7275. return false
  7276. }
  7277.  
  7278. // 压缩
  7279. async makeZip(workerId) {
  7280. const { comicName, downChapterName } = this.worker[workerId]
  7281. return new Promise((resolve, reject) => {
  7282. const zip = new (external_JSZip_default())()
  7283. this.workerDownInfo[workerId].forEach((item, index) => {
  7284. const imgblob = item.blob
  7285. const suffix = item.suffix
  7286. if (imgblob === 1 || imgblob === 0) {
  7287. const txtBlob = new Blob([item.imgurl], { type: 'text/plain' })
  7288. zip.file((0,utils/* addZeroForNum */.xo)(index + 1, this.imgIndexBitNum) + '.txt', txtBlob, { blob: true })
  7289. return
  7290. }
  7291. zip.file((0,utils/* addZeroForNum */.xo)(index + 1, this.imgIndexBitNum) + '.' + suffix, imgblob, { blob: true })
  7292. })
  7293.  
  7294. zip.generateAsync({
  7295. type: 'blob',
  7296. compression: 'DEFLATE',
  7297. compressionOptions: {
  7298. level: 9
  7299. }
  7300. }).then((zipblob) => {
  7301. const name = comicName + '\\' + downChapterName + '.zip'
  7302. this.downloadFile(name, zipblob)
  7303. resolve()
  7304. return
  7305. })
  7306. })
  7307. }
  7308.  
  7309. async combineImages(workerId) {
  7310. const maxSplicingHeight = (0,setup/* getStorage */.cF)('maxSplicingHeight')
  7311. const { comicName, downChapterName } = this.worker[workerId]
  7312. let imgNum = 0
  7313. let curHeight = 0
  7314. let totalHeight = 0
  7315. const saveImg = []
  7316. const _this = this
  7317.  
  7318. async function asyncLoadImg(src) {
  7319. return new Promise((resolve, reject) => {
  7320. const img = document.createElement('img')
  7321. img.onload = () => {
  7322. resolve(img)
  7323. }
  7324. img.onerror = () => {
  7325. const error = new Error(`图片加载失败,url${src}`)
  7326. console.log('combineImages-e: ', error)
  7327. reject('')
  7328. }
  7329. img.src = src
  7330. })
  7331. }
  7332.  
  7333. async function asyncCanvas(canvas, name) {
  7334. return new Promise((resolve, reject) => {
  7335. canvas.toBlob(async function(imgblob) {
  7336. await _this.downloadFile(name, imgblob)
  7337. resolve()
  7338. }, 'image/jpeg', 0.8)
  7339. })
  7340. }
  7341.  
  7342. for (let index = 0; index < this.workerDownInfo[workerId].length; index++) {
  7343. const data = this.workerDownInfo[workerId][index]
  7344. // 去除不是图片类型
  7345. if (data.blob === 1 || data.blob === 0 || !data.blob.type.includes('image')) {
  7346. this.worker[workerId].hasError = true
  7347. const error_name = comicName + '\\' + downChapterName + '\\error_' + (0,utils/* addZeroForNum */.xo)(index + 1, this.imgIndexBitNum) + '.txt'
  7348. const imgurl = this.workerDownInfo[workerId][index].imgurl
  7349. const newBlob = new Blob([imgurl], { type: 'text/plain' })
  7350. _this.downloadFile(error_name, newBlob)
  7351. continue
  7352. }
  7353.  
  7354. const newurl = window.URL.createObjectURL(data.blob)
  7355. const image = await asyncLoadImg(newurl)
  7356. if (image === '') {
  7357. continue
  7358. }
  7359. if (totalHeight === 0) {
  7360. const obj = { num: imgNum, width: image.width, height: image.height, img: [image] }
  7361. curHeight = image.height
  7362. totalHeight += image.height
  7363. saveImg.push(obj)
  7364. continue
  7365. }
  7366. if (curHeight + image.height > maxSplicingHeight) {
  7367. const newobj = { num: ++imgNum, width: image.width, height: image.height, img: [image] }
  7368. curHeight = image.height
  7369. saveImg.push(newobj)
  7370. } else {
  7371. curHeight += image.height
  7372. saveImg[imgNum].height += image.height
  7373. saveImg[imgNum].img.push(image)
  7374. }
  7375. totalHeight += image.height
  7376. }
  7377.  
  7378. const canvas = document.createElement('canvas')
  7379. const context = canvas.getContext('2d')
  7380. let offsetY = 0
  7381. for (let i = 0; i < saveImg.length; i++) {
  7382. const item = saveImg[i]
  7383. canvas.width = item.width
  7384. canvas.height = item.height
  7385. offsetY = 0
  7386.  
  7387. for (let len = 0; len < item.img.length; len++) {
  7388. const element = item.img[len]
  7389. context.drawImage(element, 0, offsetY, element.width, element.height)
  7390. offsetY = offsetY + parseInt(element.height)
  7391. }
  7392. const name = comicName + '\\' + downChapterName + '\\' + (0,utils/* addZeroForNum */.xo)(item.num + 1, this.imgIndexBitNum) + '.jpg'
  7393. await asyncCanvas(canvas, name)
  7394. }
  7395.  
  7396. return new Promise((resolve, reject) => {
  7397. resolve(true)
  7398. })
  7399. }
  7400. }
  7401.  
  7402. ;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/down.vue?vue&type=script&lang=js&
  7403. //
  7404. //
  7405. //
  7406. //
  7407. //
  7408. //
  7409. //
  7410. //
  7411. //
  7412. //
  7413. //
  7414. //
  7415. //
  7416. //
  7417. //
  7418. //
  7419. //
  7420. //
  7421. //
  7422. //
  7423. //
  7424. //
  7425. //
  7426. //
  7427. //
  7428. //
  7429. //
  7430. //
  7431. //
  7432. //
  7433. //
  7434. //
  7435. //
  7436. //
  7437. //
  7438. //
  7439. //
  7440. //
  7441. //
  7442. //
  7443. //
  7444. //
  7445. //
  7446. //
  7447. //
  7448. //
  7449. //
  7450. //
  7451. //
  7452. //
  7453. //
  7454. //
  7455. //
  7456. //
  7457. //
  7458. //
  7459. //
  7460. //
  7461. //
  7462. //
  7463. //
  7464. //
  7465. //
  7466. //
  7467. //
  7468. //
  7469. //
  7470. //
  7471. //
  7472. //
  7473. //
  7474. //
  7475. //
  7476. //
  7477. //
  7478. //
  7479. //
  7480. //
  7481. //
  7482. //
  7483. //
  7484. //
  7485. //
  7486. //
  7487. //
  7488. //
  7489. //
  7490. //
  7491. //
  7492. //
  7493. //
  7494. //
  7495. //
  7496. //
  7497. //
  7498. //
  7499. //
  7500. //
  7501. //
  7502. //
  7503. //
  7504. //
  7505. //
  7506. //
  7507. //
  7508.  
  7509.  
  7510.  
  7511.  
  7512.  
  7513.  
  7514.  
  7515. /* harmony default export */ const downvue_type_script_lang_js_ = ({
  7516. name: 'Down',
  7517. data() {
  7518. return {
  7519. collapseActiveName: ['1', '2', '3'],
  7520. comicName: null,
  7521. currentDomain: '当前记录 ' + (0,utils/* getdomain */.m1)(),
  7522. queue: {
  7523. 'worker': '',
  7524. 'list': '',
  7525. 'workeredList': ''
  7526. },
  7527. maxChapterNum: 3,
  7528. maxPictureNum: 2,
  7529. imgIndexBitNum: 3,
  7530. historyData: []
  7531. }
  7532. },
  7533. watch: {
  7534.  
  7535. },
  7536. mounted() {
  7537. console.clear()
  7538. this.$bus.$on('selectDown', this.downInit)
  7539. },
  7540. created() {
  7541. this.$bus.$on('getComicName', this.getComicName)
  7542. this.getHistoryData()
  7543. },
  7544. methods: {
  7545. getComicName(value) {
  7546. if (value !== '------') { this.comicName = value }
  7547. },
  7548. downInit(arr) {
  7549. if (this.queue.worker === '') {
  7550. this.maxChapterNum = (0,setup/* getStorage */.cF)('maxChapterNum')
  7551. this.maxPictureNum = (0,setup/* getStorage */.cF)('maxPictureNum')
  7552. this.imgIndexBitNum = (0,setup/* getStorage */.cF)('imgIndexBitNum')
  7553. this.queue = new Queue(this.maxChapterNum, this.maxPictureNum, this.imgIndexBitNum, this)
  7554. }
  7555. this.queue.addList(arr)
  7556. this.queue.run()
  7557. },
  7558. getHistoryData() {
  7559. const data = localStorage.getItem('ylComicDownHistory')
  7560. this.historyData = JSON.parse(data || '[]')
  7561. },
  7562. deleteHistoryData(index, id) {
  7563. this.historyData.splice(index, 1)
  7564. let data = localStorage.getItem('ylComicDownHistory')
  7565. let historyData = JSON.parse(data || '[]')
  7566. historyData = historyData.filter((item) => item.id !== id)
  7567. data = JSON.stringify(historyData)
  7568. localStorage.setItem('ylComicDownHistory', data)
  7569. },
  7570. deleteAllHistoryData() {
  7571. external_vant_.Dialog.confirm({
  7572. getContainer: '.card',
  7573. message: '确认全部删除'
  7574. })
  7575. .then(() => {
  7576. this.historyData.splice(0, this.historyData.length)
  7577. localStorage.setItem('ylComicDownHistory', '[]')
  7578. })
  7579. .catch(() => {
  7580. // on cancel
  7581. })
  7582. },
  7583. jump(url) {
  7584. window.open(url, '_blank')
  7585. // window.location.href = url
  7586. }
  7587. }
  7588. });
  7589.  
  7590. ;// CONCATENATED MODULE: ./src/views/down.vue?vue&type=script&lang=js&
  7591. /* harmony default export */ const views_downvue_type_script_lang_js_ = (downvue_type_script_lang_js_);
  7592. // 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&
  7593. var downvue_type_style_index_0_id_1e855a88_lang_less_scoped_true_ = __webpack_require__(961);
  7594. ;// 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&
  7595.  
  7596.  
  7597. var downvue_type_style_index_0_id_1e855a88_lang_less_scoped_true_options = {};
  7598.  
  7599. downvue_type_style_index_0_id_1e855a88_lang_less_scoped_true_options.styleTagTransform = (styleTagTransform_default());
  7600. downvue_type_style_index_0_id_1e855a88_lang_less_scoped_true_options.setAttributes = (setAttributesWithoutAttributes_default());
  7601.  
  7602. downvue_type_style_index_0_id_1e855a88_lang_less_scoped_true_options.insert = insertBySelector_default().bind(null, "head");
  7603. downvue_type_style_index_0_id_1e855a88_lang_less_scoped_true_options.domAPI = (styleDomAPI_default());
  7604. downvue_type_style_index_0_id_1e855a88_lang_less_scoped_true_options.insertStyleElement = (insertStyleElement_default());
  7605.  
  7606. 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);
  7607.  
  7608.  
  7609.  
  7610.  
  7611. /* harmony default export */ const views_downvue_type_style_index_0_id_1e855a88_lang_less_scoped_true_ = (downvue_type_style_index_0_id_1e855a88_lang_less_scoped_true_/* default */.Z && downvue_type_style_index_0_id_1e855a88_lang_less_scoped_true_/* default.locals */.Z.locals ? downvue_type_style_index_0_id_1e855a88_lang_less_scoped_true_/* default.locals */.Z.locals : undefined);
  7612.  
  7613. ;// CONCATENATED MODULE: ./src/views/down.vue?vue&type=style&index=0&id=1e855a88&lang=less&scoped=true&
  7614.  
  7615. ;// CONCATENATED MODULE: ./src/views/down.vue
  7616.  
  7617.  
  7618.  
  7619. ;
  7620.  
  7621.  
  7622. /* normalize component */
  7623.  
  7624. var down_component = normalizeComponent(
  7625. views_downvue_type_script_lang_js_,
  7626. downvue_type_template_id_1e855a88_scoped_true_render,
  7627. downvue_type_template_id_1e855a88_scoped_true_staticRenderFns,
  7628. false,
  7629. null,
  7630. "1e855a88",
  7631. null
  7632. )
  7633.  
  7634. /* hot reload */
  7635. if (false) { var down_api; }
  7636. down_component.options.__file = "src/views/down.vue"
  7637. /* harmony default export */ const down = (down_component.exports);
  7638. ;// 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&
  7639. var searchvue_type_template_id_4ad41bb8_scoped_true_render = function () {
  7640. var this$1 = this
  7641. var _vm = this
  7642. var _h = _vm.$createElement
  7643. var _c = _vm._self._c || _h
  7644. return _c(
  7645. "div",
  7646. {
  7647. directives: [
  7648. {
  7649. name: "show",
  7650. rawName: "v-show",
  7651. value: _vm.showSearchPage,
  7652. expression: "showSearchPage",
  7653. },
  7654. ],
  7655. attrs: { id: "search-page" },
  7656. },
  7657. [
  7658. _c(
  7659. "div",
  7660. { attrs: { id: "search-page-top" } },
  7661. [
  7662. _c("van-sticky", [
  7663. _c(
  7664. "div",
  7665. { staticClass: "search-input-btn" },
  7666. [
  7667. _c("van-loading", {
  7668. directives: [
  7669. {
  7670. name: "show",
  7671. rawName: "v-show",
  7672. value: _vm.showSearchLoad,
  7673. expression: "showSearchLoad",
  7674. },
  7675. ],
  7676. attrs: { color: "#ee0000", type: "spinner", size: "25" },
  7677. }),
  7678. _vm._v(" "),
  7679. _c("input", {
  7680. directives: [
  7681. {
  7682. name: "model",
  7683. rawName: "v-model",
  7684. value: _vm.inputSeachword,
  7685. expression: "inputSeachword",
  7686. },
  7687. ],
  7688. attrs: { type: "text", name: "searchword" },
  7689. domProps: { value: _vm.inputSeachword },
  7690. on: {
  7691. keyup: function ($event) {
  7692. if (
  7693. !$event.type.indexOf("key") &&
  7694. _vm._k($event.keyCode, "enter", 13, $event.key, "Enter")
  7695. ) {
  7696. return null
  7697. }
  7698. return _vm.search(_vm.inputSeachword)
  7699. },
  7700. input: function ($event) {
  7701. if ($event.target.composing) {
  7702. return
  7703. }
  7704. _vm.inputSeachword = $event.target.value
  7705. },
  7706. },
  7707. }),
  7708. _vm._v(" "),
  7709. _c(
  7710. "van-button",
  7711. {
  7712. attrs: { size: "small" },
  7713. on: {
  7714. click: function ($event) {
  7715. return _vm.search(_vm.inputSeachword)
  7716. },
  7717. },
  7718. },
  7719. [_vm._v("搜索")]
  7720. ),
  7721. ],
  7722. 1
  7723. ),
  7724. ]),
  7725. _vm._v(" "),
  7726. _c("van-icon", {
  7727. attrs: { id: "close-search-btn", name: "close", color: "#66ccff" },
  7728. on: {
  7729. click: function () {
  7730. this$1.showSearchPage = !this$1.showSearchPage
  7731. },
  7732. },
  7733. }),
  7734. ],
  7735. 1
  7736. ),
  7737. _vm._v(" "),
  7738. _c(
  7739. "div",
  7740. { attrs: { id: "search-page-bottom" } },
  7741. [
  7742. _c(
  7743. "div",
  7744. {
  7745. directives: [
  7746. {
  7747. name: "show",
  7748. rawName: "v-show",
  7749. value: _vm.showResult.length !== 0,
  7750. expression: "showResult.length !== 0",
  7751. },
  7752. ],
  7753. },
  7754. [
  7755. _c(
  7756. "van-collapse",
  7757. {
  7758. model: {
  7759. value: _vm.activeNames,
  7760. callback: function ($$v) {
  7761. _vm.activeNames = $$v
  7762. },
  7763. expression: "activeNames",
  7764. },
  7765. },
  7766. _vm._l(_vm.showResult, function (item, index) {
  7767. return _c(
  7768. "van-collapse-item",
  7769. {
  7770. key: index,
  7771. staticClass: "origin-list",
  7772. attrs: { title: item.webName, name: index },
  7773. },
  7774. [
  7775. _c(
  7776. "van-cell-group",
  7777. {
  7778. style: {
  7779. textAlign: "left",
  7780. background: "rgb(245 245 245 / 33%)",
  7781. padding: "2px 0",
  7782. },
  7783. },
  7784. _vm._l(item.findres, function (item2, index2) {
  7785. return _c(
  7786. "div",
  7787. {
  7788. key: index2,
  7789. staticClass: "origin-image-list",
  7790. attrs: { title: item2.name },
  7791. on: {
  7792. click: function ($event) {
  7793. return _vm.toResultWeb(item2.url)
  7794. },
  7795. },
  7796. },
  7797. [
  7798. _c("van-image", {
  7799. attrs: {
  7800. width: "100",
  7801. height: "150",
  7802. src: item2.imageUrl,
  7803. },
  7804. on: {
  7805. error: function ($event) {
  7806. return _vm.loadImgError(item2, item.webName)
  7807. },
  7808. },
  7809. scopedSlots: _vm._u(
  7810. [
  7811. {
  7812. key: "loading",
  7813. fn: function () {
  7814. return [
  7815. _c("van-loading", {
  7816. attrs: {
  7817. type: "spinner",
  7818. size: "25",
  7819. },
  7820. }),
  7821. ]
  7822. },
  7823. proxy: true,
  7824. },
  7825. ],
  7826. null,
  7827. true
  7828. ),
  7829. }),
  7830. _vm._v(" "),
  7831. _c("p", [_vm._v(_vm._s(item2.name))]),
  7832. ],
  7833. 1
  7834. )
  7835. }),
  7836. 0
  7837. ),
  7838. ],
  7839. 1
  7840. )
  7841. }),
  7842. 1
  7843. ),
  7844. ],
  7845. 1
  7846. ),
  7847. _vm._v(" "),
  7848. _c("van-empty", {
  7849. directives: [
  7850. {
  7851. name: "show",
  7852. rawName: "v-show",
  7853. value: _vm.showResult.length === 0,
  7854. expression: "showResult.length === 0",
  7855. },
  7856. ],
  7857. attrs: { description: "搜索内容" },
  7858. }),
  7859. ],
  7860. 1
  7861. ),
  7862. ]
  7863. )
  7864. }
  7865. var searchvue_type_template_id_4ad41bb8_scoped_true_staticRenderFns = []
  7866. searchvue_type_template_id_4ad41bb8_scoped_true_render._withStripped = true
  7867.  
  7868.  
  7869. ;// CONCATENATED MODULE: ./src/components/search.vue?vue&type=template&id=4ad41bb8&scoped=true&
  7870.  
  7871. ;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/search.vue?vue&type=script&lang=js&
  7872. //
  7873. //
  7874. //
  7875. //
  7876. //
  7877. //
  7878. //
  7879. //
  7880. //
  7881. //
  7882. //
  7883. //
  7884. //
  7885. //
  7886. //
  7887. //
  7888. //
  7889. //
  7890. //
  7891. //
  7892. //
  7893. //
  7894. //
  7895. //
  7896. //
  7897. //
  7898. //
  7899. //
  7900. //
  7901. //
  7902. //
  7903. //
  7904. //
  7905. //
  7906. //
  7907. //
  7908. //
  7909. //
  7910. //
  7911. //
  7912. //
  7913. //
  7914. //
  7915. //
  7916. //
  7917. //
  7918. //
  7919. //
  7920. //
  7921. //
  7922. //
  7923. //
  7924. //
  7925. //
  7926. //
  7927. //
  7928. //
  7929. //
  7930. //
  7931. //
  7932. //
  7933. //
  7934. //
  7935. //
  7936. //
  7937. //
  7938.  
  7939.  
  7940.  
  7941.  
  7942.  
  7943.  
  7944.  
  7945. /* harmony default export */ const searchvue_type_script_lang_js_ = ({
  7946. name: 'SearchPage',
  7947. data() {
  7948. return {
  7949. showSearchPage: false,
  7950. inputSeachword: '',
  7951. showSearchLoad: false,
  7952. searchTime: 0,
  7953. activeNames: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18],
  7954. searcKey: '',
  7955. searchInfo: [],
  7956. showResult: [],
  7957. showSearchPart: false
  7958. }
  7959. },
  7960. watch: {
  7961. 'searchInfo.length': {
  7962. handler(newLen, oldLen) {
  7963. if (newLen !== oldLen) {
  7964. this.getSearchContent(newLen)
  7965. }
  7966. }
  7967. }
  7968. },
  7969. mounted() {
  7970. this.$bus.$on('showSearchPage', () => { this.showSearchPage = !this.showSearchPage })
  7971. },
  7972. methods: {
  7973. toResultWeb(url) {
  7974. window.open(url, '_blank')
  7975. },
  7976. async loadImgError(item, name) {
  7977. const url = item.imageUrl
  7978. item.imgErrorTime === undefined ? item.imgErrorTime = 0 : ''
  7979.  
  7980. if (item.imgErrorTime !== 1) {
  7981. const blob = await (0,utils/* request */.WY)({
  7982. method: 'get',
  7983. url,
  7984. responseType: 'blob',
  7985. headers: item.headers || '',
  7986. timeout: 10000 })
  7987. const newUrl = window.URL.createObjectURL(blob.response)
  7988. item.imgErrorTime++
  7989. item.imageUrl = newUrl
  7990. }
  7991. },
  7992. getSearchContent(len) {
  7993. const oneWebInfo = this.searchInfo[len - 1]
  7994. this.showResult.push(oneWebInfo)
  7995. },
  7996. async search(keyword) {
  7997. if (keyword.length < 2) {
  7998. (0,external_vant_.Toast)({
  7999. message: '至少2个字符',
  8000. getContainer: '#search-page',
  8001. position: 'center'
  8002. })
  8003. return
  8004. }
  8005. this.searchTime++
  8006. const currentSearchTime = this.searchTime
  8007. this.showSearchLoad = true
  8008. this.showResult = []
  8009. for (let i = 0; i < comics/* comicsWebInfo.length */.Os.length; i++) {
  8010. const item = comics/* comicsWebInfo */.Os[i]
  8011. if (!item.searchTemplate_1 && !item.searchFun) {
  8012. continue
  8013. }
  8014.  
  8015. let findres = []
  8016. if (item.searchTemplate_1) {
  8017. try {
  8018. findres = await (0,comics/* searchFunTemplate_1 */.Ni)(item, keyword)
  8019. } catch (error) {
  8020. (0,external_vant_.Toast)({
  8021. message: item.webName + '\n' + error,
  8022. getContainer: '#search-page',
  8023. position: 'center'
  8024. })
  8025. }
  8026. }
  8027.  
  8028. if (!item.searchTemplate_1 && item.searchFun) {
  8029. try {
  8030. findres = await item.searchFun(keyword)
  8031. } catch (error) {
  8032. (0,external_vant_.Toast)({
  8033. message: item.webName + '\n' + error,
  8034. getContainer: '#search-page',
  8035. position: 'center'
  8036. })
  8037. }
  8038. }
  8039.  
  8040. if (currentSearchTime === this.searchTime) {
  8041. let showLen
  8042. findres.length > 8 ? showLen = 8 : showLen = findres.length
  8043. this.searchInfo.push({
  8044. webName: item.webName,
  8045. findres: findres.slice(0, showLen)
  8046. })
  8047. }
  8048. }
  8049. this.showSearchLoad = false
  8050. }
  8051. }
  8052. });
  8053.  
  8054. ;// CONCATENATED MODULE: ./src/components/search.vue?vue&type=script&lang=js&
  8055. /* harmony default export */ const components_searchvue_type_script_lang_js_ = (searchvue_type_script_lang_js_);
  8056. // 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&
  8057. var searchvue_type_style_index_0_id_4ad41bb8_lang_less_scoped_true_ = __webpack_require__(627);
  8058. ;// 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&
  8059.  
  8060.  
  8061. var searchvue_type_style_index_0_id_4ad41bb8_lang_less_scoped_true_options = {};
  8062.  
  8063. searchvue_type_style_index_0_id_4ad41bb8_lang_less_scoped_true_options.styleTagTransform = (styleTagTransform_default());
  8064. searchvue_type_style_index_0_id_4ad41bb8_lang_less_scoped_true_options.setAttributes = (setAttributesWithoutAttributes_default());
  8065.  
  8066. searchvue_type_style_index_0_id_4ad41bb8_lang_less_scoped_true_options.insert = insertBySelector_default().bind(null, "head");
  8067. searchvue_type_style_index_0_id_4ad41bb8_lang_less_scoped_true_options.domAPI = (styleDomAPI_default());
  8068. searchvue_type_style_index_0_id_4ad41bb8_lang_less_scoped_true_options.insertStyleElement = (insertStyleElement_default());
  8069.  
  8070. 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);
  8071.  
  8072.  
  8073.  
  8074.  
  8075. /* harmony default export */ const components_searchvue_type_style_index_0_id_4ad41bb8_lang_less_scoped_true_ = (searchvue_type_style_index_0_id_4ad41bb8_lang_less_scoped_true_/* default */.Z && searchvue_type_style_index_0_id_4ad41bb8_lang_less_scoped_true_/* default.locals */.Z.locals ? searchvue_type_style_index_0_id_4ad41bb8_lang_less_scoped_true_/* default.locals */.Z.locals : undefined);
  8076.  
  8077. ;// CONCATENATED MODULE: ./src/components/search.vue?vue&type=style&index=0&id=4ad41bb8&lang=less&scoped=true&
  8078.  
  8079. ;// CONCATENATED MODULE: ./src/components/search.vue
  8080.  
  8081.  
  8082.  
  8083. ;
  8084.  
  8085.  
  8086. /* normalize component */
  8087.  
  8088. var search_component = normalizeComponent(
  8089. components_searchvue_type_script_lang_js_,
  8090. searchvue_type_template_id_4ad41bb8_scoped_true_render,
  8091. searchvue_type_template_id_4ad41bb8_scoped_true_staticRenderFns,
  8092. false,
  8093. null,
  8094. "4ad41bb8",
  8095. null
  8096. )
  8097.  
  8098. /* hot reload */
  8099. if (false) { var search_api; }
  8100. search_component.options.__file = "src/components/search.vue"
  8101. /* harmony default export */ const search = (search_component.exports);
  8102. ;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/app.vue?vue&type=script&lang=js&
  8103. //
  8104. //
  8105. //
  8106. //
  8107. //
  8108. //
  8109. //
  8110. //
  8111. //
  8112. //
  8113. //
  8114. //
  8115. //
  8116. //
  8117. //
  8118. //
  8119. //
  8120. //
  8121. //
  8122. //
  8123. //
  8124. //
  8125. //
  8126. //
  8127. //
  8128. //
  8129. //
  8130. //
  8131. //
  8132. //
  8133. //
  8134. //
  8135. //
  8136. //
  8137. //
  8138. //
  8139. //
  8140. //
  8141. //
  8142. //
  8143. //
  8144. //
  8145. //
  8146. //
  8147. //
  8148. //
  8149. //
  8150. //
  8151. //
  8152. //
  8153. //
  8154. //
  8155. //
  8156. //
  8157. //
  8158. //
  8159. //
  8160. //
  8161. //
  8162. //
  8163. //
  8164. //
  8165. //
  8166. //
  8167. //
  8168. //
  8169. //
  8170. //
  8171. //
  8172. //
  8173.  
  8174.  
  8175.  
  8176.  
  8177.  
  8178.  
  8179.  
  8180.  
  8181.  
  8182. // import { request, downFile } from './utils/index'
  8183.  
  8184. /* harmony default export */ const appvue_type_script_lang_js_ = ({
  8185. name: 'App',
  8186. components: {
  8187. Home: home, Table: table, Down: down, Setting: setting, Search: search
  8188. },
  8189. data() {
  8190. return {
  8191. isHide: true,
  8192. showSearchPage: false,
  8193. active: 1,
  8194. titles: ['漫画网站', '加载', '下载', '设置'],
  8195. comicInfo: {}
  8196. }
  8197. },
  8198. computed: {
  8199. current: function() {
  8200. return this.active
  8201. }
  8202. },
  8203. watch: {
  8204. active(val) {
  8205. this.$refs.swipe.swipeTo(val)
  8206. }
  8207. },
  8208. created() {
  8209. this.Init()
  8210. },
  8211. mounted() {
  8212. this.$bus.$on('changTab', (val) => { this.active = val })
  8213. },
  8214. methods: {
  8215. hide() {
  8216. this.isHide = !this.isHide
  8217. },
  8218. async Init() {
  8219. (0,comics/* matchWeb */.HL)(window.location.href)
  8220. },
  8221.  
  8222. async test() {
  8223. }
  8224. }
  8225. });
  8226.  
  8227. ;// CONCATENATED MODULE: ./src/app.vue?vue&type=script&lang=js&
  8228. /* harmony default export */ const src_appvue_type_script_lang_js_ = (appvue_type_script_lang_js_);
  8229. // 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&
  8230. var appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_ = __webpack_require__(857);
  8231. ;// 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&
  8232.  
  8233.  
  8234. var appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_options = {};
  8235.  
  8236. appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_options.styleTagTransform = (styleTagTransform_default());
  8237. appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_options.setAttributes = (setAttributesWithoutAttributes_default());
  8238.  
  8239. appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_options.insert = insertBySelector_default().bind(null, "head");
  8240. appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_options.domAPI = (styleDomAPI_default());
  8241. appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_options.insertStyleElement = (insertStyleElement_default());
  8242.  
  8243. 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);
  8244.  
  8245.  
  8246.  
  8247.  
  8248. /* harmony default export */ const lib_vue_loader_options_src_appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_ = (appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_/* default */.Z && appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_/* default.locals */.Z.locals ? appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_/* default.locals */.Z.locals : undefined);
  8249.  
  8250. ;// CONCATENATED MODULE: ./src/app.vue?vue&type=style&index=0&id=5ef48958&lang=scss&scoped=true&
  8251.  
  8252. // 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&
  8253. var appvue_type_style_index_1_id_5ef48958_lang_less_scoped_true_ = __webpack_require__(658);
  8254. ;// 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&
  8255.  
  8256.  
  8257. var appvue_type_style_index_1_id_5ef48958_lang_less_scoped_true_options = {};
  8258.  
  8259. appvue_type_style_index_1_id_5ef48958_lang_less_scoped_true_options.styleTagTransform = (styleTagTransform_default());
  8260. appvue_type_style_index_1_id_5ef48958_lang_less_scoped_true_options.setAttributes = (setAttributesWithoutAttributes_default());
  8261.  
  8262. appvue_type_style_index_1_id_5ef48958_lang_less_scoped_true_options.insert = insertBySelector_default().bind(null, "head");
  8263. appvue_type_style_index_1_id_5ef48958_lang_less_scoped_true_options.domAPI = (styleDomAPI_default());
  8264. appvue_type_style_index_1_id_5ef48958_lang_less_scoped_true_options.insertStyleElement = (insertStyleElement_default());
  8265.  
  8266. 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);
  8267.  
  8268.  
  8269.  
  8270.  
  8271. /* harmony default export */ const lib_vue_loader_options_src_appvue_type_style_index_1_id_5ef48958_lang_less_scoped_true_ = (appvue_type_style_index_1_id_5ef48958_lang_less_scoped_true_/* default */.Z && appvue_type_style_index_1_id_5ef48958_lang_less_scoped_true_/* default.locals */.Z.locals ? appvue_type_style_index_1_id_5ef48958_lang_less_scoped_true_/* default.locals */.Z.locals : undefined);
  8272.  
  8273. ;// CONCATENATED MODULE: ./src/app.vue?vue&type=style&index=1&id=5ef48958&lang=less&scoped=true&
  8274.  
  8275. ;// CONCATENATED MODULE: ./src/app.vue
  8276.  
  8277.  
  8278.  
  8279. ;
  8280.  
  8281.  
  8282.  
  8283. /* normalize component */
  8284.  
  8285. var app_component = normalizeComponent(
  8286. src_appvue_type_script_lang_js_,
  8287. render,
  8288. staticRenderFns,
  8289. false,
  8290. null,
  8291. "5ef48958",
  8292. null
  8293. )
  8294.  
  8295. /* hot reload */
  8296. if (false) { var app_api; }
  8297. app_component.options.__file = "src/app.vue"
  8298. /* harmony default export */ const app = (app_component.exports);
  8299. // EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/styles/global.scss
  8300. var global = __webpack_require__(452);
  8301. ;// CONCATENATED MODULE: ./src/styles/global.scss
  8302.  
  8303.  
  8304. var global_options = {};
  8305.  
  8306. global_options.styleTagTransform = (styleTagTransform_default());
  8307. global_options.setAttributes = (setAttributesWithoutAttributes_default());
  8308.  
  8309. global_options.insert = insertBySelector_default().bind(null, "head");
  8310. global_options.domAPI = (styleDomAPI_default());
  8311. global_options.insertStyleElement = (insertStyleElement_default());
  8312.  
  8313. var global_update = injectStylesIntoStyleTag_default()(global/* default */.Z, global_options);
  8314.  
  8315.  
  8316.  
  8317.  
  8318. /* harmony default export */ const styles_global = (global/* default */.Z && global/* default.locals */.Z.locals ? global/* default.locals */.Z.locals : undefined);
  8319.  
  8320. // 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
  8321. var cjs_clonedRuleSet_3_0_rules_0_use_2_src_styles_global = __webpack_require__(205);
  8322. ;// CONCATENATED MODULE: ./src/styles/global.less
  8323.  
  8324.  
  8325. var styles_global_options = {};
  8326.  
  8327. styles_global_options.styleTagTransform = (styleTagTransform_default());
  8328. styles_global_options.setAttributes = (setAttributesWithoutAttributes_default());
  8329.  
  8330. styles_global_options.insert = insertBySelector_default().bind(null, "head");
  8331. styles_global_options.domAPI = (styleDomAPI_default());
  8332. styles_global_options.insertStyleElement = (insertStyleElement_default());
  8333.  
  8334. var styles_global_update = injectStylesIntoStyleTag_default()(cjs_clonedRuleSet_3_0_rules_0_use_2_src_styles_global/* default */.Z, styles_global_options);
  8335.  
  8336.  
  8337.  
  8338.  
  8339. /* harmony default export */ const src_styles_global = (cjs_clonedRuleSet_3_0_rules_0_use_2_src_styles_global/* default */.Z && cjs_clonedRuleSet_3_0_rules_0_use_2_src_styles_global/* default.locals */.Z.locals ? cjs_clonedRuleSet_3_0_rules_0_use_2_src_styles_global/* default.locals */.Z.locals : undefined);
  8340.  
  8341. // EXTERNAL MODULE: ./src/config/index.js
  8342. var config = __webpack_require__(758);
  8343. ;// CONCATENATED MODULE: ./src/main.js
  8344. /* eslint-disable no-undef */
  8345.  
  8346.  
  8347.  
  8348.  
  8349.  
  8350.  
  8351.  
  8352.  
  8353.  
  8354.  
  8355. var id = null
  8356. var appLoadDefault = null
  8357. var tryLoadTimes = 0
  8358. loadMenu(tryLoadTimes)
  8359.  
  8360. function loadMenu() {
  8361. tryLoadTimes += 1
  8362. try {
  8363. appLoadDefault = (0,setup/* getStorage */.cF)('appLoadDefault')
  8364. GM_registerMenuCommand(`加载UI (Alt + ${appLoadDefault.loadHotKey})`, loadUI)
  8365. GM_registerMenuCommand(`重置所有数据`, setup/* setinit */.zU)
  8366. document.addEventListener('keydown', (e) => {
  8367. if (e.altKey && e.key.toUpperCase() === appLoadDefault.loadHotKey.toUpperCase()) {
  8368. loadUI(0)
  8369. }
  8370. })
  8371. if (appLoadDefault.isShowUI) {
  8372. loadUI(0)
  8373. }
  8374. } catch (error) {
  8375. console.log('loadError: ', error)
  8376. loadUI(tryLoadTimes)
  8377. }
  8378. }
  8379.  
  8380. async function loadUI(times) {
  8381. if (id !== null) {
  8382. return
  8383. }
  8384.  
  8385. if (!config/* isDev */.r8) {
  8386. (0,setup/* appLoadinit */.Iq)()
  8387. // 首次运行脚本无存储数据,无加载菜单, 重新载入
  8388. if (times === 1) {
  8389. loadMenu()
  8390. return
  8391. }
  8392. }
  8393.  
  8394. var Vant = await Promise.resolve(/* import() */).then(__webpack_require__.t.bind(__webpack_require__, 871, 23))
  8395. // import ('vant/lib/index.css')
  8396. external_Vue_default().use(Vant)
  8397.  
  8398. id = `app_vue_${Date.now()}`
  8399. const root = document.createElement('div')
  8400. root.id = id
  8401. document.body.appendChild(root)
  8402. ;(external_Vue_default()).prototype.$bus = new (external_Vue_default())()
  8403. ;(external_Vue_default()).prototype.$getType = utils/* getType */.oL
  8404.  
  8405. if (config/* isDev */.r8) {
  8406. (0,utils/* loadStyle2 */.HM)('https://unpkg.com/vant@2.12/lib/index.css').then((res) => {
  8407. new (external_Vue_default())({
  8408. el: `#${id}`,
  8409. render: h => h(app)
  8410. })
  8411. })
  8412. } else {
  8413. // eslint-disable-next-line no-undef
  8414. GM_addStyle(GM_getResourceText('vantcss'))
  8415. new (external_Vue_default())({
  8416. el: `#${id}`,
  8417. render: h => h(app)
  8418. })
  8419. }
  8420. }
  8421.  
  8422. })();
  8423.  
  8424. /******/ })()
  8425. ;