您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
获得 OneDrive 文件下载直链的 TamperMonkey 插件
// ==UserScript== // @name OneDrive 文件下载直链 // @namespace http://tampermonkey.net/ // @version 1.2.6 // @description 获得 OneDrive 文件下载直链的 TamperMonkey 插件 // @author KAAAsS // @license MIT // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== // @match https://*.sharepoint.com/* // @match https://*.sharepoint.cn/* // @grant GM_cookie // @grant GM_setClipboard // @grant GM_setValue // @grant GM_getValue // @grant GM_xmlhttpRequest // @require https://cdn.staticfile.org/vue/2.6.12/vue.min.js // @require https://cdn.staticfile.org/element-ui/2.14.1/index.min.js // @connect * // @noframes // ==/UserScript== /******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ({ /***/ 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, "*{padding:0;margin:0}body{font-size:14px}.app .el-tag{height:20px;line-height:20px;border-radius:10px;padding:0 6px}.app-container{background-color:#ffffff;padding:10px}\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}\n", ""]); // Exports /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); /***/ }), /***/ 75: /***/ ((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, ".header[data-v-61dd7a3d]{display:flex;align-items:center;padding:10px}.header i[data-v-61dd7a3d]{font-size:20px}.header h3[data-v-61dd7a3d]{margin:0 10px;font-size:20px}\n", ""]); // Exports /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); /***/ }), /***/ 205: /***/ ((module, __webpack_exports__, __webpack_require__) => { /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(645); /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__); // Imports var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]}); // Module ___CSS_LOADER_EXPORT___.push([module.id, ".body[data-v-593a5798]{position:fixed;z-index:1999;left:0;top:0;height:100%;width:420px;background-color:#fff;transition:all 0.5s;box-shadow:2px 3px 3px 0 rgba(0,0,0,0.1)}.btn-toggle[data-v-593a5798]{transition:all 0.5s;border-radius:30px 0 0 30px;width:30px;height:60px;background-color:#0078d4;cursor:pointer;position:absolute;right:0;top:50%;transform:translateY(-50%);text-align:center;z-index:2999}.btn-toggle svg[data-v-593a5798]{height:20px;width:20px;position:absolute;right:5px;top:20px;transition:all 0.5s}.body-hide[data-v-593a5798]{left:-420px;box-shadow:2px 3px 3px 0 rgba(0,0,0,0)}.body-hide .btn-toggle[data-v-593a5798]{border-radius:0 30px 30px 0;right:-30px}.body-hide .btn-toggle svg[data-v-593a5798]{transform:rotate(180deg)}\n", ""]); // Exports /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); /***/ }), /***/ 296: /***/ ((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, "\n.app-container[data-v-62c87fde] {\r\n height: 100%;\n}\n.el-scrollbar[data-v-62c87fde] {\r\n height: 100%;\n}\n.box .el-scrollbar__wrap[data-v-62c87fde] {\r\n overflow: scroll;\r\n width: 110%;\r\n height: 120%;\n}\n.blank[data-v-62c87fde] {\r\n height: 100px;\n}\n.sub-container[data-v-62c87fde] {\r\n margin-top: 20px;\n}\n.sub-title[data-v-62c87fde] {\r\n margin-bottom: 15px;\n}\n.btn-group-files[data-v-62c87fde] {\r\n margin-top: 20px;\r\n margin-bottom: 10px;\n}\r\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; }; }; /***/ }), /***/ 223: /***/ ((module) => { module.exports = element-ui; /***/ }) /******/ }); /************************************************************************/ /******/ // 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)) /******/ })(); /******/ /************************************************************************/ 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("PluginDrawer")], 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/components/PluginDrawer.vue?vue&type=template&id=593a5798&scoped=true& var PluginDrawervue_type_template_id_593a5798_scoped_true_render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "div", [ _c( "div", { staticClass: "body", class: { "body-hide": _vm.isHide } }, [ _c("Header"), _vm._v(" "), _c("PluginPanel", { ref: "panel", on: { onOpenAriaDialog: _vm.handleOpenAriaDialog } }), _vm._v(" "), _c( "div", { staticClass: "btn-toggle", on: { click: _vm.hide } }, [_c("ArrowIcon")], 1 ) ], 1 ), _vm._v(" "), _c("AriaConfigDialog", { ref: "ariaDialog" }) ], 1 ) } var PluginDrawervue_type_template_id_593a5798_scoped_true_staticRenderFns = [] PluginDrawervue_type_template_id_593a5798_scoped_true_render._withStripped = true ;// CONCATENATED MODULE: ./src/components/PluginDrawer.vue?vue&type=template&id=593a5798&scoped=true& ;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/Header.vue?vue&type=template&id=61dd7a3d&scoped=true& var Headervue_type_template_id_61dd7a3d_scoped_true_render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "div", { staticClass: "header" }, [ _c("i", { staticClass: "el-icon-link" }), _vm._v(" "), _c("h3", [_vm._v(_vm._s(_vm.AppName))]), _vm._v(" "), _c("el-tag", [_vm._v("v" + _vm._s(_vm.AppVersion))]) ], 1 ) } var Headervue_type_template_id_61dd7a3d_scoped_true_staticRenderFns = [] Headervue_type_template_id_61dd7a3d_scoped_true_render._withStripped = true ;// CONCATENATED MODULE: ./src/components/Header.vue?vue&type=template&id=61dd7a3d&scoped=true& ;// CONCATENATED MODULE: ./src/config/index.js const AppName = "OneDrive 文件下载直链" const AppVersion = "1.2.6" const AppEnv = "production" const isDev = AppEnv === 'development' ;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/Header.vue?vue&type=script&lang=js& // // // // // // // // /* harmony default export */ const Headervue_type_script_lang_js_ = ({ name: 'Header', data() { return { AppName: AppName, AppVersion: AppVersion, } } }); ;// CONCATENATED MODULE: ./src/components/Header.vue?vue&type=script&lang=js& /* harmony default export */ const components_Headervue_type_script_lang_js_ = (Headervue_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/components/Header.vue?vue&type=style&index=0&id=61dd7a3d&lang=scss&scoped=true& var Headervue_type_style_index_0_id_61dd7a3d_lang_scss_scoped_true_ = __webpack_require__(75); ;// 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/components/Header.vue?vue&type=style&index=0&id=61dd7a3d&lang=scss&scoped=true& var options = {}; options.insert = "head"; options.singleton = false; var update = injectStylesIntoStyleTag_default()(Headervue_type_style_index_0_id_61dd7a3d_lang_scss_scoped_true_/* default */.Z, options); /* harmony default export */ const components_Headervue_type_style_index_0_id_61dd7a3d_lang_scss_scoped_true_ = (Headervue_type_style_index_0_id_61dd7a3d_lang_scss_scoped_true_/* default.locals */.Z.locals || {}); ;// CONCATENATED MODULE: ./src/components/Header.vue?vue&type=style&index=0&id=61dd7a3d&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/components/Header.vue ; /* normalize component */ var component = normalizeComponent( components_Headervue_type_script_lang_js_, Headervue_type_template_id_61dd7a3d_scoped_true_render, Headervue_type_template_id_61dd7a3d_scoped_true_staticRenderFns, false, null, "61dd7a3d", null ) /* hot reload */ if (false) { var api; } component.options.__file = "src/components/Header.vue" /* harmony default export */ const Header = (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/icons/ArrowIcon.vue?vue&type=template&id=41f57a04&scoped=true& var ArrowIconvue_type_template_id_41f57a04_scoped_true_render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "svg", { staticClass: "icon", attrs: { t: "1589962875590", viewBox: "0 0 1024 1024", version: "1.1", xmlns: "http://www.w3.org/2000/svg", "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: "#FFFFFF", "p-id": "2602" } }) ] ) } var ArrowIconvue_type_template_id_41f57a04_scoped_true_staticRenderFns = [] ArrowIconvue_type_template_id_41f57a04_scoped_true_render._withStripped = true ;// CONCATENATED MODULE: ./src/icons/ArrowIcon.vue?vue&type=template&id=41f57a04&scoped=true& ;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/icons/ArrowIcon.vue?vue&type=script&lang=js& // // // // // // // // // // // // // // // // // /* harmony default export */ const ArrowIconvue_type_script_lang_js_ = ({ name: "ArrowIcon" }); ;// CONCATENATED MODULE: ./src/icons/ArrowIcon.vue?vue&type=script&lang=js& /* harmony default export */ const icons_ArrowIconvue_type_script_lang_js_ = (ArrowIconvue_type_script_lang_js_); ;// CONCATENATED MODULE: ./src/icons/ArrowIcon.vue /* normalize component */ ; var ArrowIcon_component = normalizeComponent( icons_ArrowIconvue_type_script_lang_js_, ArrowIconvue_type_template_id_41f57a04_scoped_true_render, ArrowIconvue_type_template_id_41f57a04_scoped_true_staticRenderFns, false, null, "41f57a04", null ) /* hot reload */ if (false) { var ArrowIcon_api; } ArrowIcon_component.options.__file = "src/icons/ArrowIcon.vue" /* harmony default export */ const ArrowIcon = (ArrowIcon_component.exports); ;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/PluginPanel.vue?vue&type=template&id=62c87fde&scoped=true& var PluginPanelvue_type_template_id_62c87fde_scoped_true_render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "div", { staticClass: "app-container" }, [ _c("el-scrollbar", [ _c( "div", { staticClass: "sub-container" }, [ _c( "div", { staticClass: "btn-group-files" }, [ this.cookie !== "" ? _c( "el-button", { attrs: { type: "primary", size: "mini" }, on: { click: function($event) { return _vm.handleIdm() } } }, [_vm._v("IDM 下载\n ")] ) : _vm._e(), _vm._v(" "), this.cookie !== "" ? _c( "el-button", { attrs: { type: "primary", size: "mini" }, on: { click: function($event) { return _vm.handleAria() } } }, [_vm._v("Aria 下载\n ")] ) : _vm._e(), _vm._v(" "), _c( "el-button", { attrs: { size: "mini" }, on: { click: function($event) { return _vm.handleCopyFile() } } }, [_vm._v("复制链接")] ), _vm._v(" "), _c( "el-tooltip", { staticClass: "item", attrs: { effect: "dark", content: "不太好用,建议优先使用 IDM 或 Aria 推送", placement: "top-start" } }, [ _c( "el-button", { attrs: { size: "mini" }, on: { click: function($event) { return _vm.handleBatchDownload() } } }, [_vm._v("批量下载")] ) ], 1 ) ], 1 ), _vm._v(" "), _c( "el-table", { ref: "filesTable", staticStyle: { width: "100%" }, attrs: { data: _vm.fileList, "tooltip-effect": "dark" }, on: { "selection-change": _vm.handleSelectionChange } }, [ _c("el-table-column", { attrs: { type: "selection", width: "55" } }), _vm._v(" "), _c("el-table-column", { attrs: { prop: "filename", label: "文件名" } }), _vm._v(" "), _c("el-table-column", { attrs: { label: "操作" }, scopedSlots: _vm._u([ { key: "default", fn: function(scope) { return [ _c( "el-button", { attrs: { type: "primary", size: "mini" }, on: { click: function($event) { return _vm.handleDownload( scope.row.directLink ) } } }, [_vm._v("下载\n ")] ), _vm._v(" "), _c( "el-button", { attrs: { size: "mini" }, on: { click: function($event) { return _vm.handleCopyLink( scope.row.directLink ) } } }, [_vm._v("复制链接\n ")] ) ] } } ]) }) ], 1 ) ], 1 ), _vm._v(" "), _c("div", { staticClass: "sub-container" }, [ _c("h3", { staticClass: "sub-title" }, [_vm._v("Cookie 信息")]), _vm._v(" "), this.cookie === "" ? _c( "div", { staticClass: "not-tampermonkey-beta" }, [ _c("el-alert", { attrs: { title: "无法获得 Cookie 信息", type: "info", description: "由于您没有使用 Tampermonkey Beta,因此无法自动获得 Cookie。请在“开发者选项-Application-Cookie”中,\n 复制 FedAuth 对应的值。然后在 AriaNG 的“自定义请求头”填写:Cookie: FedAuth=复制的值", "show-icon": "", closable: false } }) ], 1 ) : _vm._e(), _vm._v(" "), this.cookie !== "" ? _c( "div", { staticClass: "tampermonkey-beta" }, [ _c("el-alert", { staticStyle: { "margin-bottom": "15px" }, attrs: { title: "Cookie 信息", type: "success", description: "下载时在 AriaNG 的“自定义请求头”填写", "show-icon": "", closable: false } }), _vm._v(" "), _c("el-input", { attrs: { type: "textarea", rows: 3, placeholder: "Cookie" }, model: { value: _vm.cookie, callback: function($$v) { _vm.cookie = $$v }, expression: "cookie" } }), _vm._v(" "), _c( "div", { staticClass: "btn-group-files" }, [ _c( "el-button", { attrs: { type: "primary" }, on: { click: function($event) { return _vm.handleCopyCookie() } } }, [_vm._v("复制")] ) ], 1 ) ], 1 ) : _vm._e() ]), _vm._v(" "), _c("div", { staticClass: "sub-container" }, [ _c("h3", { staticClass: "sub-title" }, [_vm._v("设置")]), _vm._v(" "), _c( "div", { staticClass: "btn-group-files" }, [ _c( "el-button", { on: { click: function($event) { return _vm.handleConfigAria() } } }, [_vm._v("配置 Aria RPC")] ) ], 1 ) ]), _vm._v(" "), _c("div", { staticClass: "blank" }) ]) ], 1 ) } var PluginPanelvue_type_template_id_62c87fde_scoped_true_staticRenderFns = [] PluginPanelvue_type_template_id_62c87fde_scoped_true_render._withStripped = true ;// CONCATENATED MODULE: ./src/components/PluginPanel.vue?vue&type=template&id=62c87fde&scoped=true& ;// CONCATENATED MODULE: ./src/logic/mock.js /** * 获得文件列表 * @param allowCache 是否允许缓存 * @returns {Promise<(boolean|*[])[]|boolean[]>} [是否新数据, 数据] */ const getFileList = async (allowCache) => { let ret = []; for (let i = 0; i < 20; i++) { ret.push({ filename: '文件名1.rar', directLink: 'https://aaaaaaaaaaaaaaaaaaaa.bbb/ccccc.ddddd?eeeeeeeeeee' }) } return [true, ret]; }; /** * 获得 Cookie Mock * @returns {Promise<unknown>} */ const getCookie = async () => { return "Cookie: FedAuth="; }; /** * 复制到剪切板 * @returns {Promise<boolean>} */ const setClipboard = async () => { return true; } /** * 取得 Aria 配置 * @returns {{downloadPath: string, apiBase: string, token: string}|null} */ const getAriaConfig = () => { if (!window._aria_config) { return null; } return window._aria_config; }; /** * 设置 Aria 配置 * @param conf */ const setAriaConfig = (conf) => { console.log('设置新的 Aria 配置:', JSON.stringify(conf)); window._aria_config = conf; }; /* harmony default export */ const mock = ({ getFileList, getCookie, setClipboard, getAriaConfig, setAriaConfig }); ;// CONCATENATED MODULE: ./src/logic/actual.js let cachedUrl = null, cachedFileList = null; /** * 获得文件列表 * @param allowCache 是否允许缓存 * @returns {Promise<(boolean|*[])[]|boolean[]>} [是否新数据, 数据] */ const actual_getFileList = async (allowCache) => { let fileList = []; // 解析路径参数 let url = document.location; let host = url.host; let param = new URLSearchParams(url.search); let loc = param.get('id'); // 检查 Cache if (allowCache) { if (url.search === cachedUrl) { console.log("从缓存中解析:", cachedUrl); return [false, cachedFileList]; } } // 请求文件列表 let response = await fetch(`https://${host}${loc}`, { method: 'PROPFIND', credentials: 'include' }); if (!response.ok) { // 失败 if (response.status !== 404) { throw new Error(`无法解析OneDrive文件列表: ${response.status}`); } // 获取单文件信息 let directLink = encodeURI(`https://${host}${loc}`); let parts = loc.split('/'); let filename = parts[parts.length - 1]; // 单个文件 fileList.push({filename, directLink}); } else { // 成功:多个文件 // 解析返回 let xmlRaw = await response.text(); let parser = new DOMParser(); let xmlDoc = parser.parseFromString(xmlRaw, "text/xml"); let fileEls = xmlDoc.getElementsByTagName('D:response'); for (const el of fileEls) { let isFolderEl = el.getElementsByTagName('D:isFolder'); // 当前不支持递归查找,所以跳过文件夹 if (isFolderEl.length >= 1 && isFolderEl[0].textContent === 't') { continue; } // 获得文件 URL let hrefEl = el.getElementsByTagName('D:href'); let directLink = ""; if (hrefEl.length >= 1) { // Sharepoint 返回中包含 Unicode 字符,需要转义 directLink = encodeURI(hrefEl[0].textContent); directLink = directLink.replaceAll('%25', '%'); } // 获得文件名 let nameEl = el.getElementsByTagName('D:displayname'); let filename = ""; if (nameEl.length >= 1) { filename = nameEl[0].textContent; } // 拼接结果 fileList.push({filename, directLink}); } } // 缓存 cachedUrl = url.search; cachedFileList = fileList; return [true, fileList]; }; /** * 获得 Cookie 信息 * @returns {Promise<unknown>} */ const getCookieNative = (param) => { return new Promise(function (resolve, reject) { GM_cookie.list(param, (cookie, error) => { if (error) { reject(error); return; } console.log(cookie); if (cookie.length > 0) { resolve(cookie[0].value); } else { resolve(null); } }); }); }; /** * 获得 Cookie * @returns {Promise<unknown>} */ const actual_getCookie = async () => { let host = document.location.host; const cookieKeys = [ {name: 'FedAuth', domain: host}, // 防止多站点之间 Cookie 混淆 {name: 'CCSInfo', domain: '.sharepoint.com'}, // 海外版 {name: 'rtFa', domain: '.sharepoint.com'}, {name: 'CCSInfo', domain: '.sharepoint.cn'}, // 世纪互联 {name: 'rtFa', domain: '.sharepoint.cn'}, ]; let cookies = await Promise.all(cookieKeys.map(getCookieNative)); let cookie = 'cookie: '; cookieKeys.forEach((param, idx) => { let value = cookies[idx]; if (value) { cookie += `${param.name}=${value}; `; } }); console.log("获得 Cookie:", cookies); return cookie; }; /** * 复制到剪切板 * @returns {Promise<boolean>} */ const actual_setClipboard = (val) => { return new Promise(function (resolve) { GM_setClipboard(val, "text"); resolve(true); }); } const KEY_ARIA_CONF = "aria_conf"; /** * 取得 Aria 配置 * @returns {{downloadPath: string, apiBase: string, token: string}} */ const actual_getAriaConfig = () => { let json = GM_getValue(KEY_ARIA_CONF, "null"); return JSON.parse(json); }; /** * 设置 Aria 配置 * @param conf */ const actual_setAriaConfig = (conf) => { GM_setValue(KEY_ARIA_CONF, JSON.stringify(conf)); }; /* harmony default export */ const actual = ({ getFileList: actual_getFileList, getCookie: actual_getCookie, setClipboard: actual_setClipboard, getAriaConfig: actual_getAriaConfig, setAriaConfig: actual_setAriaConfig }); ;// CONCATENATED MODULE: ./src/logic/index.js let selected = actual; // 开发环境启用 Mock if (isDev) { selected = mock; } // 函数 const logic_getFileList = selected.getFileList; const logic_getCookie = selected.getCookie; const logic_setClipboard = selected.setClipboard; /** * 构造 IDM 下载列表 * @param fileLists * @param cookie * @returns {string} */ const buildEf2File = (fileLists, cookie) => { return fileLists .map(link => `<\r\n${link}\r\n${cookie}\r\n>`) .join("\r\n") + "\r\n\r\n"; }; const logic_getAriaConfig = selected.getAriaConfig; const logic_setAriaConfig = selected.setAriaConfig; /** * 发送 Aria RPC 下载请求 * @param fileLists * @param cookie */ const sendAriaRequest = async (fileLists, cookie) => { const conf = logic_getAriaConfig(); if (!conf) { return "no_config"; } // 构造 RPC Payload let params = {header: [cookie]}; if (conf.downloadPath.length > 0) { params.dir = conf.downloadPath; } // 发送 const downloadSingle = async (link) => { let payload = { jsonrpc: "2.0", method: "aria2.addUri", id: "sharepoint-list-plugin", params: [ `token:${conf.token}`, [link], params ] }; console.log("发送 Aria RPC:", conf.apiBase, JSON.stringify(payload)); if (isDev) { let headers = new Headers(); headers.append('Content-Type', 'application/json;charset=UTF-8'); let response = await fetch(conf.apiBase, { method: 'POST', body: JSON.stringify(payload), headers }); if (!response.ok) { throw new Error(response.statusText); } return await response.json(); } else { // 由于 Mixed-Content,所以只能用 GM_xmlhttpRequest 请求 return await new Promise(function (resolve, reject) { GM_xmlhttpRequest({ method: 'POST', responseType: 'json', url: conf.apiBase, data: JSON.stringify(payload), timeout: 3000, onload(res) { if (res.status === 200) { if (res.response.result) { // 正常返回 resolve(res.response); } else { // 其它错误 reject(`下载错误!${res.response.message}`); } } else { reject(`创建任务失败!${res.responseText}`); console.error("创建任务失败!", res); } }, ontimeout(res) { reject("连接超时!"); console.error("连接超时!", res); }, onerror(res) { reject("无法发送 Aria 下载请求!请尝试添加服务器路径到用户域名白名单。"); console.error("无法发送 Aria 下载请求!", res); } }); }); } }; return Promise.all(fileLists.map(downloadSingle)); }; ;// CONCATENATED MODULE: ./src/utils/index.js /** * 加载样式 * @param {String} url */ const loadStyle = (url) => { const head = document.getElementsByTagName('head')[0]; const link = document.createElement('link'); link.rel = 'stylesheet'; link.type = 'text/css'; link.href = url; link.media = 'all'; head.appendChild(link); } /** * 触发文本文件下载 * @param content * @param filename */ const downloadClob = (content, filename) => { let elDownload = document.createElement('a'); elDownload.download = filename; elDownload.style.display = 'none'; let blob = new Blob([content]); elDownload.href = URL.createObjectURL(blob); document.body.appendChild(elDownload); elDownload.click(); document.body.removeChild(elDownload); }; ;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/AriaConfigDialog.vue?vue&type=template&id=93e08cfa&scoped=true& var AriaConfigDialogvue_type_template_id_93e08cfa_scoped_true_render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "el-dialog", { attrs: { title: "配置 Aria RPC", visible: _vm.visible }, on: { "update:visible": function($event) { _vm.visible = $event } } }, [ _c( "el-form", { attrs: { model: _vm.form } }, [ _c( "el-form-item", { attrs: { label: "Aria RPC 地址" } }, [ _c("el-input", { attrs: { autocomplete: "off" }, model: { value: _vm.form.apiBase, callback: function($$v) { _vm.$set(_vm.form, "apiBase", $$v) }, expression: "form.apiBase" } }) ], 1 ), _vm._v(" "), _c( "el-form-item", { attrs: { label: "Aria RPC Token" } }, [ _c("el-input", { attrs: { autocomplete: "off" }, model: { value: _vm.form.token, callback: function($$v) { _vm.$set(_vm.form, "token", $$v) }, expression: "form.token" } }) ], 1 ), _vm._v(" "), _c( "el-form-item", { attrs: { label: "下载位置" } }, [ _c("el-input", { attrs: { autocomplete: "off" }, model: { value: _vm.form.downloadPath, callback: function($$v) { _vm.$set(_vm.form, "downloadPath", $$v) }, expression: "form.downloadPath" } }) ], 1 ) ], 1 ), _vm._v(" "), _c( "div", { staticClass: "dialog-footer", attrs: { slot: "footer" }, slot: "footer" }, [ _c( "el-button", { on: { click: function($event) { _vm.visible = false } } }, [_vm._v("取 消")] ), _vm._v(" "), _c( "el-button", { attrs: { type: "primary" }, on: { click: function($event) { return _vm.handleConfirm() } } }, [_vm._v("确 定")] ) ], 1 ) ], 1 ) } var AriaConfigDialogvue_type_template_id_93e08cfa_scoped_true_staticRenderFns = [] AriaConfigDialogvue_type_template_id_93e08cfa_scoped_true_render._withStripped = true ;// CONCATENATED MODULE: ./src/components/AriaConfigDialog.vue?vue&type=template&id=93e08cfa&scoped=true& ;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/AriaConfigDialog.vue?vue&type=script&lang=js& // // // // // // // // // // // // // // // // // // // // /* harmony default export */ const AriaConfigDialogvue_type_script_lang_js_ = ({ name: "AriaConfigDialog", data() { return { visible: false, form: { apiBase: '', token: '', downloadPath: '', }, }; }, mounted() { let conf = logic_getAriaConfig(); if (conf != null) { this.form = conf; } }, methods: { open() { this.visible = true; }, handleConfirm() { // 关闭对话框 this.visible = false; logic_setAriaConfig(this.form); this.$message.success("设置成功!"); } } }); ;// CONCATENATED MODULE: ./src/components/AriaConfigDialog.vue?vue&type=script&lang=js& /* harmony default export */ const components_AriaConfigDialogvue_type_script_lang_js_ = (AriaConfigDialogvue_type_script_lang_js_); ;// CONCATENATED MODULE: ./src/components/AriaConfigDialog.vue /* normalize component */ ; var AriaConfigDialog_component = normalizeComponent( components_AriaConfigDialogvue_type_script_lang_js_, AriaConfigDialogvue_type_template_id_93e08cfa_scoped_true_render, AriaConfigDialogvue_type_template_id_93e08cfa_scoped_true_staticRenderFns, false, null, "93e08cfa", null ) /* hot reload */ if (false) { var AriaConfigDialog_api; } AriaConfigDialog_component.options.__file = "src/components/AriaConfigDialog.vue" /* harmony default export */ const AriaConfigDialog = (AriaConfigDialog_component.exports); ;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/PluginPanel.vue?vue&type=script&lang=js& // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /* harmony default export */ const PluginPanelvue_type_script_lang_js_ = ({ name: "PluginPanel", components: {AriaConfigDialog: AriaConfigDialog}, data() { return { fileList: null, cookie: null, multipleSelection: [], } }, mounted() { this.loadFileList(true); this.loadCookie(); }, methods: { loadFileList(silent) { logic_getFileList(true).then(data => { const [isNew, fileList] = data; this.fileList = fileList; // 全选 if (isNew) { this.$nextTick(() => { this.$refs.filesTable.clearSelection(); this.$refs.filesTable.toggleAllSelection(); }); } }).catch(e => { console.log("无法读取文件列表", e); if (!silent) { this.$message.error(`读取文件列表失败!${e}`); } }) }, loadCookie() { logic_getCookie().then(data => { this.cookie = data; }).catch(e => { console.log("无法读取 Cookie", e); this.cookie = ""; }) }, getSelectedLinks() { return this.multipleSelection.map(obj => obj.directLink); }, handleSelectionChange(val) { this.multipleSelection = val; }, handleCopyFile() { let links = this.getSelectedLinks(); if (links.length < 1) { this.$message.error("请选择要下载的文件!"); return; } logic_setClipboard(links.join("\n")).then(() => { this.$message.success("复制成功!"); }); }, handleCopyCookie() { logic_setClipboard(this.cookie).then(() => { this.$message.success("复制成功!"); }); }, handleDownload(url) { window.open(url, "_blank"); }, handleCopyLink(url) { logic_setClipboard(url).then(() => { this.$message.success("复制成功!"); }); }, handleBatchDownload() { let links = this.getSelectedLinks(); if (links.length < 1) { this.$message.error("请选择要下载的文件!"); return; } links.forEach(link => window.open(link, "_blank")); }, handleIdm() { let ef2 = buildEf2File(this.getSelectedLinks(), this.cookie); downloadClob(ef2, 'download.ef2'); this.$message.success("成功!请在 IDM 中导入此文件下载"); }, handleAria() { sendAriaRequest(this.getSelectedLinks(), this.cookie) .then(ret => { // 检查是否成功 if (ret === "no_config") { this.$message.warning("还没配置过 Aria RPC,请先配置!"); this.$emit('onOpenAriaDialog'); return; } this.$message.success("成功推送至 Aria!") }) .catch(e => { // 报错 this.$message.error(`推送失败!${e}`); }); }, handleConfigAria() { this.$emit('onOpenAriaDialog'); } } }); ;// CONCATENATED MODULE: ./src/components/PluginPanel.vue?vue&type=script&lang=js& /* harmony default export */ const components_PluginPanelvue_type_script_lang_js_ = (PluginPanelvue_type_script_lang_js_); // EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/PluginPanel.vue?vue&type=style&index=0&id=62c87fde&scoped=true&lang=css& var PluginPanelvue_type_style_index_0_id_62c87fde_scoped_true_lang_css_ = __webpack_require__(296); ;// 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/vue-loader/lib/index.js??vue-loader-options!./src/components/PluginPanel.vue?vue&type=style&index=0&id=62c87fde&scoped=true&lang=css& var PluginPanelvue_type_style_index_0_id_62c87fde_scoped_true_lang_css_options = {}; PluginPanelvue_type_style_index_0_id_62c87fde_scoped_true_lang_css_options.insert = "head"; PluginPanelvue_type_style_index_0_id_62c87fde_scoped_true_lang_css_options.singleton = false; var PluginPanelvue_type_style_index_0_id_62c87fde_scoped_true_lang_css_update = injectStylesIntoStyleTag_default()(PluginPanelvue_type_style_index_0_id_62c87fde_scoped_true_lang_css_/* default */.Z, PluginPanelvue_type_style_index_0_id_62c87fde_scoped_true_lang_css_options); /* harmony default export */ const components_PluginPanelvue_type_style_index_0_id_62c87fde_scoped_true_lang_css_ = (PluginPanelvue_type_style_index_0_id_62c87fde_scoped_true_lang_css_/* default.locals */.Z.locals || {}); ;// CONCATENATED MODULE: ./src/components/PluginPanel.vue?vue&type=style&index=0&id=62c87fde&scoped=true&lang=css& ;// CONCATENATED MODULE: ./src/components/PluginPanel.vue ; /* normalize component */ var PluginPanel_component = normalizeComponent( components_PluginPanelvue_type_script_lang_js_, PluginPanelvue_type_template_id_62c87fde_scoped_true_render, PluginPanelvue_type_template_id_62c87fde_scoped_true_staticRenderFns, false, null, "62c87fde", null ) /* hot reload */ if (false) { var PluginPanel_api; } PluginPanel_component.options.__file = "src/components/PluginPanel.vue" /* harmony default export */ const PluginPanel = (PluginPanel_component.exports); ;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/PluginDrawer.vue?vue&type=script&lang=js& // // // // // // // // // // // // // /* harmony default export */ const PluginDrawervue_type_script_lang_js_ = ({ name: 'PluginDrawer', components: {AriaConfigDialog: AriaConfigDialog, PluginPanel: PluginPanel, ArrowIcon: ArrowIcon, Header: Header}, data() { return { isHide: true, } }, methods: { hide() { this.isHide = !this.isHide; // 打开侧边时重载文件列表 if (!this.isHide) { this.$refs.panel.loadFileList(false); } }, handleOpenAriaDialog() { this.$refs.ariaDialog.open(); }, }, }); ;// CONCATENATED MODULE: ./src/components/PluginDrawer.vue?vue&type=script&lang=js& /* harmony default export */ const components_PluginDrawervue_type_script_lang_js_ = (PluginDrawervue_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/components/PluginDrawer.vue?vue&type=style&index=0&id=593a5798&lang=scss&scoped=true& var PluginDrawervue_type_style_index_0_id_593a5798_lang_scss_scoped_true_ = __webpack_require__(205); ;// 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/components/PluginDrawer.vue?vue&type=style&index=0&id=593a5798&lang=scss&scoped=true& var PluginDrawervue_type_style_index_0_id_593a5798_lang_scss_scoped_true_options = {}; PluginDrawervue_type_style_index_0_id_593a5798_lang_scss_scoped_true_options.insert = "head"; PluginDrawervue_type_style_index_0_id_593a5798_lang_scss_scoped_true_options.singleton = false; var PluginDrawervue_type_style_index_0_id_593a5798_lang_scss_scoped_true_update = injectStylesIntoStyleTag_default()(PluginDrawervue_type_style_index_0_id_593a5798_lang_scss_scoped_true_/* default */.Z, PluginDrawervue_type_style_index_0_id_593a5798_lang_scss_scoped_true_options); /* harmony default export */ const components_PluginDrawervue_type_style_index_0_id_593a5798_lang_scss_scoped_true_ = (PluginDrawervue_type_style_index_0_id_593a5798_lang_scss_scoped_true_/* default.locals */.Z.locals || {}); ;// CONCATENATED MODULE: ./src/components/PluginDrawer.vue?vue&type=style&index=0&id=593a5798&lang=scss&scoped=true& ;// CONCATENATED MODULE: ./src/components/PluginDrawer.vue ; /* normalize component */ var PluginDrawer_component = normalizeComponent( components_PluginDrawervue_type_script_lang_js_, PluginDrawervue_type_template_id_593a5798_scoped_true_render, PluginDrawervue_type_template_id_593a5798_scoped_true_staticRenderFns, false, null, "593a5798", null ) /* hot reload */ if (false) { var PluginDrawer_api; } PluginDrawer_component.options.__file = "src/components/PluginDrawer.vue" /* harmony default export */ const PluginDrawer = (PluginDrawer_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: { PluginDrawer: PluginDrawer, }, data() { return { AppName: AppName, AppVersion: AppVersion, } }, }); ;// 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& ;// 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 || {}); ;// CONCATENATED MODULE: ./src/main.js loadStyle('https://cdn.staticfile.org/element-ui/2.14.1/theme-chalk/index.css') const id = `app_vue_${Date.now()}` const root = document.createElement('div') root.id = id document.body.appendChild(root) if (isDev) { const ElementUI = __webpack_require__(223) external_Vue_default().use(ElementUI) } new (external_Vue_default())({ el: `#${id}`, render: h => h(app) }) })(); /******/ })() ;