10漫画下载

漫画分章节下载(可直接下载/压缩下载),并记录下载历史,适用于 酷漫屋、百漫谷、武侠漫画、动漫之家、七夕漫画、36漫画网、古风漫画网、腾讯漫画、漫画星球、好漫8、漫画屋、27漫画网。对个别漫画网站修改阅读样式。

目前为 2022-08-10 提交的版本。查看 最新版本

// ==UserScript==
// @name         10漫画下载
// @namespace    http://tampermonkey2.net/
// @version      1.1.5
// @description  漫画分章节下载(可直接下载/压缩下载),并记录下载历史,适用于 酷漫屋、百漫谷、武侠漫画、动漫之家、七夕漫画、36漫画网、古风漫画网、腾讯漫画、漫画星球、好漫8、漫画屋、27漫画网。对个别漫画网站修改阅读样式。
// @author       journey3510
// @run-at       document-end
// @grant        GM_getValue
// @grant        GM_setValue
// @grant        GM_setClipboard
// @grant        GM_info
// @grant        GM_xmlhttpRequest
// @grant        GM_addStyle
// @grant        GM_getResourceText
// @grant        GM_download
// @grant        GM.getValue
// @grant        GM.setValue
// @grant        GM.setClipboard
// @grant        GM.info
// @grant        GM.xmlHttpRequest
// @grant        GM.download
// @resource   vantcss   https://unpkg.com/[email protected]/lib/index.css
// @require      https://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.min.js
// @require      https://cdn.bootcdn.net/ajax/libs/jszip/3.7.1/jszip.min.js
// @require      https://unpkg.com/[email protected]/lib/vant.min.js
//
// @match        *://www.kumw5.com/*
// @connect      kumw5.com
//
// @match        *://darpou.com/*
// @connect      manga8.xyz
//
// @match        *://m.wuxiamh.com/*
// @match        *://www.wuxiamh.com/*
// @connect      169gouwu.com
//
// @match        *://*.dmzj.com/*
// @connect      dmzj.com
//
// @match        *://qiximh1.com/*
// @connect      byteimg.com
//
// @match        *://www.36manga.com/*
// @connect      arc-theday.com
//
// @match        *://www.gufengmanhua.com/*
// @connect      gufengmanhua.com
// @match        *://www.123gf.com/*
// @connect      123gf.com
// @connect      xiaoqinre.com
// @connect      bdstatic.com
//
// @match        *://ac.qq.com/*
// @connect      acimg.cn
//
// @match        *://www.mhxqiu1.com/*
// @connect      byteimg.com
//
// @match        *://www.haoman8.com/*
// @connect      haoman8.com
//
// @match        *://www.mh5.org/*
// @connect      xiaomingtaiji.net
//
// @match        *://www.2mzx.com/*
// @connect      2mzx.com
// @connect      hnsrht.com
// @connect      huayingrenren.cn
//
// @match        *://www.zuimh.com/*
// @connect      pinmh.com
// @connect      ejujiu.com
// @connect      dodomh.com
//
// @match        *://www.qianwee.com/*
// @connect      qianwee.com
// @connect      szssjg.com
//
// @match        *://www.sixmh7.com/*
// @connect      byteimg.com
// @connect      *
// @connect      laimidao.com
// @connect      izhegu.com
// @connect      nicefee.com
// @license      MIT
// ==/UserScript==

/******/ (() => { // webpackBootstrap
/******/ 	"use strict";
/******/ 	var __webpack_modules__ = ({

/***/ 400:
/***/ ((module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(645);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
// Imports

var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.id, "body {\n  font-size: 14px;\n}\n", ""]);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);


/***/ }),

/***/ 452:
/***/ ((module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(645);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
// Imports

var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".van-cell__title{text-align:left}.van-popover--light{font-size:12px !important;color:#8d8de7 !important}.van-popover--light .van-popover__arrow{color:#d9d9d9 !important}.van-popover__content{border:1px solid !important;padding:2px 9px !important}*{padding:0;margin:0}body{font-size:14px}.app-container{background-color:#f8f8f8;padding:10px}::-webkit-scrollbar{width:7px;height:5px;border-radius:15px;-webkit-border-radius:15px}::-webkit-scrollbar-track-piece{border-radius:15px;-webkit-border-radius:15px}::-webkit-scrollbar-thumb:vertical{height:5px;background-color:rgba(102,204,255,0.533333);border-radius:15px;-webkit-border-radius:15px}::-webkit-scrollbar-thumb:horizontal{width:7px;background-color:rgba(144,147,153,0.5);border-radius:15px;-webkit-border-radius:15px}\n", ""]);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);


/***/ }),

/***/ 857:
/***/ ((module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(645);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
// Imports

var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.id, "*[data-v-5ef48958]{margin:0;padding:0}.custom-indicator[data-v-5ef48958]{position:absolute;height:700px;right:5px;bottom:5px;padding:2px 5px;font-size:12px;background:rgba(0,0,0,0.1)}#thebtn[data-v-5ef48958]{position:fixed;top:150px;right:600px;z-index:90000 !important}\n", ""]);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);


/***/ }),

/***/ 871:
/***/ ((module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(645);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
// Imports

var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".card[data-v-5ef48958]{position:fixed;z-index:9999;right:0;top:50%;height:800px;width:420px;background-color:#f8f8f8;transform:translateY(-50%);border:solid 1px #66ccffee;border-radius:25px;transition:all 0.5s;box-shadow:2px 3px 3px 2px #66ccff55}.card__btn[data-v-5ef48958]{transition:all 0.5s;border-radius:30px 0 0 30px;width:30px;height:60px;background-color:#66ccff96;cursor:pointer;position:absolute;right:420px;top:50%;text-align:center}.card__btn svg[data-v-5ef48958]{height:20px;width:20px;position:absolute;right:5px;top:20px;transition:all 0.5s;transform:rotate(180deg)}.card--hide[data-v-5ef48958]{right:-415px}.card--hide .card__btn[data-v-5ef48958]{border-radius:0 30px 30px 0;right:420px;transform:rotate(180deg)}#border-bottom-set[data-v-5ef48958]{border-bottom-left-radius:25px;border-bottom-right-radius:25px;overflow:hidden}#chapterpage[data-v-5ef48958]{position:relative;width:100%;height:100%}#border-top-set[data-v-5ef48958]{border-top-left-radius:25px;border-top-right-radius:25px;overflow:hidden}.swipeitem[data-v-5ef48958]{height:697px;padding-bottom:5px}.test[data-v-5ef48958]{position:absolute;position:relative;cursor:default;height:600px}\n", ""]);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);


/***/ }),

/***/ 578:
/***/ ((module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(645);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
// Imports

var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.id, "#downcontext[data-v-1e855a88]{margin:15px 15px;max-height:680px;border-radius:15px;overflow:auto}.comicnametag1[data-v-1e855a88]{margin-left:10px;height:15px;margin-top:4px;display:inline-block;max-width:200px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}#downlist[data-v-1e855a88]{margin:10px 5px;padding:5px 0px;border-radius:15px;width:100%;overflow-y:auto;overflow-x:hidden;max-height:500px}#downlist .downitem[data-v-1e855a88]{display:flex;flex-direction:column;width:98%}#downlist .downitem .itemname[data-v-1e855a88]{display:flex;justify-content:space-between;margin:2px 5px}#downlist .downitem .itemname .comicnametag[data-v-1e855a88]{display:inline-block;width:60px;max-width:60px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;cursor:pointer}#downlist .downitem .itemname .chapterspan[data-v-1e855a88]{display:inline-block;max-width:200px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}#downlist .downitem .itemname .hasError[data-v-1e855a88]{color:red}\n", ""]);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);


/***/ }),

/***/ 327:
/***/ ((module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(645);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
// Imports

var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".homeindex[data-v-7eb2bc79]{margin-top:20px;overflow-y:auto;max-height:675px}\n", ""]);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);


/***/ }),

/***/ 625:
/***/ ((module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(645);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
// Imports

var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".setindex[data-v-234d1526]{display:flex;flex-direction:column;margin:20px 15px 30px 15px;height:680px;max-height:680px;justify-content:space-between}.setindex #setpart[data-v-234d1526]{flex-direction:row;border-radius:15px;background-color:#ffffff;overflow:auto}.setindex #setpart .van-cell-group__title[data-v-234d1526]{color:#78a5ff;font-size:15px}.setindex #setpart .van-cell[data-v-234d1526]{padding:10px 1px}.setindex #setpart .van-cell .cellleftvalue[data-v-234d1526]{flex:1}.setindex #setpart .van-cell .cellrightvalue[data-v-234d1526]{flex:0.2 !important}.setindex #setpart .van-cell .rightbutton[data-v-234d1526]{flex-direction:row-reverse}.setindex #setpart .van-cell .custom-title[data-v-234d1526]{text-align:left}.setindex #setpart .van-cell .rightslider[data-v-234d1526]{margin:10px 15px;width:150px}.setindex #setpart .van-cell .rightslider .custom-button[data-v-234d1526]{width:26px;color:#fff;font-size:10px;line-height:18px;text-align:center;background-color:#ee0a24;border-radius:100px}.setindex #set-bottom[data-v-234d1526]{display:flex;justify-content:center;margin-bottom:20px}\n", ""]);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);


/***/ }),

/***/ 210:
/***/ ((module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(645);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
// Imports

var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.id, "#comiclist[data-v-657d4b24]{margin-top:15px;border-radius:15px;position:relative;height:650px}#overlayDom[data-v-657d4b24]{background-color:#eeeeeece}#select-list[data-v-657d4b24]{max-height:600px;overflow-y:auto}#editItem[data-v-657d4b24]{display:flex;justify-content:space-between;margin:0px 15px;padding:5px;display:flex;flex-wrap:wrap}#comicinfo[data-v-657d4b24]{width:280px;margin:20px auto}#comicinfo .van-cell__title[data-v-657d4b24]{max-width:80px !important}input[data-v-657d4b24]{margin-left:5px;margin-right:5px;width:50px}\n", ""]);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);


/***/ }),

/***/ 645:
/***/ ((module) => {



/*
  MIT License http://www.opensource.org/licenses/mit-license.php
  Author Tobias Koppers @sokra
*/
// css base code, injected by the css-loader
// eslint-disable-next-line func-names
module.exports = function (cssWithMappingToString) {
  var list = []; // return the list of modules as css string

  list.toString = function toString() {
    return this.map(function (item) {
      var content = cssWithMappingToString(item);

      if (item[2]) {
        return "@media ".concat(item[2], " {").concat(content, "}");
      }

      return content;
    }).join("");
  }; // import a list of modules into the list
  // eslint-disable-next-line func-names


  list.i = function (modules, mediaQuery, dedupe) {
    if (typeof modules === "string") {
      // eslint-disable-next-line no-param-reassign
      modules = [[null, modules, ""]];
    }

    var alreadyImportedModules = {};

    if (dedupe) {
      for (var i = 0; i < this.length; i++) {
        // eslint-disable-next-line prefer-destructuring
        var id = this[i][0];

        if (id != null) {
          alreadyImportedModules[id] = true;
        }
      }
    }

    for (var _i = 0; _i < modules.length; _i++) {
      var item = [].concat(modules[_i]);

      if (dedupe && alreadyImportedModules[item[0]]) {
        // eslint-disable-next-line no-continue
        continue;
      }

      if (mediaQuery) {
        if (!item[2]) {
          item[2] = mediaQuery;
        } else {
          item[2] = "".concat(mediaQuery, " and ").concat(item[2]);
        }
      }

      list.push(item);
    }
  };

  return list;
};

/***/ }),

