Greasy Fork is available in English.

Easy offline | 一键离线下载

一键自动将种子磁链或其他下载资源离线下载至网盘 | Easy stream torrents or videos from cloud storage

Tính đến 08-10-2016. Xem phiên bản mới nhất.

// ==UserScript==
// @name         Easy offline | 一键离线下载
// @namespace    http://tampermonkey.net/
// @version      1.0.5
// @description  一键自动将种子磁链或其他下载资源离线下载至网盘 | Easy stream torrents or videos from cloud storage
// @author       Hoothin
// @mail         rixixi@gmail.com
// @include      http*://pan.baidu.com/*
// @include      http://115.com/*
// @include      https://www.furk.net/*
// @include      https://www.seedr.cc/*
// @match        http*://*/*
// @grant        GM_setValue
// @grant        GM_getValue
// @require      http://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js
// ==/UserScript==

var enableUrl = 'a[href^="magnet"],[href^="ed2k://|file"],[href$=".torrent"],[href$=".mp4"],[href$=".rar"],[href$=".7z"],[href$=".zip"],[href$=".rmvb"],[href$=".mkv"],[href$=".avi"],[href$=".iso"]';
var disableUrl=[".torrentkitty.","bt.box.n0808.com"];
function include(Things,obj) {
	for (var i = Things.length - 1; i >= 0; i--) {
		if ($(Things[i]).attr('href')===$(obj).attr('href')){
			return true;
		}
	}
}

function setCss(){
    $('head').append('<style>a.whx-a{ display: inline-block;margin-left:5px;height: 30px;width: 30px;background-size: 20px;border-radius: 50%;vertical-align: middle;}</style>');
}

function getAllEnableUrl() {
    var rawnodes = $(enableUrl).get();
    var nodes = [];
    if(rawnodes.length>0){
        for (var i = 0; i <rawnodes.length; i++) {
            var disable = false;
            var curNode = rawnodes[i];
            for(var j = 0; j < disableUrl.length; j++){
                var temp = disableUrl[j];
                if($(curNode)[0]["href"].indexOf(temp)!=-1){
                    disable = true;
                    break;
                }
            }
            if(disable)continue;
            if(!include(nodes,curNode)){
                nodes.push(curNode);
            }
        }
    }
    if(nodes.length>0){
        var codeList = [];
        var listLen = 0;
        listLen = nodes.length;
        setCss();
        if (listLen !== 0) {
            for (i = 0; i < listLen; i++) {
                var curNode = nodes[i];
                var url = $(curNode)[0]["href"];
                var cloneNodes=[];
                for(var x=0;x<4;x++){
                    cloneNodes.push($(curNode).clone().addClass('whx-a').css("outline","none").css("background-position","center").css("background-repeat","no-repeat").css("background-image",'url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAAARVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADc6ur3AAAAFnRSTlMAYM5vMOA/ENGegK2olI6G1b97Z0sXENA+jAAAAKFJREFUKM+FklkSxCAIRHFfss3K/Y86iQSDVqzpH7FfgQpCVfAmGx+gl9JI0qrxrcNLzooEbKUG4EKWdkCiDRV0N0RTrZ5wvdgTTgp4SzCAHxAPZkAM5GOJWuuT7FE5OVPOBFLTYb3Oc2YB5uJ8+G6pgkTGt74ntcCJHiwFLHw10Tdc93jlGXGvSRtsHNpuPs+/o1ODfxAtSL0f7HPC+L/9AF60G3QxO1UaAAAAAElFTkSuQmCC")').empty().attr("target","_blank").attr("url",url).click(function (event) {GM_setValue("url",$(event.target).attr("url"));}));
                }
                $(curNode).after(cloneNodes[0].css("background-color","#5e5eff").attr("title","115" ).attr("href", "http://115.com/?tab=offline&mode=wangpan"));
                $(curNode).after(cloneNodes[1].css("background-color","#3BEBFF").attr("title","Furk" ).attr("href", "https://www.furk.net/users/files/add"));
                $(curNode).after(cloneNodes[2].css("background-color","#F44336").attr("title","Seedr" ).attr("href", "https://www.seedr.cc/files"));
                $(curNode).after(cloneNodes[3].css("background-color","#eeeeee").attr("title","BaiduPan" ).attr("href", "http://pan.baidu.com/disk/home"));
            }
        }
        $('.whx-a').css('b','d');
    }
}

var i=0;
var t=window.setInterval(function() {
    var curlink;
    if (location.href.indexOf("furk.net/users/files/add") != -1){
        window.clearInterval(t);
        curlink = GM_getValue('url');
        if(curlink){
            setTimeout(function() {
                $('#url').val(curlink);
                GM_setValue('url', '');
                $(":submit[value='Add download']").click();
            }, 500);
        }
    }else if(location.href.indexOf("seedr.cc/files") != -1){
        if($('#upload-button').css("display") != "none"){
            window.clearInterval(t);
            curlink = GM_getValue('url');
            if(curlink){
                setTimeout(function() {
                    $(':text[name="torrent"]').val(curlink);
                    GM_setValue('url', '');
                    $('#upload-button').click();
                }, 500);
            }
        }
    }else if(location.href.indexOf("pan.baidu.com/disk/home") != -1){
        window.clearInterval(t);
        curlink = GM_getValue('url');
        if(curlink){
            document.querySelector('.g-button[data-button-id=b13]').click();
            var bsi = setInterval(function() {
                var newTaskBtn = document.querySelector('#_disk_id_2');
                if(newTaskBtn){
                    clearInterval(bsi);
                    newTaskBtn.click();
                    setTimeout(function() {
                        document.querySelector('#share-offline-link').value = curlink;
                        document.querySelector('.g-button[data-button-id=b63]').click();
                    }, 500);
                }
            }, 500);
            GM_setValue('url', '');
        }
    }else if(location.href.indexOf("115.com/?tab=offline&mode=wangpan") != -1){
        window.clearInterval(t);
        curlink = GM_getValue('url');
        if(curlink){
            var rsc = setInterval(function() {
                if (document.readyState == 'complete') {
                    clearInterval(rsc);
                    setTimeout(function() {
                        Core['OFFL5Plug'].OpenLink();
                        setTimeout(function() {
                            $('#js_offline_new_add').val(curlink);
                        }, 300);
                    }, 1000);
                }
            }, 400);
            GM_setValue('url', '');
        }
    }else if((i===0 && $(enableUrl).length>0)||i>20){
        window.clearInterval(t);
        getAllEnableUrl();
    }else{
        i++;
    }
}, 500);