您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
阿里云直链导出
当前为
- // ==UserScript==
- // @name Custom aliyundrive
- // @namespace https://github.com/invobzvr
- // @version 0.1
- // @description 阿里云直链导出
- // @author invobzvr
- // @match *://www.aliyundrive.com/drive/*
- // @grant GM_addStyle
- // @homepageURL https://github.com/invobzvr/invotoys.js/tree/main/aliyundrive
- // @supportURL https://github.com/invobzvr/invotoys.js/issues
- // @license GPL-3.0
- // ==/UserScript==
- (function () {
- const that = {
- init: async function () {
- XMLHttpRequest.prototype.open = that.HOOK.XHR_OPEN;
- await new Promise(resolve => {
- let root = document.querySelector('#root'),
- iid = setInterval(() => root._reactRootContainer && (clearInterval(iid), resolve()), 100);
- });
- let menu = document.querySelector('ul[class^=nav-menu]'),
- btn = menu.firstChild.cloneNode(true);
- btn.className = menu.lastChild.className;
- btn.lastChild.innerText = 'Export';
- btn.addEventListener('click', that.click);
- menu.insertAdjacentHTML('beforeend', `<hr>${document.querySelector('[class^=divider]').outerHTML}<hr>`);
- menu.insertAdjacentElement('beforeend', btn);
- GM_addStyle(`.export-main {
- background: #fff;
- border-radius: 20px;
- box-shadow: 0 0px 20px #0002;
- height: 80%;
- left: 50%;
- overflow: auto;
- padding: 20px;
- position: fixed;
- top: 50%;
- transform: translate(-50%, -50%);
- width: 80%;
- z-index: 999999;
- }
- .export-main a {
- display: block;
- `);
- },
- export: function () {
- that.main = document.createElement('div');
- that.main.className = 'export-main';
- that.main.innerHTML = that.data.filter(ii => ii.type === 'file').map(ii => `<a href="${ii.download_url}" download>${ii.name}</a>`).join('');
- that.main.addEventListener('mousedown', evt => evt.stopPropagation());
- document.body.append(that.main);
- },
- click: function () {
- if (that.main) {
- that.main = that.main.remove();
- } else {
- that.export();
- }
- },
- ORI: {
- XHR_OPEN: XMLHttpRequest.prototype.open,
- },
- HOOK: {
- XHR_OPEN: function () {
- if (arguments[1].endsWith('/file/list')) {
- this.addEventListener('readystatechange', () => {
- if (this.readyState === 4) {
- that.data = JSON.parse(this.responseText).items;
- }
- });
- }
- return that.ORI.XHR_OPEN.apply(this, arguments);
- },
- },
- };
- that.init();
- })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址