/***/ 379:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {



var isOldIE = function isOldIE() {
  var memo;
  return function memorize() {
    if (typeof memo === 'undefined') {
      // Test for IE <= 9 as proposed by Browserhacks
      // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
      // Tests for existence of standard globals is to allow style-loader
      // to operate correctly into non-standard environments
      // @see https://github.com/webpack-contrib/style-loader/issues/177
      memo = Boolean(window && document && document.all && !window.atob);
    }

    return memo;
  };
}();

var getTarget = function getTarget() {
  var memo = {};
  return function memorize(target) {
    if (typeof memo[target] === 'undefined') {
      var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself

      if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
        try {
          // This will throw an exception if access to iframe is blocked
          // due to cross-origin restrictions
          styleTarget = styleTarget.contentDocument.head;
        } catch (e) {
          // istanbul ignore next
          styleTarget = null;
        }
      }

      memo[target] = styleTarget;
    }

    return memo[target];
  };
}();

var stylesInDom = [];

function getIndexByIdentifier(identifier) {
  var result = -1;

  for (var i = 0; i < stylesInDom.length; i++) {
    if (stylesInDom[i].identifier === identifier) {
      result = i;
      break;
    }
  }

  return result;
}

function modulesToDom(list, options) {
  var idCountMap = {};
  var identifiers = [];

  for (var i = 0; i < list.length; i++) {
    var item = list[i];
    var id = options.base ? item[0] + options.base : item[0];
    var count = idCountMap[id] || 0;
    var identifier = "".concat(id, " ").concat(count);
    idCountMap[id] = count + 1;
    var index = getIndexByIdentifier(identifier);
    var obj = {
      css: item[1],
      media: item[2],
      sourceMap: item[3]
    };

    if (index !== -1) {
      stylesInDom[index].references++;
      stylesInDom[index].updater(obj);
    } else {
      stylesInDom.push({
        identifier: identifier,
        updater: addStyle(obj, options),
        references: 1
      });
    }

    identifiers.push(identifier);
  }

  return identifiers;
}

function insertStyleElement(options) {
  var style = document.createElement('style');
  var attributes = options.attributes || {};

  if (typeof attributes.nonce === 'undefined') {
    var nonce =  true ? __webpack_require__.nc : 0;

    if (nonce) {
      attributes.nonce = nonce;
    }
  }

  Object.keys(attributes).forEach(function (key) {
    style.setAttribute(key, attributes[key]);
  });

  if (typeof options.insert === 'function') {
    options.insert(style);
  } else {
    var target = getTarget(options.insert || 'head');

    if (!target) {
      throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
    }

    target.appendChild(style);
  }

  return style;
}

function removeStyleElement(style) {
  // istanbul ignore if
  if (style.parentNode === null) {
    return false;
  }

  style.parentNode.removeChild(style);
}
/* istanbul ignore next  */


var replaceText = function replaceText() {
  var textStore = [];
  return function replace(index, replacement) {
    textStore[index] = replacement;
    return textStore.filter(Boolean).join('\n');
  };
}();

function applyToSingletonTag(style, index, remove, obj) {
  var css = remove ? '' : obj.media ? "@media ".concat(obj.media, " {").concat(obj.css, "}") : obj.css; // For old IE

  /* istanbul ignore if  */

  if (style.styleSheet) {
    style.styleSheet.cssText = replaceText(index, css);
  } else {
    var cssNode = document.createTextNode(css);
    var childNodes = style.childNodes;

    if (childNodes[index]) {
      style.removeChild(childNodes[index]);
    }

    if (childNodes.length) {
      style.insertBefore(cssNode, childNodes[index]);
    } else {
      style.appendChild(cssNode);
    }
  }
}

function applyToTag(style, options, obj) {
  var css = obj.css;
  var media = obj.media;
  var sourceMap = obj.sourceMap;

  if (media) {
    style.setAttribute('media', media);
  } else {
    style.removeAttribute('media');
  }

  if (sourceMap && typeof btoa !== 'undefined') {
    css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");
  } // For old IE

  /* istanbul ignore if  */


  if (style.styleSheet) {
    style.styleSheet.cssText = css;
  } else {
    while (style.firstChild) {
      style.removeChild(style.firstChild);
    }

    style.appendChild(document.createTextNode(css));
  }
}

var singleton = null;
var singletonCounter = 0;

function addStyle(obj, options) {
  var style;
  var update;
  var remove;

  if (options.singleton) {
    var styleIndex = singletonCounter++;
    style = singleton || (singleton = insertStyleElement(options));
    update = applyToSingletonTag.bind(null, style, styleIndex, false);
    remove = applyToSingletonTag.bind(null, style, styleIndex, true);
  } else {
    style = insertStyleElement(options);
    update = applyToTag.bind(null, style, options);

    remove = function remove() {
      removeStyleElement(style);
    };
  }

  update(obj);
  return function updateStyle(newObj) {
    if (newObj) {
      if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {
        return;
      }

      update(obj = newObj);
    } else {
      remove();
    }
  };
}

module.exports = function (list, options) {
  options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
  // tags it will allow on a page

  if (!options.singleton && typeof options.singleton !== 'boolean') {
    options.singleton = isOldIE();
  }

  list = list || [];
  var lastIdentifiers = modulesToDom(list, options);
  return function update(newList) {
    newList = newList || [];

    if (Object.prototype.toString.call(newList) !== '[object Array]') {
      return;
    }

    for (var i = 0; i < lastIdentifiers.length; i++) {
      var identifier = lastIdentifiers[i];
      var index = getIndexByIdentifier(identifier);
      stylesInDom[index].references--;
    }

    var newLastIdentifiers = modulesToDom(newList, options);

    for (var _i = 0; _i < lastIdentifiers.length; _i++) {
      var _identifier = lastIdentifiers[_i];

      var _index = getIndexByIdentifier(_identifier);

      if (stylesInDom[_index].references === 0) {
        stylesInDom[_index].updater();

        stylesInDom.splice(_index, 1);
      }
    }

    lastIdentifiers = newLastIdentifiers;
  };
};

/***/ }),

/***/ 872:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "HL": () => (/* binding */ matchWeb),
/* harmony export */   "Po": () => (/* binding */ currentComics),
/* harmony export */   "eT": () => (/* binding */ getWebList)
/* harmony export */ });
/* harmony import */ var _utils_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(624);
/* eslint-disable no-undef */
/* eslint-disable no-empty */
/* eslint-disable no-eval */



