Greasy Fork

Greasy Fork is available in English.

超星网盘直连生成

try to take over the world!

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         超星网盘直连生成
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        http://pan-yz.chaoxing.com/
// @grant        none
// @require      https://cdn.bootcss.com/clipboard.js/1.5.16/clipboard.min.js
// ==/UserScript==

(function() {
    'use strict';
    var div = document.getElementsByClassName('ypActionBar')[0];
    if(div){
        var download_btn = document.createElement("button");
        download_btn.innerText = '复制直链';
        download_btn.setAttribute('class', 'fl download opt_btn copyBtn');
        download_btn.setAttribute('id', 'copy_direct_url_btn');
        download_btn.setAttribute('onclick', 'res.copy_direct_url();');
        download_btn.setAttribute('data-clipboard-text', '');
        download_btn.setAttribute('data-clipboard-action', 'copy');
        div.append(download_btn);
        document.getElementById('container').setAttribute('onclick', 'document.getElementById(\'copy_direct_url_btn\').setAttribute(\'style\',\'\');');
        res.copy_direct_url = function(){
        function createXmlHttpRequest(){
            try {
                return new XMLHttpRequest();
            }
            catch(e){
                return new ActiveXObject("Microsoft.XMLHTTP");
            }
        }
        function copyToClipboard(str) {
            document.getElementById('copy_direct_url_btn').setAttribute('data-clipboard-text', str);
            var clipboard = new Clipboard(".copyBtn");
            clipboard.on('success',function(e){
                console.log('复制成功!');
            });

            clipboard.on('error',function(e){
                console.log('复制失败!');
            });
        }
        if(res.choosedlen>0){
            var failedFilenames = new Array();
            var failedUrlsAmount = 0;
            var succeededUrls = new Array();
            var succeededFilenames = new Array();
            var succeededUrlsAmount = 0;
            for(var filenode in res.choosed){
                var xmlHttp = createXmlHttpRequest();
                xmlHttp.open("get", "http://pan-yz.chaoxing.com/external/m/file/"+filenode,false);
                xmlHttp.send();
                if(xmlHttp.readyState == 4 && xmlHttp.status == 200){
                    var html_source = xmlHttp.responseText;
                    var download_url = html_source.match(/http:\/\/d0.*(?=')/)[0];
                    var filename = res.choosed[filenode]['name'];
                    download_url = download_url.replace(/(?<=fn=).*/, filename);
                    succeededUrls[succeededUrlsAmount] = download_url;
                    succeededFilenames[succeededUrlsAmount] = filename;
                    succeededUrlsAmount = succeededUrlsAmount+1;
                }
                else{
                    failedFilenames[failedUrlsAmount] = res.choosed[filenode]['name'];
                    failedUrlsAmount = failedUrlsAmount+1;
                }
            }
            if(succeededUrlsAmount>0){
                var str=succeededUrls[0];
                for(var i=1;i<succeededUrlsAmount;i=i+1){
                    str=str+'\n'+succeededUrls[i];
                }
                copyToClipboard(str);
                alert(succeededFilenames.toString()+' 等文件的直链已复制到剪切板!');
            }
            if(failedUrlsAmount>0){
                alert(failedFilenames.toString()+' 等文件请求直链失败!(不支持文件夹)')
            }
        }
        else{
            alert('未选中任何文件!');
        }
    }
    }
})();