const comicsWebInfo = [
  {
    domain: 'manhua.dmzj.com',
    homepage: 'https://manhua.dmzj.com/',
    webName: '动漫之家',
    comicNameCss: '.odd_anim_title_m .anim_title_text h1',
    chapterCss: '.cartoon_online_border',
    readtype: 1,
    getImgs: async function(context) {
      const group = context.matchAll(/(function[\s\S]+?return \S})(\([\s\S]+?{}\))/g)
      const func = []
      for (const item of group) {
        func.push(item[1])
        func.push(item[2])
      }
      const code = '(' + func[0] + ')' + func[1]
      let imgStr = eval(code)
      imgStr = imgStr.match(/\[[\s\S]+?\]/)[0]
      let imgArray = JSON.parse(imgStr)
      if (imgArray[0].search('http') === -1) {
        imgArray = imgArray.map((item) => {
          return 'https://images.dmzj.com/' + item
        })
      }
      return imgArray
    }
  }, {
    domain: 'www.dmzj.com',
    homepage: 'https://www.dmzj.com/',
    webName: '动漫之家2',
    comicNameCss: '.comic_deCon h1 a',
    chapterCss: '.tab-content-selected .list_con_li.autoHeight',
    readtype: 1,
    getImgs: async function(context) {
      const group = context.matchAll(/(function[\s\S]+?return \S})(\([\s\S]+?{}\))/g)
      const func = []
      for (const item of group) {
        func.push(item[1])
        func.push(item[2])
      }
      const code = '(' + func[0] + ')' + func[1]
      let imgStr = eval(code)
      imgStr = imgStr.match(/page_url":"(.*?)","sum_pages/)[1]
      let imgArray = imgStr.split('\\r\\n')
      if (imgArray[0].search('http') === -1) {
        imgArray = imgArray.map((item) => {
          return 'https://images.dmzj.com/' + item.replace(/\\/g, '')
        })
      }
      return imgArray
    }
  },
  {
    domain: 'www.kumw5.com',
    homepage: 'http://www.kumw5.com/',
    webName: '酷漫屋',
    comicNameCss: '.info h1',
    chapterCss: '#detail-list-select-1',
    readtype: 1,
    iswork: true,
    getImgs: function(context) {
      const reg = /var km[^>]*_img_url='[^>]*'/gi
      const s1 = context.match(reg)
      const base64Context = s1[0].match(/'(\S*)'/)[1]
      let imgstr = window.atob(base64Context)
      imgstr = eval(imgstr).toString()
      const imgArray = imgstr.matchAll(/(http[\s\S]+?),/g)
      const imgUrl = []
      for (const item of imgArray) {
        imgUrl.push(item[1])
      }
      return imgUrl
    }
  },
  {
    domain: 'darpou.com',
    homepage: 'https://darpou.com/',
    webName: '百漫谷',
    comicNameCss: '.fed-part-eone.fed-font-xvi a',
    chapterCss: '.fed-play-item.fed-drop-item.fed-visible .fed-part-rows:nth-child(2)',
    readtype: 1,
    getImgs: async function(context) {
      const txtUrl = context.match(/http(\S*).txt/gi)[0]
      const txtRes = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('get', txtUrl)
      const txtContext = txtRes.responseText
      const imgReg = /http(\S*)jpg/g
      return txtContext.match(imgReg)
    }
  },
  {
    domain: 'm.wuxiamh.com',
    homepage: 'https://m.wuxiamh.com/',
    webName: '武侠漫画(手机)',
    comicNameCss: '.view-sub.autoHeight .title',
    chapterCss: '#chapter-list-1',
    readtype: 0,
    iswork: false,
    nextpageRgeCss: '.action-list li:nth-child(3) a',
    getImgs: async function(context) {
      const imgobj = context.matchAll(/><mip-img src="(https:\/\/[\s\S]+?(jpg|webp))/g)
      const imgUrl = []
      for (const item of imgobj) {
        imgUrl.push(item[1])
      }

      const number = context.match(/<span id="k_total" class="curPage">(\d+)<\/span>/)[1]
      const context1 = context.match(/class="action-list">[\s\S]+?<mip-link href="(https:\/\/[\s\S]+?html)">下一页/g)[0]
      let nextPageUrl = context1.match(/http(\S*)html/g)[2]
      nextPageUrl = nextPageUrl.indexOf('-') !== -1 ? nextPageUrl : ''
      return { imgUrl, nextPageUrl, number }
    }
  },
  {
    domain: 'www.wuxiamh.com',
    homepage: 'https://www.wuxiamh.com/',
    webName: '武侠漫画网(电脑)',
    comicNameCss: '.title h1',
    chapterCss: '#chapter-list-1',
    readtype: 1,
    iswork: false,
    getImgs: async function(context) {
      const imgStr = context.match(/var chapterImages = ([[\s\S]+?])[\s\S]+?var chapterPath/)[1]
      const imgs = eval(imgStr)
      return imgs
    }

  },
  {
    domain: 'qiximh1.com',
    homepage: 'http://qiximh1.com',
    webName: '七夕漫画',
    comicNameCss: '.comic_name .name',
    chapterCss: '.catalog_list.row_catalog_list',
    readtype: 1,
    getImgs: function(context) {
      const group = context.matchAll(/(function[\s\S]+?return \S})(\([\s\S]+?{}\))/g)
      const func = []
      for (const item of group) {
        func.push(item[1])
        func.push(item[2])
      }
      const code = '(' + func[0] + ')' + func[1]
      let imgStr = eval(code)
      imgStr = imgStr.match(/\[[\s\S]+?\]/)[0]
      const imgArray = JSON.parse(imgStr)
      return imgArray
    }
  },
  {
    domain: 'www.36manga.com',
    homepage: 'https://www.36manga.com/',
    webName: '36漫画网',
    comicNameCss: '.book-title h1 span',
    chapterCss: '#chapter-list-4 li:not(:first-of-type)',
    readtype: 1,
    iswork: false,
    getImgs: function(context) {
      const group = context.matchAll(/chapterImages = ([\s\S]+?);var chapterPath = "([\s\S]+?)";var chapterPrice/g)
      let imgarr = []
      let middleStr = ''
      for (const item of group) {
        imgarr = JSON.parse(item[1])
        middleStr = item[2]
      }
      if (imgarr[0].search('http') === -1) {
        imgarr = imgarr.map((item) => {
          return 'https://img001.arc-theday.com/' + middleStr + item
        })
      }
      return imgarr
    }
  },
  {
    domain: 'www.gufengmanhua.com',
    homepage: 'https://www.gufengmanhua.com/',
    webName: '古风漫画网',
    comicNameCss: '.book-title h1 span',
    chapterCss: '#chapter-list-1,#chapter-list-10',
    readtype: 1,
    getImgs: function(context) {
      const imgStr = context.match(/chapterImages = ([\s\S]+?);var chapterPath/)[1]
      let imgarr = JSON.parse(imgStr)
      if (imgarr[0].search('http') === -1) {
        imgarr = imgarr.map((item) => {
          return 'https://res5.gufengmanhua.com' + item
        })
      }
      return imgarr
    }
  },
  {
    domain: 'www.123gf.com',
    homepage: 'https://www.123gf.com/',
    webName: '古风漫画网 2',
    comicNameCss: '.book-title h1 span',
    chapterCss: '#chapter-list-1,#chapter-list-10',
    readtype: 1,
    readCssText: '.img_info {display: none;}.tbCenter img {border: 0px;}',
    getImgs: async function(context) {
      const group = context.matchAll(/chapterImages = (.*?);var chapterPath = "(.*?)"/g)
      const strArr = []
      for (const item of group) {
        strArr.push(item[1])
        strArr.push(item[2])
      }
      const josnRes = await (0,_utils_index__WEBPACK_IMPORTED_MODULE_0__/* .request */ .WY)('get', this.homepage + 'js/config.js')
      const josnContext = josnRes.responseText
      const imageDomian = josnContext.match(/"domain":\["(.*?)"]/)[1]
      let imgarr = JSON.parse(strArr[0])
      if (imgarr[0].search('http') === -1) {
        imgarr = imgarr.map((item) => {
          return imageDomian + '/' + strArr[1] + item
        })
      }
      return imgarr
    }
  },
  {
    domain: 'ac.qq.com',
    homepage: 'https://ac.qq.com/',
    webName: '腾讯漫画',
    comicNameCss: '.works-intro-title.ui-left strong',
    chapterCss: '.chapter-page-all.works-chapter-list',
    readtype: 1,
    hasSpend: true,
    freeCss: '.ui-icon-free',
    payCss: '.ui-icon-pay',
    getImgs: function(context) {
      let nonce = context.match(/<script>\s*window.*?=(.*?)?;/)[1]
      nonce = eval(nonce)
      const dataStr = context.match(/DATA.*?'(.*)?'/)[1]
      const data = dataStr.split('')
      nonce = nonce.match(/\d+[a-zA-Z]+/g)
      let len = nonce.length
      let locate = null
      let str = ''
      while (len--) {
        locate = parseInt(nonce[len]) & 255
        str = nonce[len].replace(/\d+/g, '')
        data.splice(locate, str.length)
      }
      const chapterStr = data.join('')
      const chapterObj = JSON.parse(window.atob(chapterStr))
      const imgarr = []
      chapterObj.picture.forEach(element => {
        imgarr.push(element.url)
      })
      return imgarr
    }
  },
  {
    domain: 'www.mhxqiu1.com',
    homepage: 'http://www.mhxqiu1.com/',
    webName: '漫画星球',
    comicNameCss: '.cy_title h1',
    chapterCss: '.cy_plist #mh-chapter-list-ol-0',
    readtype: 1,
    getImgs: function(context) {
      const group = context.matchAll(/(function.*?return \S})(\(.*?{}\))/g)
      const func = []
      for (const item of group) {
        func.push(item[1])
        func.push(item[2])
      }
      const code = '(' + func[0] + ')' + func[1]
      let imgStr = eval(code)
      imgStr = imgStr.match(/\[[\s\S]+?\]/)[0]
      const imgArray = JSON.parse(imgStr)
      return imgArray
    }
  },
  {
    domain: 'www.haoman8.com',
    homepage: 'https://www.haoman8.com/',
    webName: '好漫8',
    comicNameCss: '.content .title',
    chapterCss: '#j_chapter_list',
    readtype: 1,
    getImgs: function(context) {
      const group = context.matchAll(/data-echo="(.*?)"/g)
      const imgArray = []
      for (const item of group) {
        imgArray.push(item[1])
      }
      return imgArray
    }
  },
  {
    domain: 'www.mh5.org',
    homepage: 'https://www.mh5.org/',
    webName: '漫画屋',
    comicNameCss: '.comic-title.j-comic-title',
    chapterCss: '.chapter__list-box.clearfix',
    readtype: 1,
    getImgs: function(context) {
      const group = context.matchAll(/data-original="(.*?)"/g)
      const imgArray = []
      for (const item of group) {
        imgArray.push(item[1])
      }
      return imgArray
    }
  },
  {
    domain: 'www.2mzx.com',
    homepage: 'https://www.2mzx.com/',
    webName: '27漫画网',
    comicNameCss: '.bar .position strong',
    chapterCss: '#play_0 #chapter-list-1',
    readtype: 1,
    iswork: false,
    getImgs: async function(context) {
      const imgStr = context.match(/var chapterImages = ([[\s\S]+?])[\s\S]+?var chapterPath/)[1]
      const imgs = eval(imgStr)
      return imgs
    }
  },
  {
    domain: 'www.zuimh.com',
    homepage: 'https://www.zuimh.com/',
    webName: '最漫画',
    comicNameCss: '.book-detail .book-title h1 span',
    chapterCss: '.chapter-body.clearfix #chapter-list-1',
    readtype: 1,
    readCssText: '.img_info {display: none;}.tbCenter img {border: 0px;}',
    getImgs: async function(context) {
      const imgStr = context.match(/var chapterImages = ([[\s\S]+?])[\s\S]+?var chapterPath/)[1]
      const imgs = eval(imgStr)
      return imgs
    }
  },
  {
    domain: 'www.qianwee.com',
    homepage: 'https://www.qianwee.com/',
    webName: '前未漫画',
    comicNameCss: '.comic_deCon.autoHeight h1',
    chapterCss: '.zj_list_con #chapter-list-1',
    readtype: 1,
    readCssText: '.img_info {display: none;}.comic_wraCon img {border: 0px;margin-top:0px;}',
    getImgs: async function(context) {
      const imgStr = context.match(/var chapterImages = ([[\s\S]+?])[\s\S]+?var chapterPath/)[1]
      const imgs = eval(imgStr)
      return imgs
    }
  },
  {
    domain: 'www.sixmh7.com',
    homepage: 'http://www.sixmh7.com/',
    webName: '六漫画',
    comicNameCss: '#intro_l > div.cy_title > h1',
    chapterCss: '.cy_zhangjie .cy_plist',
    readtype: 1,
    getImgs: async function(context) {
      const group = context.matchAll(/(function[\s\S]+?return \S})(\([\s\S]+?{}\))/g)
      const func = []
      for (const item of group) {
        func.push(item[1])
        func.push(item[2])
      }
      const code = '(' + func[0] + ')' + func[1]
      let imgStr = eval(code)
      imgStr = imgStr.match(/\[[\s\S]+?\]/)[0]
      const imgArray = JSON.parse(imgStr)
      return imgArray
    }
  }
]

const getWebList = () => {
  const list = []
  comicsWebInfo.forEach(element => {
    list.push({
      name: element.webName,
      url: element.homepage,
      iswork: element.iswork
    })
  })
  return list
}

let currentComics = null

const matchWeb = (url) => {
  let hname = ''
  var domain = url.split('/')
  if (domain[2]) {
    hname = domain[2]
  } else {
    hname = ''
  }
  for (let i = 0; i < comicsWebInfo.length; i++) {
    if (comicsWebInfo[i].domain === hname) {
      currentComics = comicsWebInfo[i]
      break
    }
  }
}



/***/ }),

/***/ 624:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "E_": () => (/* binding */ getHtml),
/* harmony export */   "WY": () => (/* binding */ request),
/* harmony export */   "Xr": () => (/* binding */ loadStyle),
/* harmony export */   "zd": () => (/* binding */ downFile)
/* harmony export */ });
/* harmony import */ var _utils_comics__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(872);


const loadStyle = (url, name, text) => {
  const head = document.getElementsByTagName('head')[0]
  if (url !== '') {
    const link = document.createElement('link')
    link.rel = 'stylesheet'
    link.type = 'text/css'
    link.href = url
    link.media = 'all'
    head.appendChild(link)
  } else {
    const style = document.createElement('style')
    style.name = name
    style.id = name
    style.innerText = text
    head.appendChild(style)
  }
}

const getHtml = async(url) => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
    // eslint-disable-next-line no-undef
      GM_xmlhttpRequest({
        method: 'get',
        url: url,
        onload: function(res) {
          const imgs = _utils_comics__WEBPACK_IMPORTED_MODULE_0__/* .currentComics.getImgs */ .Po.getImgs(res.response)
          resolve(imgs)
        },
        onerror: function(e) {
          reject(e)
        }
      })
    }, 200)
  })
}

const request = async(method, url, responseType) => {
  return new Promise((resolve, reject) => {
    // eslint-disable-next-line no-undef
    GM_xmlhttpRequest({
      method,
      url,
      responseType,
      onload: function(res) {
        resolve(res)
      },
      onerror: function(e) {
        reject(e)
      },
      ontimeout: function() {
        console.log('超时')
      }
    })
  })
}

const downFile = async(url, name) => {
  return new Promise((resolve, reject) => {
    // eslint-disable-next-line no-undef
    GM_download({
      url,
      name,
      onload: result => {
        resolve(true)
      },
      onerror: result => {
        resolve(false)
      },
      ontimeout: result => {
        resolve(false)
      }
    })
  })
}



/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// The module cache
/******/ 	var __webpack_module_cache__ = {};
/******/ 	
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/ 		// Check if module is in cache
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
/******/ 		if (cachedModule !== undefined) {
/******/ 			return cachedModule.exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = __webpack_module_cache__[moduleId] = {
/******/ 			id: moduleId,
/******/ 			// no module.loaded needed
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/************************************************************************/
/******/ 	/* webpack/runtime/compat get default export */
/******/ 	(() => {
/******/ 		// getDefaultExport function for compatibility with non-harmony modules
/******/ 		__webpack_require__.n = (module) => {
/******/ 			var getter = module && module.__esModule ?
/******/ 				() => (module['default']) :
/******/ 				() => (module);
/******/ 			__webpack_require__.d(getter, { a: getter });
/******/ 			return getter;
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/define property getters */
/******/ 	(() => {
/******/ 		// define getter functions for harmony exports
/******/ 		__webpack_require__.d = (exports, definition) => {
/******/ 			for(var key in definition) {
/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ 				}
/******/ 			}
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
/******/ 	(() => {
/******/ 		__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/nonce */
/******/ 	(() => {
/******/ 		__webpack_require__.nc = undefined;
/******/ 	})();
/******/ 	
/************************************************************************/
var __webpack_exports__ = {};
// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
(() => {

;// CONCATENATED MODULE: external "Vue"
const external_Vue_namespaceObject = Vue;
var external_Vue_default = /*#__PURE__*/__webpack_require__.n(external_Vue_namespaceObject);
;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/app.vue?vue&type=template&id=5ef48958&scoped=true&
var render = function () {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", { staticClass: "app" }, [
    _c(
      "div",
      { staticClass: "card", class: { "card--hide": _vm.isHide } },
      [
        _c("van-nav-bar", {
          attrs: { id: "border-top-set", title: _vm.titles[this.active] },
        }),
        _vm._v(" "),
        _c(
          "van-swipe",
          {
            ref: "swipe",
            staticClass: "my-swipe",
            staticStyle: { cursor: "default" },
            attrs: {
              "indicator-color": "white",
              touchable: false,
              duration: 5,
              "initial-swipe": _vm.active,
              "show-indicators": false,
            },
          },
          [
            _c("van-swipe-item", { staticClass: "swipeitem" }, [_c("Home")], 1),
            _vm._v(" "),
            _c(
              "van-swipe-item",
              { staticClass: "swipeitem" },
              [_c("Table", { attrs: { id: "chapterpage" } })],
              1
            ),
            _vm._v(" "),
            _c("van-swipe-item", { staticClass: "swipeitem" }, [_c("Down")], 1),
            _vm._v(" "),
            _c(
              "van-swipe-item",
              { staticClass: "swipeitem" },
              [_c("Setting")],
              1
            ),
          ],
          1
        ),
        _vm._v(" "),
        _c(
          "div",
          { staticClass: "app-container " },
          [
            _c(
              "van-tabbar",
              {
                staticStyle: { position: "absolute" },
                attrs: {
                  id: "border-bottom-set",
                  "active-color": "#ee0000",
                  "inactive-color": "#000",
                },
                model: {
                  value: _vm.active,
                  callback: function ($$v) {
                    _vm.active = $$v
                  },
                  expression: "active",
                },
              },
              [
                _c("van-tabbar-item", { attrs: { icon: "home-o" } }),
                _vm._v(" "),
                _c("van-tabbar-item", { attrs: { icon: "todo-list-o" } }),
                _vm._v(" "),
                _c("van-tabbar-item", { attrs: { icon: "underway-o" } }),
                _vm._v(" "),
                _c("van-tabbar-item", { attrs: { icon: "setting-o" } }),
              ],
              1
            ),
          ],
          1
        ),
        _vm._v(" "),
        _c("div", { staticClass: "card__btn", on: { click: _vm.hide } }, [
          _c(
            "svg",
            {
              staticClass: "icon",
              attrs: {
                t: "1589962875590",
                viewBox: "0 0 1024 1024",
                version: "1.1",
                "p-id": "2601",
              },
            },
            [
              _c("path", {
                attrs: {
                  d: "M730.020653 1018.946715l91.277028-89.978692a16.760351 16.760351 0 0 0 5.114661-11.803064 15.343983 15.343983 0 0 0-5.114661-11.803064l-400.123871-393.435467L821.691117 118.254899a17.075099 17.075099 0 0 0 0-23.606129L730.020653 4.670079a17.232473 17.232473 0 0 0-23.999564 0L202.030255 500.08402a16.445603 16.445603 0 0 0-4.721226 11.803064 15.265296 15.265296 0 0 0 5.114661 11.803064l503.597399 495.413941a17.153786 17.153786 0 0 0 23.999564 0z m0 0",
                  fill: "#EE000055",
                  "p-id": "2602",
                },
              }),
            ]
          ),
        ]),
      ],
      1
    ),
  ])
}
var staticRenderFns = []
render._withStripped = true


;// CONCATENATED MODULE: ./src/app.vue?vue&type=template&id=5ef48958&scoped=true&

;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/home.vue?vue&type=template&id=7eb2bc79&scoped=true&
var homevue_type_template_id_7eb2bc79_scoped_true_render = function () {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    { staticClass: "homeindex" },
    [
      _c(
        "van-cell-group",
        { attrs: { inset: "" } },
        _vm._l(_vm.comicList, function (item, index) {
          return _c("van-cell", {
            key: index,
            attrs: { "is-link": "" },
            on: {
              click: function ($event) {
                return _vm.jump(item.url)
              },
            },
            scopedSlots: _vm._u(
              [
                {
                  key: "title",
                  fn: function () {
                    return [
                      _c("span", [_vm._v(_vm._s(item.name))]),
                      _vm._v(" "),
                      item.iswork === false
                        ? _c("van-icon", {
                            attrs: {
                              title: "?可访问 ?",
                              name: "info-o",
                              color: "red",
                            },
                          })
                        : _vm._e(),
                    ]
                  },
                  proxy: true,
                },
              ],
              null,
              true
            ),
          })
        }),
        1
      ),
    ],
    1
  )
}
var homevue_type_template_id_7eb2bc79_scoped_true_staticRenderFns = []
homevue_type_template_id_7eb2bc79_scoped_true_render._withStripped = true


;// CONCATENATED MODULE: ./src/views/home.vue?vue&type=template&id=7eb2bc79&scoped=true&

// EXTERNAL MODULE: ./src/utils/comics.js
var comics = __webpack_require__(872);
;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/home.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//




/* harmony default export */ const homevue_type_script_lang_js_ = ({
  name: 'Index',
  data() {
    return {
      comicList: []
    }
  },
  mounted() {
    this.comicList = (0,comics/* getWebList */.eT)()
  },
  methods: {
    jump(url) {
      window.open(url, '_blank')
      // window.location.href = url
    }
  }
});

;// CONCATENATED MODULE: ./src/views/home.vue?vue&type=script&lang=js&
 /* harmony default export */ const views_homevue_type_script_lang_js_ = (homevue_type_script_lang_js_); 
// EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js
var injectStylesIntoStyleTag = __webpack_require__(379);
var injectStylesIntoStyleTag_default = /*#__PURE__*/__webpack_require__.n(injectStylesIntoStyleTag);
// EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/home.vue?vue&type=style&index=0&id=7eb2bc79&lang=scss&scoped=true&
var homevue_type_style_index_0_id_7eb2bc79_lang_scss_scoped_true_ = __webpack_require__(327);
;// 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/views/home.vue?vue&type=style&index=0&id=7eb2bc79&lang=scss&scoped=true&

            

var options = {};

options.insert = "head";
options.singleton = false;

var update = injectStylesIntoStyleTag_default()(homevue_type_style_index_0_id_7eb2bc79_lang_scss_scoped_true_/* default */.Z, options);



/* harmony default export */ const views_homevue_type_style_index_0_id_7eb2bc79_lang_scss_scoped_true_ = (homevue_type_style_index_0_id_7eb2bc79_lang_scss_scoped_true_/* default.locals */.Z.locals || {});
;// CONCATENATED MODULE: ./src/views/home.vue?vue&type=style&index=0&id=7eb2bc79&lang=scss&scoped=true&

;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
/* globals __VUE_SSR_CONTEXT__ */

// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
// This module is a runtime utility for cleaner component module output and will
// be included in the final webpack user bundle.

function normalizeComponent (
  scriptExports,
  render,
  staticRenderFns,
  functionalTemplate,
  injectStyles,
  scopeId,
  moduleIdentifier, /* server only */
  shadowMode /* vue-cli only */
) {
  // Vue.extend constructor export interop
  var options = typeof scriptExports === 'function'
    ? scriptExports.options
    : scriptExports

  // render functions
  if (render) {
    options.render = render
    options.staticRenderFns = staticRenderFns
    options._compiled = true
  }

  // functional template
  if (functionalTemplate) {
    options.functional = true
  }

  // scopedId
  if (scopeId) {
    options._scopeId = 'data-v-' + scopeId
  }

  var hook
  if (moduleIdentifier) { // server build
    hook = function (context) {
      // 2.3 injection
      context =
        context || // cached call
        (this.$vnode && this.$vnode.ssrContext) || // stateful
        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
      // 2.2 with runInNewContext: true
      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
        context = __VUE_SSR_CONTEXT__
      }
      // inject component styles
      if (injectStyles) {
        injectStyles.call(this, context)
      }
      // register component module identifier for async chunk inferrence
      if (context && context._registeredComponents) {
        context._registeredComponents.add(moduleIdentifier)
      }
    }
    // used by ssr in case component is cached and beforeCreate
    // never gets called
    options._ssrRegister = hook
  } else if (injectStyles) {
    hook = shadowMode
      ? function () {
        injectStyles.call(
          this,
          (options.functional ? this.parent : this).$root.$options.shadowRoot
        )
      }
      : injectStyles
  }

  if (hook) {
    if (options.functional) {
      // for template-only hot-reload because in that case the render fn doesn't
      // go through the normalizer
      options._injectStyles = hook
      // register for functional component in vue file
      var originalRender = options.render
      options.render = function renderWithStyleInjection (h, context) {
        hook.call(context)
        return originalRender(h, context)
      }
    } else {
      // inject component registration as beforeCreate hook
      var existing = options.beforeCreate
      options.beforeCreate = existing
        ? [].concat(existing, hook)
        : [hook]
    }
  }

  return {
    exports: scriptExports,
    options: options
  }
}

;// CONCATENATED MODULE: ./src/views/home.vue



;


/* normalize component */

var component = normalizeComponent(
  views_homevue_type_script_lang_js_,
  homevue_type_template_id_7eb2bc79_scoped_true_render,
  homevue_type_template_id_7eb2bc79_scoped_true_staticRenderFns,
  false,
  null,
  "7eb2bc79",
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "src/views/home.vue"
/* harmony default export */ const home = (component.exports);
;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/table.vue?vue&type=template&id=657d4b24&scoped=true&
var tablevue_type_template_id_657d4b24_scoped_true_render = function () {
  var this$1 = this
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    { attrs: { id: "comiclist" } },
    [
      _c(
        "van-popup",
        {
          style: {
            position: "absolute",
            width: "100%",
            height: "30%",
            borderTop: "1px solid #fcadad",
          },
          attrs: {
            "get-container": "#chapterpage",
            round: "",
            position: "top",
          },
          model: {
            value: _vm.show,
            callback: function ($$v) {
              _vm.show = $$v
            },
            expression: "show",
          },
        },
        [
          _c(
            "van-cell-group",
            {
              style: { display: "flex", width: "250px", margin: "10px auto" },
              attrs: { title: "选项", inset: "" },
            },
            [
              _c("van-cell", {
                attrs: { title: "本次压缩下载" },
                scopedSlots: _vm._u([
                  {
                    key: "right-icon",
                    fn: function () {
                      return [
                        _c("van-checkbox", {
                          staticClass: "rightbutton",
                          attrs: { "label-position": "left" },
                          model: {
                            value: _vm.zipDownFlag,
                            callback: function ($$v) {
                              _vm.zipDownFlag = $$v
                            },
                            expression: "zipDownFlag",
                          },
                        }),
                      ]
                    },
                    proxy: true,
                  },
                ]),
              }),
            ],
            1
          ),
        ],
        1
      ),
      _vm._v(" "),
      _c(
        "div",
        { attrs: { id: "editItem" } },
        [
          _c(
            "div",
            [
              _c(
                "van-button",
                {
                  attrs: {
                    type: "primary",
                    size: "mini",
                    disabled: !_vm.showSelectList,
                  },
                  on: { click: _vm.selectAll },
                },
                [_vm._v("全选")]
              ),
              _vm._v(" "),
              _c(
                "van-button",
                {
                  attrs: {
                    type: "primary",
                    size: "mini",
                    disabled: !_vm.showSelectList,
                  },
                  on: { click: _vm.CancelSelect },
                },
                [_vm._v("取消")]
              ),
            ],
            1
          ),
          _vm._v(" "),
          _c(
            "div",
            [
              _vm._v("\n      选\n      "),
              _c("van-icon", {
                style: { cursor: "pointer" },
                attrs: { name: "more-o", color: "#ee0000", size: "25" },
                on: {
                  click: function () {
                    this$1.show = !this$1.show
                  },
                },
              }),
              _vm._v(" 项\n    "),
            ],
            1
          ),
          _vm._v(" "),
          _c(
            "van-button",
            {
              staticStyle: { width: "80px" },
              attrs: {
                size: "mini",
                round: "",
                type: "primary",
                disabled: !_vm.showSelectList,
              },
              on: { click: _vm.downSelectList },
            },
            [_vm._v("下载")]
          ),
        ],
        1
      ),
      _vm._v(" "),
      _c(
        "van-divider",
        {
          style: {
            color: "#1989fa",
            borderColor: "#1989fa",
            padding: "0 15px",
            height: "10px",
          },
        },
        [
          _c(
            "code",
            {
              staticStyle: { cursor: "pointer" },
              on: { click: _vm.reloadList },
            },
            [_vm._v("重载列表")]
          ),
        ]
      ),
      _vm._v(" "),
      !_vm.showSelectList
        ? _c(
            "div",
            [
              _c(
                "van-empty",
                { attrs: { description: "漫画章节" } },
                [
                  _c(
                    "van-button",
                    {
                      staticClass: "bottom-button",
                      staticStyle: { width: "120px" },
                      attrs: {
                        round: "",
                        type: "primary",
                        disabled: _vm.comicName === "------",
                      },
                      on: { click: _vm.getSelectList },
                    },
                    [_vm._v(" 加载 ")]
                  ),
                ],
                1
              ),
              _vm._v(" "),
              _c(
                "van-cell-group",
                { attrs: { id: "comicinfo", inset: "" } },
                [
                  _c("van-cell", {
                    attrs: { title: "网站", value: _vm.webname },
                  }),
                  _vm._v(" "),
                  _c("van-cell", {
                    attrs: { title: "漫画", value: _vm.comicName },
                  }),
                ],
                1
              ),
            ],
            1
          )
        : _vm._e(),
      _vm._v(" "),
      _c("van-overlay", { attrs: { id: "overlayDom", show: _vm.overlayShow } }),
      _vm._v(" "),
      _vm.showSelectList
        ? _c(
            "div",
            { attrs: { id: "select-list" } },
            [
              _c(
                "van-cell-group",
                {
                  staticStyle: { "border-radius": "25px" },
                  attrs: { inset: "" },
                },
                [
                  _c(
                    "van-checkbox-group",
                    {
                      ref: "checkboxGroup",
                      model: {
                        value: _vm.selectResult,
                        callback: function ($$v) {
                          _vm.selectResult = $$v
                        },
                        expression: "selectResult",
                      },
                    },
                    _vm._l(_vm.list, function (item, index) {
                      return _c("van-cell", {
                        key: index,
                        style:
                          item.url !== "javascript:void();"
                            ? ""
                            : { color: "red" },
                        attrs: { title: item.chapterName },
                        scopedSlots: _vm._u(
                          [
                            {
                              key: "right-icon",
                              fn: function () {
                                return [
                                  _c("van-checkbox", {
                                    staticClass: "selectChapter",
                                    attrs: {
                                      name: index,
                                      disabled:
                                        item.url !== "javascript:void();"
                                          ? false
                                          : true,
                                      "icon-size": "24px",
                                    },
                                    on: {
                                      click: function ($event) {
                                        return _vm.radioSelect(index)
                                      },
                                    },
                                  }),
                                ]
                              },
                              proxy: true,
                            },
                          ],
                          null,
                          true
                        ),
                      })
                    }),
                    1
                  ),
                ],
                1
              ),
            ],
            1
          )
        : _vm._e(),
    ],
    1
  )
}
var tablevue_type_template_id_657d4b24_scoped_true_staticRenderFns = []
tablevue_type_template_id_657d4b24_scoped_true_render._withStripped = true


;// CONCATENATED MODULE: ./src/views/table.vue?vue&type=template&id=657d4b24&scoped=true&

;// CONCATENATED MODULE: ./src/config/index.js
/* eslint-disable no-undef */
const AppName = "10漫画下载"
const AppVersion = "1.1.5"
const AppEnv = "production"
const isDev = AppEnv === 'development'



;// CONCATENATED MODULE: ./src/config/setup.js
/* eslint-disable no-undef */


const configDefault = {
  version: AppVersion,
  maxChapterNum: 3,
  maxPictureNum: 3,
  zipDownFlag: true,
  imgSplicingFlag: true,
  downHistory: '[]'
}

const appinit = () => {
  if (isDev) {
    return
  }
  // 如条件全为false, 则更新设置
  if (GM_getValue('version') !== undefined && GM_getValue('version') === AppVersion) {
    console.log('不需要更新数据')
    return
  }
  for (const key in configDefault) {
    // 不存在,添加
    if (GM_getValue(key) === undefined) {
      GM_setValue(key, configDefault[key])
    }
  }
  GM_setValue('version', AppVersion)
}

const setinit = async() => {
  if (isDev) {
    return
  }
  return new Promise((resolve, reject) => {
    for (const key in configDefault) {
      GM_setValue(key, configDefault[key])
    }
    resolve(true)
  })
}

const setStorage = async(key, value) => {
  return new Promise((resolve, reject) => {
    GM_setValue(key, value)
    resolve(true)
  })
}

const getStorage = async(key) => {
  return new Promise((resolve, reject) => {
    const value = GM_getValue(key)
    resolve(value)
  })
}

;// CONCATENATED MODULE: external "vant"
const external_vant_namespaceObject = vant;
var external_vant_default = /*#__PURE__*/__webpack_require__.n(external_vant_namespaceObject);
;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/table.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//







/* harmony default export */ const tablevue_type_script_lang_js_ = ({
  name: 'Table',
  data() {
    return {
      list: [],
      selectResult: [],
      downResult: [],

      showSelectList: false,
      overlayShow: false,
      show: false,

      currentComics: '',
      webname: '未匹配',
      comicName: '------',

      paylogoArr: [],
      zipDownFlag: true
    }
  },
  mounted() {
    this.getInfo()
  },
  methods: {
    async getInfo() {
      try {
        this.currentComics = comics/* currentComics */.Po
        if (comics/* currentComics */.Po === null) {
          return
        }
        const comicNameCss = this.currentComics.comicNameCss
        this.webname = comics/* currentComics.webName */.Po.webName
        this.comicName = document.querySelector(comicNameCss).innerText
        this.$bus.$emit('getComicName', this.comicName)
        //
        this.zipDownFlag = await getStorage('zipDownFlag')
      // eslint-disable-next-line no-empty
      } catch (error) {
        console.log('error: ', error)
      }
      return
    },
    selectAll() {
      this.$refs.checkboxGroup.toggleAll(false)
      if (comics/* currentComics.hasSpend */.Po.hasSpend) {
        this.list.forEach((element, index) => {
          if (element.url !== 'javascript:void();') {
            this.selectResult.push(index)
          }
        })
        return
      }
      this.$refs.checkboxGroup.toggleAll(true)
    },
    CancelSelect() {
      this.$refs.checkboxGroup.toggleAll(false)
    },

    radioSelect(index) {
      // console.log('index', this.selectResult)
    },
    async getSelectList() {
      this.overlayShow = true
      const chapterCss = comics/* currentComics.chapterCss */.Po.chapterCss
      setTimeout(() => {
        if (comics/* currentComics.hasSpend */.Po.hasSpend) {
          this.paylogoArr = []
          const logoCss = comics/* currentComics.freeCss */.Po.freeCss + ',' + comics/* currentComics.payCss */.Po.payCss
          const logoArr = document.querySelectorAll(logoCss)
          logoArr.forEach((element, index) => {
            if ('.' + logoArr[index].className === comics/* currentComics.payCss */.Po.payCss) {
              this.paylogoArr.push(true)
            } else {
              this.paylogoArr.push(false)
            }
          })
        }
        const nodeList = document.querySelectorAll(chapterCss)
        nodeList.forEach(dom => {
          const urls = dom.querySelectorAll('a')
          const readtype = comics/* currentComics.readtype */.Po.readtype
          urls.forEach((element, index) => {
            let chapterName = element.innerText.replace(/\n|\r/g, '')
            chapterName = chapterName.trim()
            const data = {
              comicName: this.comicName,
              chapterName: chapterName,
              url: element.href,
              readtype
            }
            if (comics/* currentComics.hasSpend */.Po.hasSpend) {
              data.isPay = this.paylogoArr[index]
              if (data.isPay) {
                data.url = 'javascript:void();'
              }
            }
            this.list.push(data)
          })
        })
        this.overlayShow = false
        this.showSelectList = true
      }, 100)
    },
    downSelectList() {
      if (this.selectResult.length === 0) {
        (0,external_vant_namespaceObject.Toast)({
          message: '请选择章节',
          getContainer: '.card',
          position: 'bottom'
        })
        return
      }

      this.selectResult.forEach(num => {
        const item = this.list[num]
        item.zipDownFlag = this.zipDownFlag
        this.downResult.push(item)
      })
      this.$bus.$emit('selectDown', this.downResult)
      this.$bus.$emit('changTab', 2)
      this.downResult = []
      this.selectResult = []
    },
    reloadList() {
      this.list = []
      this.selectResult = []
      this.getSelectList()
    }
  }
});

;// CONCATENATED MODULE: ./src/views/table.vue?vue&type=script&lang=js&
 /* harmony default export */ const views_tablevue_type_script_lang_js_ = (tablevue_type_script_lang_js_); 
// EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/table.vue?vue&type=style&index=0&id=657d4b24&lang=scss&scoped=true&
var tablevue_type_style_index_0_id_657d4b24_lang_scss_scoped_true_ = __webpack_require__(210);
;// 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/views/table.vue?vue&type=style&index=0&id=657d4b24&lang=scss&scoped=true&

            

var tablevue_type_style_index_0_id_657d4b24_lang_scss_scoped_true_options = {};

tablevue_type_style_index_0_id_657d4b24_lang_scss_scoped_true_options.insert = "head";
tablevue_type_style_index_0_id_657d4b24_lang_scss_scoped_true_options.singleton = false;

var tablevue_type_style_index_0_id_657d4b24_lang_scss_scoped_true_update = injectStylesIntoStyleTag_default()(tablevue_type_style_index_0_id_657d4b24_lang_scss_scoped_true_/* default */.Z, tablevue_type_style_index_0_id_657d4b24_lang_scss_scoped_true_options);



/* harmony default export */ const views_tablevue_type_style_index_0_id_657d4b24_lang_scss_scoped_true_ = (tablevue_type_style_index_0_id_657d4b24_lang_scss_scoped_true_/* default.locals */.Z.locals || {});
;// CONCATENATED MODULE: ./src/views/table.vue?vue&type=style&index=0&id=657d4b24&lang=scss&scoped=true&

;// CONCATENATED MODULE: ./src/views/table.vue



;


/* normalize component */

var table_component = normalizeComponent(
  views_tablevue_type_script_lang_js_,
  tablevue_type_template_id_657d4b24_scoped_true_render,
  tablevue_type_template_id_657d4b24_scoped_true_staticRenderFns,
  false,
  null,
  "657d4b24",
  null
  
)

/* hot reload */
if (false) { var table_api; }
table_component.options.__file = "src/views/table.vue"
/* harmony default export */ const table = (table_component.exports);
;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/setting.vue?vue&type=template&id=234d1526&scoped=true&
var settingvue_type_template_id_234d1526_scoped_true_render = function () {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("div", { staticClass: "setindex" }, [
    _c(
      "div",
      { attrs: { id: "setpart" } },
      [
        _c(
          "van-cell-group",
          { attrs: { id: "downpart", title: "下载", inset: "" } },
          [
            _c("van-cell", {
              attrs: { label: "*下载前生效", center: "" },
              scopedSlots: _vm._u([
                {
                  key: "title",
                  fn: function () {
                    return [
                      _c(
                        "span",
                        {
                          staticClass: "custom-title",
                          staticStyle: { width: "300px" },
                        },
                        [_vm._v("最大下载章节数")]
                      ),
                    ]
                  },
                  proxy: true,
                },
                {
                  key: "default",
                  fn: function () {
                    return [
                      _c("van-slider", {
                        staticClass: "rightslider",
                        attrs: { min: 1, max: 5 },
                        on: {
                          change: function ($event) {
                            return _vm.onChangeData(
                              "maxChapterNum",
                              _vm.maxChapterNum
                            )
                          },
                        },
                        scopedSlots: _vm._u([
                          {
                            key: "button",
                            fn: function () {
                              return [
                                _c("div", { staticClass: "custom-button" }, [
                                  _vm._v(_vm._s(_vm.maxChapterNum)),
                                ]),
                              ]
                            },
                            proxy: true,
                          },
                        ]),
                        model: {
                          value: _vm.maxChapterNum,
                          callback: function ($$v) {
                            _vm.maxChapterNum = $$v
                          },
                          expression: "maxChapterNum",
                        },
                      }),
                    ]
                  },
                  proxy: true,
                },
              ]),
            }),
            _vm._v(" "),
            _c("van-cell", {
              attrs: { label: "*下载前生效", center: "" },
              scopedSlots: _vm._u([
                {
                  key: "title",
                  fn: function () {
                    return [
                      _c(
                        "span",
                        {
                          staticClass: "custom-title",
                          staticStyle: { width: "300px" },
                        },
                        [_vm._v("每章最大下载图片数")]
                      ),
                    ]
                  },
                  proxy: true,
                },
                {
                  key: "default",
                  fn: function () {
                    return [
                      _c("van-slider", {
                        staticClass: "rightslider",
                        attrs: { min: 1, max: 5 },
                        on: {
                          change: function ($event) {
                            return _vm.onChangeData(
                              "maxPictureNum",
                              _vm.maxPictureNum
                            )
                          },
                        },
                        scopedSlots: _vm._u([
                          {
                            key: "button",
                            fn: function () {
                              return [
                                _c("div", { staticClass: "custom-button" }, [
                                  _vm._v(_vm._s(_vm.maxPictureNum)),
                                ]),
                              ]
                            },
                            proxy: true,
                          },
                        ]),
                        model: {
                          value: _vm.maxPictureNum,
                          callback: function ($$v) {
                            _vm.maxPictureNum = $$v
                          },
                          expression: "maxPictureNum",
                        },
                      }),
                    ]
                  },
                  proxy: true,
                },
              ]),
            }),
            _vm._v(" "),
            _c("van-cell", {
              attrs: {
                "title-class": "cellleftvalue",
                "value-class": "cellrightvalue",
                label: "*本次启动默认设置, 不勾选则下载图片",
                center: "",
              },
              scopedSlots: _vm._u([
                {
                  key: "title",
                  fn: function () {
                    return [
                      _c("span", { staticClass: "custom-title" }, [
                        _vm._v("压缩下载"),
                      ]),
                      _vm._v(" "),
                      _c(
                        "van-popover",
                        {
                          attrs: {
                            placement: "right",
                            "get-container": "#downpart",
                            offset: [-18, 10],
                            "close-on-click-outside": true,
                          },
                          scopedSlots: _vm._u([
                            {
                              key: "reference",
                              fn: function () {
                                return [
                                  _c("van-icon", {
                                    attrs: { name: "info-o", color: "red" },
                                    on: {
                                      mouseover: function ($event) {
                                        _vm.zipDownPopover = true
                                      },
                                      mouseleave: function ($event) {
                                        _vm.zipDownPopover = false
                                      },
                                    },
                                  }),
                                ]
                              },
                              proxy: true,
                            },
                          ]),
                          model: {
                            value: _vm.zipDownPopover,
                            callback: function ($$v) {
                              _vm.zipDownPopover = $$v
                            },
                            expression: "zipDownPopover",
                          },
                        },
                        [
                          _c("div", [
                            _c("code", { staticClass: "popovertext" }, [
                              _vm._v(
                                "* 如需保存在文件夹需要设置油猴下载模式为浏览器API"
                              ),
                            ]),
                            _c("br"),
                            _vm._v(" "),
                            _c("code", { staticClass: "popovertext" }, [
                              _vm._v(
                                "* 如有较多油猴弹窗提示跨域,建议取消勾选直接下载"
                              ),
                            ]),
                          ]),
                        ]
                      ),
                    ]
                  },
                  proxy: true,
                },
                {
                  key: "default",
                  fn: function () {
                    return [
                      _c("van-checkbox", {
                        staticClass: "rightbutton",
                        on: {
                          change: function ($event) {
                            return _vm.onChangeData(
                              "zipDownFlag",
                              _vm.zipDownFlag
                            )
                          },
                        },
                        model: {
                          value: _vm.zipDownFlag,
                          callback: function ($$v) {
                            _vm.zipDownFlag = $$v
                          },
                          expression: "zipDownFlag",
                        },
                      }),
                    ]
                  },
                  proxy: true,
                },
              ]),
            }),
          ],
          1
        ),
        _vm._v(" "),
        _c(
          "van-cell-group",
          { attrs: { id: "webpart", title: "原网站阅读样式修改", inset: "" } },
          [
            _c("van-cell", {
              attrs: {
                "title-class": "cellleftvalue",
                "value-class": "cellrightvalue",
                label: "去除部分漫画网站图片上下间隔",
                center: "",
              },
              scopedSlots: _vm._u([
                {
                  key: "title",
                  fn: function () {
                    return [
                      _c("span", { staticClass: "custom-title" }, [
                        _vm._v("图片拼接"),
                      ]),
                      _vm._v(" "),
                      _c(
                        "van-popover",
                        {
                          attrs: {
                            placement: "bottom-start",
                            "get-container": "#webpart",
                            offset: [-2, 0],
                            "close-on-click-outside": true,
                          },
                          scopedSlots: _vm._u([
                            {
                              key: "reference",
                              fn: function () {
                                return [
                                  _c("van-icon", {
                                    attrs: { name: "info-o", color: "red" },
                                    on: {
                                      mouseover: function ($event) {
                                        _vm.showPopover = true
                                      },
                                      mouseleave: function ($event) {
                                        _vm.showPopover = false
                                      },
                                    },
                                  }),
                                ]
                              },
                              proxy: true,
                            },
                          ]),
                          model: {
                            value: _vm.showPopover,
                            callback: function ($$v) {
                              _vm.showPopover = $$v
                            },
                            expression: "showPopover",
                          },
                        },
                        [
                          _c("code", { staticClass: "popovertext" }, [
                            _vm._v("建议浏览长条漫画时开启"),
                          ]),
                        ]
                      ),
                    ]
                  },
                  proxy: true,
                },
                {
                  key: "default",
                  fn: function () {
                    return [
                      _c("van-checkbox", {
                        staticClass: "rightbutton",
                        on: { change: _vm.webImgSplicing },
                        model: {
                          value: _vm.imgSplicingFlag,
                          callback: function ($$v) {
                            _vm.imgSplicingFlag = $$v
                          },
                          expression: "imgSplicingFlag",
                        },
                      }),
                    ]
                  },
                  proxy: true,
                },
              ]),
            }),
          ],
          1
        ),
      ],
      1
    ),
    _vm._v(" "),
    _c(
      "div",
      { attrs: { id: "set-bottom" } },
      [
        _c(
          "van-button",
          {
            style: { width: "120px", background: "#ee000055" },
            attrs: { round: "" },
            on: { click: _vm.allInit },
          },
          [_vm._v("全部重置")]
        ),
      ],
      1
    ),
  ])
}
var settingvue_type_template_id_234d1526_scoped_true_staticRenderFns = []
settingvue_type_template_id_234d1526_scoped_true_render._withStripped = true


;// CONCATENATED MODULE: ./src/views/setting.vue?vue&type=template&id=234d1526&scoped=true&

// EXTERNAL MODULE: ./src/utils/index.js
var utils = __webpack_require__(624);
;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/setting.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//

/* eslint-disable no-undef */






/* harmony default export */ const settingvue_type_script_lang_js_ = ({
  name: 'Setting',
  data() {
    return {
      maxChapterNum: 1,
      maxPictureNum: 2,
      zipDownFlag: true,
      imgSplicingFlag: false,
      //
      zipDownPopover: false,
      showPopover: false
    }
  },
  mounted() {
    this.getAllData()
  },
  methods: {
    onChangeData(key, value) {
      setStorage(key, value)
    },
    webImgSplicing(value) {
      const splicingimgstyle = document.getElementById('splicingimgstyle')
      if (value === true && comics/* currentComics.readCssText */.Po.readCssText !== undefined) {
        if (splicingimgstyle) {
          splicingimgstyle.innerText = comics/* currentComics.readCssText */.Po.readCssText
        } else {
          (0,utils/* loadStyle */.Xr)('', 'splicingimgstyle', comics/* currentComics.readCssText */.Po.readCssText)
        }
      } else {
        if (splicingimgstyle) {
          splicingimgstyle.innerText = ''
        }
      }
      this.onChangeData('imgSplicingFlag', value)
    },

    exeFun(flag) {
      this.webImgSplicing(flag)
    },
    getAllData() {
      try {
        this.maxChapterNum = GM_getValue('maxChapterNum')
        this.maxPictureNum = GM_getValue('maxPictureNum')
        this.zipDownFlag = GM_getValue('zipDownFlag')
        this.imgSplicingFlag = GM_getValue('imgSplicingFlag')
      // eslint-disable-next-line no-empty
      } catch (error) {}
      // 获取数据后执行其他方法
      this.exeFun(this.imgSplicingFlag)
    },
    async allInit() {
      external_vant_namespaceObject.Dialog.confirm({
        getContainer: '.card',
        message: '确认重置'
      })
        .then(() => {
          setinit().then((result) => {
            this.getAllData()
          })
        })
        .catch(() => {
          // on cancel
        })
    }
  }
});

;// CONCATENATED MODULE: ./src/views/setting.vue?vue&type=script&lang=js&
 /* harmony default export */ const views_settingvue_type_script_lang_js_ = (settingvue_type_script_lang_js_); 
// EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/setting.vue?vue&type=style&index=0&id=234d1526&lang=scss&scoped=true&
var settingvue_type_style_index_0_id_234d1526_lang_scss_scoped_true_ = __webpack_require__(625);
;// 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/views/setting.vue?vue&type=style&index=0&id=234d1526&lang=scss&scoped=true&

            

var settingvue_type_style_index_0_id_234d1526_lang_scss_scoped_true_options = {};

settingvue_type_style_index_0_id_234d1526_lang_scss_scoped_true_options.insert = "head";
settingvue_type_style_index_0_id_234d1526_lang_scss_scoped_true_options.singleton = false;

var settingvue_type_style_index_0_id_234d1526_lang_scss_scoped_true_update = injectStylesIntoStyleTag_default()(settingvue_type_style_index_0_id_234d1526_lang_scss_scoped_true_/* default */.Z, settingvue_type_style_index_0_id_234d1526_lang_scss_scoped_true_options);



/* harmony default export */ const views_settingvue_type_style_index_0_id_234d1526_lang_scss_scoped_true_ = (settingvue_type_style_index_0_id_234d1526_lang_scss_scoped_true_/* default.locals */.Z.locals || {});
;// CONCATENATED MODULE: ./src/views/setting.vue?vue&type=style&index=0&id=234d1526&lang=scss&scoped=true&

;// CONCATENATED MODULE: ./src/views/setting.vue



;


/* normalize component */

var setting_component = normalizeComponent(
  views_settingvue_type_script_lang_js_,
  settingvue_type_template_id_234d1526_scoped_true_render,
  settingvue_type_template_id_234d1526_scoped_true_staticRenderFns,
  false,
  null,
  "234d1526",
  null
  
)

/* hot reload */
if (false) { var setting_api; }
setting_component.options.__file = "src/views/setting.vue"
/* harmony default export */ const setting = (setting_component.exports);
;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/down.vue?vue&type=template&id=1e855a88&scoped=true&
var downvue_type_template_id_1e855a88_scoped_true_render = function () {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    { attrs: { id: "downcontext" } },
    [
      _c(
        "van-collapse",
        {
          model: {
            value: _vm.collapseActiveName,
            callback: function ($$v) {
              _vm.collapseActiveName = $$v
            },
            expression: "collapseActiveName",
          },
        },
        [
          _c(
            "van-collapse-item",
            {
              attrs: { title: "下载中", name: "1" },
              scopedSlots: _vm._u([
                {
                  key: "title",
                  fn: function () {
                    return [
                      _c(
                        "div",
                        { style: { display: "flex", lineHeight: "25px" } },
                        [
                          _vm._v("下载中\n          "),
                          _vm.comicName
                            ? _c(
                                "van-tag",
                                {
                                  staticClass: "comicnametag1",
                                  attrs: { type: "primary" },
                                },
                                [_vm._v(_vm._s(_vm.comicName))]
                              )
                            : _vm._e(),
                        ],
                        1
                      ),
                    ]
                  },
                  proxy: true,
                },
              ]),
            },
            [
              _vm._v(" "),
              _c(
                "div",
                { attrs: { id: "downlist" } },
                _vm._l(_vm.queue.worker, function (item, index) {
                  return _c("div", { key: index, staticClass: "downitem" }, [
                    item !== undefined
                      ? _c(
                          "div",
                          [
                            _c("div", { staticClass: "itemname" }, [
                              _c("span", { staticClass: "custom-title" }, [
                                _vm._v(_vm._s(item.chapterName)),
                              ]),
                            ]),
                            _vm._v(" "),
                            _c("van-progress", {
                              ref: "progress",
                              refInFor: true,
                              staticStyle: {
                                width: "100%",
                                "margin-top": "10px",
                              },
                              attrs: {
                                percentage: item.progress,
                                "pivot-color": "#66ccff",
                                color:
                                  "linear-gradient(to right, #66ccff22, ##66ccff)",
                              },
                            }),
                            _vm._v(" "),
                            _c("van-divider", {
                              style: {
                                margin: "13px 0px",
                                padding: "0 0px",
                                height: "1px",
                              },
                            }),
                          ],
                          1
                        )
                      : _vm._e(),
                  ])
                }),
                0
              ),
            ]
          ),
          _vm._v(" "),
          _c("van-collapse-item", { attrs: { title: "待下载", name: "2" } }, [
            _c(
              "div",
              { attrs: { id: "downlist" } },
              _vm._l(_vm.queue.list, function (item, index) {
                return _c(
                  "div",
                  { key: index, staticClass: "downitem" },
                  [
                    _c("div", { staticClass: "itemname" }, [
                      _c("span", { staticClass: "custom-title" }, [
                        _vm._v(_vm._s(item.chapterName)),
                      ]),
                    ]),
                    _vm._v(" "),
                    _c("van-divider", {
                      style: {
                        margin: "8px 0px",
                        padding: "0 0px",
                        height: "1px",
                      },
                    }),
                  ],
                  1
                )
              }),
              0
            ),
          ]),
          _vm._v(" "),
          _c(
            "van-collapse-item",
            {
              attrs: { name: "3" },
              scopedSlots: _vm._u([
                {
                  key: "title",
                  fn: function () {
                    return [
                      _c(
                        "div",
                        { style: { display: "flex" } },
                        [
                          _vm._v("已下载\n          "),
                          _c("van-icon", {
                            staticStyle: {
                              "line-height": "25px",
                              "margin-left": "10px",
                            },
                            attrs: {
                              name: "delete-o",
                              color: "#EE0000",
                              size: "20",
                            },
                            on: {
                              click: function ($event) {
                                $event.stopPropagation()
                                return _vm.deleteAllHistoryData.apply(
                                  null,
                                  arguments
                                )
                              },
                            },
                          }),
                        ],
                        1
                      ),
                    ]
                  },
                  proxy: true,
                },
              ]),
            },
            [
              _vm._v(" "),
              _c(
                "div",
                { attrs: { id: "downlist" } },
                _vm._l(_vm.historyData, function (item, index) {
                  return _c(
                    "div",
                    { key: index, staticClass: "downitem" },
                    [
                      _c(
                        "div",
                        { staticClass: "itemname" },
                        [
                          _c(
                            "div",
                            [
                              _c(
                                "van-tag",
                                {
                                  staticClass: "comicnametag",
                                  attrs: {
                                    type: "primary",
                                    title: item.comicName,
                                  },
                                  on: {
                                    click: function ($event) {
                                      return _vm.jump(item.comicPageUrl)
                                    },
                                  },
                                },
                                [_vm._v(_vm._s(item.comicName))]
                              ),
                              _vm._v(" "),
                              _c(
                                "span",
                                {
                                  staticClass: "custom-title chapterspan",
                                  class: { hasError: item.hasError },
                                },
                                [_vm._v(_vm._s(item.chapterName))]
                              ),
                            ],
                            1
                          ),
                          _vm._v(" "),
                          _c("van-icon", {
                            style: { cursor: "pointer" },
                            attrs: { name: "delete-o", size: "18px" },
                            on: {
                              click: function ($event) {
                                return _vm.deleteHistoryData(index, item.id)
                              },
                            },
                          }),
                        ],
                        1
                      ),
                      _vm._v(" "),
                      _c("van-divider", {
                        style: {
                          margin: "8px 0px",
                          padding: "0 0px",
                          height: "1px",
                        },
                      }),
                    ],
                    1
                  )
                }),
                0
              ),
            ]
          ),
        ],
        1
      ),
    ],
    1
  )
}
var downvue_type_template_id_1e855a88_scoped_true_staticRenderFns = []
downvue_type_template_id_1e855a88_scoped_true_render._withStripped = true


;// CONCATENATED MODULE: ./src/views/down.vue?vue&type=template&id=1e855a88&scoped=true&

;// CONCATENATED MODULE: external "JSZip"
const external_JSZip_namespaceObject = JSZip;
var external_JSZip_default = /*#__PURE__*/__webpack_require__.n(external_JSZip_namespaceObject);
;// CONCATENATED MODULE: ./src/utils/queue.js




// 多个任务并行执行的队列
// https://juejin.cn/post/6844903961728647181

class Queue {
  constructor(workerLen, maxPictureNum, vue) {
    this.workerLen = workerLen || 3 // 同时执行的任务数
    this.pictureNum = maxPictureNum || 2 // 章节最大下载图片数量
    this.list = [] // 任务队列
    this.worker = new Array(this.workerLen) // 正在执行的任务
    this.workerDownInfo = new Array(this.workerLen) // 存储下载信息
    this.Vue = vue
  }

  // 压缩下载方式
  async downloadFile(fileName, content) {
    const url = window.URL.createObjectURL(content)
    await (0,utils/* downFile */.zd)(url, fileName)
    window.URL.revokeObjectURL(url)
  }

  /**
     * 执行一个任务
     * @param { number } index
     */
  async * exeDown(index) {
    const { readtype, chapterName } = this.worker[index]
    const _this = this

    async function afterDown(index) {
      const { comicName, hasError } = _this.worker[index]
      const comicPageUrl = window.location.href
      let historyData = await getStorage('downHistory') || '[]'
      historyData = JSON.parse(historyData)
      const id = (new Date()).getTime()
      historyData.unshift({ id, comicName, chapterName, comicPageUrl, hasError })
      historyData = JSON.stringify(historyData)
      await setStorage('downHistory', historyData)
      _this.Vue.getHistoryData()
      _this.worker[index] = undefined
      _this.run()
    }

    if (readtype === 1) {
      const url = this.worker[index].url
      let imgs = []
      try {
        imgs = await (0,utils/* getHtml */.E_)(url)
      } catch (error) {
        this.worker[index].hasError = true
      }
      this.worker[index].imgs = imgs
      this.worker[index].number = imgs.length
      yield this.down(index)
        .then(function() {
          afterDown(index)
        })
        //
    } else {
      yield this.down2(index)
        .then(function() {
          afterDown(index)
        })
    }
  }

  /**
     * 添加到任务队列
     * @param { Array<Array<any>> } list: 任务队列
     */
  addList(list) {
    for (const item of list) {
      this.list.unshift(item)
    }
  }

  refresh() {
    this.worker.splice(0, 0)
    // this.worker.push('')
    // this.worker.pop()
  }

  // 下载图片 Promise
  addImgDownPromise(index, imgurl, name) {
    return new Promise((resolve, reject) => {
      const _this = this

      const suffix = this.getSuffix(imgurl)
      const newName = this.worker[index].comicName + '\\' + this.worker[index].chapterName + '\\' + name + '.' + suffix
      // eslint-disable-next-line no-undef
      GM_download({
        url: imgurl,
        name: newName,
        onload: result => {
          _this.worker[index].currentnum = _this.worker[index].currentnum + 1
          _this.worker[index].progress = parseInt(_this.worker[index].currentnum / _this.worker[index].number * 100)
          _this.refresh()
          resolve(true)
        },
        onerror: result => {
          console.log('onerror: ', result)
          resolve(false)
        },
        ontimeout: result => {
          console.log('ontimeout: ', result)
          resolve(false)
        }
      })
    })
  }

  // 请求图片 Promise
  addImgPromise(index, imgurl) {
    return new Promise((resolve, reject) => {
      const _this = this
      const suffix = this.getSuffix(imgurl)
      // eslint-disable-next-line no-undef
      GM_xmlhttpRequest({
        method: 'get',
        url: imgurl,
        responseType: 'blob',
        onload: function(gmRes) {
          _this.worker[index].currentnum = _this.worker[index].currentnum + 1
          _this.worker[index].progress = parseInt(_this.worker[index].currentnum / _this.worker[index].number * 100)
          _this.refresh()
          resolve({
            blob: gmRes.response,
            suffix: suffix })
        },
        onerror: function(e) {
          resolve({
            blob: 1,
            suffix: '' })
        },
        ontimeout: function() {
          resolve({
            blob: 0,
            suffix: '' })
        }
      })
    })
  }

  // 网站翻页阅读方式
  async down2(workerId) {
    const { url, zipDownFlag } = this.worker[workerId]
    const { imgUrl, nextPageUrl, number } = await (0,utils/* getHtml */.E_)(url)
    this.worker[workerId].number = number

    while (imgUrl.length > 0) {
      // eslint-disable-next-line prefer-const
      let promise = []
      for (let index = this.pictureNum; index > 0; index--) {
        if (imgUrl[0] === undefined) {
          break
        }
        if (zipDownFlag) {
          promise.push(this.addImgPromise(workerId, imgUrl[0]))
        } else {
          const name = this.worker[workerId].imgIndex + 1
          promise.push(this.addImgDownPromise(workerId, imgUrl[0], name))
        }
        imgUrl.shift()
      }

      const res = await Promise.all(promise)
      res.forEach(element => {
        this.workerDownInfo[workerId].push(element)
      })
    }

    if (nextPageUrl !== '') {
      this.worker[workerId].url = nextPageUrl
      return this.down2(workerId)
    }

    // 是否压缩
    if (zipDownFlag) {
      const result = await this.makeZip(workerId)
      return new Promise((resolve, reject) => {
        resolve(result)
      })
    } else {
      return new Promise((resolve, reject) => {
        resolve(1)
      })
    }
  }

  // 网站卷轴阅读方式
  async down(workerId) {
    const { imgs, zipDownFlag } = this.worker[workerId]
    const promise = []
    let len = imgs.length
    let pictureNum = this.pictureNum

    while (pictureNum-- && len > 0) {
      // 是否压缩
      if (zipDownFlag) {
        promise.push(this.addImgPromise(workerId, imgs[0]))
      } else {
        const name = this.worker[workerId].imgIndex + 1
        promise.push(this.addImgDownPromise(workerId, imgs[0], name))
        this.worker[workerId].imgIndex++
      }
      this.worker[workerId].imgs.shift()
      len--
    }
    const res = await Promise.all(promise)

    res.forEach(element => {
      this.workerDownInfo[workerId].push(element)
    })

    if (this.worker[workerId].imgs.length > 0) {
      return this.down(workerId)
    }

    // 是否压缩
    if (zipDownFlag) {
      const result = await this.makeZip(workerId)
      return new Promise((resolve, reject) => {
        resolve(result)
      })
    } else {
      return new Promise((resolve, reject) => {
        resolve(1)
      })
    }
  }

  // 分配并执行任务
  async run() {
    const runIndex = []
    for (let i = 0; i < this.workerLen; i++) {
      const len = this.list.length
      if (!this.worker[i] && len > 0) {
        // 需要执行的任务
        const item = this.list[len - 1]

        const worker = {
          comicName: item.comicName,
          chapterName: item.chapterName,
          currentnum: 0,
          number: 0,
          imgs: [],
          url: item.url,
          progress: 0,
          readtype: item.readtype,
          func: this.exeDown(i),
          zipDownFlag: item.zipDownFlag,
          imgIndex: 0,
          hasError: false
        }
        this.workerDownInfo[i] = []
        this.worker[i] = worker
        this.list.pop()
        runIndex.push(i)
      }
    }
    // 执行任务
    for (const index of runIndex) {
      this.worker[index].func.next()
    }
  }

  getSuffix(url) {
    const testurl = url.toLowerCase()
    const imgtype = ['jpg', 'jpeg', 'webp', 'png', 'gif', 'bmp', 'tiff', 'svg', 'ico']
    for (let i = 0; i < imgtype.length; i++) {
      const a = testurl.search(imgtype[i])
      if (a !== -1) {
        return imgtype[i]
      }
    }
    // 可能网址没有图片后缀
    return 'jpg'
  }

  // 压缩
  async makeZip(workerId) {
    const { comicName, chapterName } = this.worker[workerId]
    return new Promise((resolve, reject) => {
      const zip = new (external_JSZip_default())()
      this.workerDownInfo[workerId].forEach((item, index) => {
        const imgblob = item.blob
        const suffix = item.suffix
        if (imgblob === 1 || imgblob === 0) {
          zip.file(parseInt(index + 1) + '.xx', '', { blob: true })
          return
        }
        zip.file(parseInt(index + 1) + '.' + suffix, imgblob, { blob: true })
      })

      zip.generateAsync({
        type: 'blob',
        compression: 'DEFLATE',
        compressionOptions: {
          level: 9
        }
      }).then((zipblob) => {
        const name = comicName + '\\' + chapterName + '.zip'
        this.downloadFile(name, zipblob)
        resolve()
        return
      })
    })
  }
}

;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/down.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//






/* harmony default export */ const downvue_type_script_lang_js_ = ({
  name: 'Down',
  data() {
    return {
      collapseActiveName: ['1', '2', '3'],
      comicName: null,
      queue: {
        'worker': '',
        'list': '',
        'workeredList': ''
      },
      maxChapterNum: 3,
      maxPictureNum: 2,
      zipDownFlag: true,
      historyData: []
    }
  },
  watch: {

  },
  mounted() {
    console.clear()
    this.$bus.$on('selectDown', this.downInit)
  },
  created() {
    this.$bus.$on('getComicName', this.getComicName)
    this.getHistoryData()
  },
  methods: {
    getComicName(value) {
      if (value !== '------') { this.comicName = value }
    },
    async downInit(arr) {
      if (this.queue.worker === '') {
        this.maxChapterNum = await getStorage('maxChapterNum')
        this.maxPictureNum = await getStorage('maxPictureNum')
        this.zipDownFlag = await getStorage('zipDownFlag')
        this.queue = new Queue(this.maxChapterNum, this.maxPictureNum, this)
      }
      this.queue.addList(arr)
      this.queue.run()
    },
    async getHistoryData() {
      const data = await getStorage('downHistory')
      this.historyData = JSON.parse(data || '[]')
    },
    async deleteHistoryData(index, id) {
      this.historyData.splice(index, 1)
      let data = await getStorage('downHistory')
      let historyData = JSON.parse(data || '[]')
      historyData = historyData.filter((item) => item.id !== id)
      data = JSON.stringify(historyData)
      setStorage('downHistory', data)
    },
    deleteAllHistoryData() {
      external_vant_namespaceObject.Dialog.confirm({
        getContainer: '.card',
        message: '确认全部删除'
      })
        .then(() => {
          this.historyData.splice(0, this.historyData.length)
          setStorage('downHistory', '[]')
        })
        .catch(() => {
          // on cancel
        })
    },
    jump(url) {
      window.open(url, '_blank')
      // window.location.href = url
    }
  }
});

;// CONCATENATED MODULE: ./src/views/down.vue?vue&type=script&lang=js&
 /* harmony default export */ const views_downvue_type_script_lang_js_ = (downvue_type_script_lang_js_); 
// EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/views/down.vue?vue&type=style&index=0&id=1e855a88&lang=scss&scoped=true&
var downvue_type_style_index_0_id_1e855a88_lang_scss_scoped_true_ = __webpack_require__(578);
;// 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/views/down.vue?vue&type=style&index=0&id=1e855a88&lang=scss&scoped=true&

            

var downvue_type_style_index_0_id_1e855a88_lang_scss_scoped_true_options = {};

downvue_type_style_index_0_id_1e855a88_lang_scss_scoped_true_options.insert = "head";
downvue_type_style_index_0_id_1e855a88_lang_scss_scoped_true_options.singleton = false;

var downvue_type_style_index_0_id_1e855a88_lang_scss_scoped_true_update = injectStylesIntoStyleTag_default()(downvue_type_style_index_0_id_1e855a88_lang_scss_scoped_true_/* default */.Z, downvue_type_style_index_0_id_1e855a88_lang_scss_scoped_true_options);



/* harmony default export */ const views_downvue_type_style_index_0_id_1e855a88_lang_scss_scoped_true_ = (downvue_type_style_index_0_id_1e855a88_lang_scss_scoped_true_/* default.locals */.Z.locals || {});
;// CONCATENATED MODULE: ./src/views/down.vue?vue&type=style&index=0&id=1e855a88&lang=scss&scoped=true&

;// CONCATENATED MODULE: ./src/views/down.vue



;


/* normalize component */

var down_component = normalizeComponent(
  views_downvue_type_script_lang_js_,
  downvue_type_template_id_1e855a88_scoped_true_render,
  downvue_type_template_id_1e855a88_scoped_true_staticRenderFns,
  false,
  null,
  "1e855a88",
  null
  
)

/* hot reload */
if (false) { var down_api; }
down_component.options.__file = "src/views/down.vue"
/* harmony default export */ const down = (down_component.exports);
;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/app.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//










/* harmony default export */ const appvue_type_script_lang_js_ = ({
  name: 'App',
  components: {
    Home: home, Table: table, Down: down, Setting: setting
  },
  data() {
    return {
      AppName: AppName,
      AppVersion: AppVersion,
      show: true,
      isHide: true,
      active: 1,
      titles: ['漫画网站', '选择章节', '下载', '设置'],
      comicInfo: {}
    }
  },
  computed: {
    current: function() {
      return this.active
    }
  },
  watch: {
    active(val) {
      this.$refs.swipe.swipeTo(val)
    }
  },
  created() {
    appinit()
    ;(0,comics/* matchWeb */.HL)(window.location.href)
  },
  mounted() {
    this.$bus.$on('changTab', (val) => { this.active = val })
  },
  methods: {
    showContext() {
      this.show = !this.show
    },
    hide() {
      this.isHide = !this.isHide
    },
    test(e) {

    }
  }
});

;// CONCATENATED MODULE: ./src/app.vue?vue&type=script&lang=js&
 /* harmony default export */ const src_appvue_type_script_lang_js_ = (appvue_type_script_lang_js_); 
// EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/app.vue?vue&type=style&index=0&id=5ef48958&lang=scss&scoped=true&
var appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_ = __webpack_require__(857);
;// CONCATENATED MODULE: ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/app.vue?vue&type=style&index=0&id=5ef48958&lang=scss&scoped=true&

            

var appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_options = {};

appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_options.insert = "head";
appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_options.singleton = false;

var appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_update = injectStylesIntoStyleTag_default()(appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_/* default */.Z, appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_options);



/* harmony default export */ const lib_vue_loader_options_src_appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_ = (appvue_type_style_index_0_id_5ef48958_lang_scss_scoped_true_/* default.locals */.Z.locals || {});
;// CONCATENATED MODULE: ./src/app.vue?vue&type=style&index=0&id=5ef48958&lang=scss&scoped=true&

// EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/app.vue?vue&type=style&index=1&id=5ef48958&lang=scss&scoped=true&
var appvue_type_style_index_1_id_5ef48958_lang_scss_scoped_true_ = __webpack_require__(871);
;// 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=1&id=5ef48958&lang=scss&scoped=true&

            

var appvue_type_style_index_1_id_5ef48958_lang_scss_scoped_true_options = {};

appvue_type_style_index_1_id_5ef48958_lang_scss_scoped_true_options.insert = "head";
appvue_type_style_index_1_id_5ef48958_lang_scss_scoped_true_options.singleton = false;

var appvue_type_style_index_1_id_5ef48958_lang_scss_scoped_true_update = injectStylesIntoStyleTag_default()(appvue_type_style_index_1_id_5ef48958_lang_scss_scoped_true_/* default */.Z, appvue_type_style_index_1_id_5ef48958_lang_scss_scoped_true_options);



/* harmony default export */ const lib_vue_loader_options_src_appvue_type_style_index_1_id_5ef48958_lang_scss_scoped_true_ = (appvue_type_style_index_1_id_5ef48958_lang_scss_scoped_true_/* default.locals */.Z.locals || {});
;// CONCATENATED MODULE: ./src/app.vue?vue&type=style&index=1&id=5ef48958&lang=scss&scoped=true&

;// CONCATENATED MODULE: ./src/app.vue



;



/* normalize component */

var app_component = normalizeComponent(
  src_appvue_type_script_lang_js_,
  render,
  staticRenderFns,
  false,
  null,
  "5ef48958",
  null
  
)

/* hot reload */
if (false) { var app_api; }
app_component.options.__file = "src/app.vue"
/* harmony default export */ const app = (app_component.exports);
// EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/styles/global.scss
var global = __webpack_require__(452);
;// CONCATENATED MODULE: ./src/styles/global.scss

            

var global_options = {};

global_options.insert = "head";
global_options.singleton = false;

var global_update = injectStylesIntoStyleTag_default()(global/* default */.Z, global_options);



/* harmony default export */ const styles_global = (global/* default.locals */.Z.locals || {});
// EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/less-loader/dist/cjs.js!./src/styles/global.less
var cjs_js_src_styles_global = __webpack_require__(400);
;// CONCATENATED MODULE: ./src/styles/global.less

            

var styles_global_options = {};

styles_global_options.insert = "head";
styles_global_options.singleton = false;

var styles_global_update = injectStylesIntoStyleTag_default()(cjs_js_src_styles_global/* default */.Z, styles_global_options);



/* harmony default export */ const src_styles_global = (cjs_js_src_styles_global/* default.locals */.Z.locals || {});
;// CONCATENATED MODULE: ./src/main.js










// import 'vant/lib/index.css'
external_Vue_default().use((external_vant_default()))

const id = `app_vue_${Date.now()}`
const root = document.createElement('div')
root.id = id
document.body.appendChild(root)

;(external_Vue_default()).prototype.$bus = new (external_Vue_default())()

if (isDev) {
  (0,utils/* loadStyle */.Xr)('https://unpkg.com/[email protected]/lib/index.css')
} else {
  // eslint-disable-next-line no-undef
  GM_addStyle(GM_getResourceText('vantcss'))
}

new (external_Vue_default())({
  el: `#${id}`,
  render: h => h(app)
})

})();

/******/ })()
;

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址