Greasy Fork is available in English.
百度网盘批量分享, 每个勾勾都生成一个分享链接, 可以自定义访问密码, 百度网盘Vip请使用该版
// ==UserScript== // @name 百度网盘分享(版本2) // @author 林岑影 // @website http://www.cyxiaowu.com // @description 百度网盘批量分享, 每个勾勾都生成一个分享链接, 可以自定义访问密码, 百度网盘Vip请使用该版 // @namespace // @icon http://disk.yun.uc.cn/favicon.ico // @license GPL version 3 // @encoding utf-8 // @date 08/12/2015 // @modified 08/12/2015 // @include http://pan.baidu.com/disk/* // @require http://libs.baidu.com/jquery/2.0.0/jquery.min.js // @grant unsafeWindow // @grant GM_setClipboard // @run-at document-end // @version 1.5.1 // ==/UserScript== (function(window){ var baidushares = function(){ this.pass = localStorage.getItem('qs_psss') || "8888"; //密码 this.timeout = 10000; //间隔时间 (毫秒) this.linktype = localStorage.getItem('qs_linktype') || "link"; //输出链接格式: ubb = ubb代码 | link = 链接 | html = html代码 this.index = 0; this.arrId = []; this.arrName = []; this.setTime = null; this.setSec = null; this.stbtn = '<a class="g-button" data-button-id="b888" data-button-index="88" href="javascript:void(0);"><span class="g-button-right"><em class="icon icon-share-gray" title="分享设置"></em><span class="text" style="width: auto;">分享设置</span></span></a>'; this.btn = '<a class="g-button" data-button-id="b999" data-button-index="99" href="javascript:void(0);"><span class="g-button-right"><em class="icon icon-share-gray" title="快速分享"></em><span class="text" style="width: auto;">快速分享</span></span></a>'; }; baidushares.prototype = { init: function(){ var that = this; $(".frame-main").find('[data-button-id="b39"]').after(that.btn); $(".frame-main").find('[data-button-id="b13"]').after(that.stbtn); $(".frame-main").find('[data-button-id="b888"]').on("click", function(){ that.setting(); }); $(".frame-main").find('[data-button-id="b999"]').on("click", function(){ if (that.setTime) { alert("当前有队列在分享中, 请等待完成后再试!"); return false; } that.arrId = []; that.arrName = []; that.index = 0; var dom = $(".module-list-view").css("display") == "none" ? $(".module-grid-view") : $(".module-list-view"); dom.find('.list-view').children(".item-active").each(function(){ dataname = $(this).find('.filename').attr("title"); that.arrName.push(dataname); }); var length = that.arrName.length; that.dialog(); that.resetCount(length); that.post(); }); $("body").on("click", '#qs_setting', function(){ var qs_pass = $("#qs_pass").val(), qs_linktype = $("#qs_linktype").val(); var reg = /^([a-zA-Z0-9]{4,4})$/; if(!reg.test(qs_pass)){ $("#qs_pass").val(that.pass); alert("请输入正确的密码。"); return false; } else { localStorage.setItem("qs_psss", qs_pass); localStorage.setItem("qs_linktype", qs_linktype); that.pass = qs_pass; that.linktype = qs_linktype; $(this).parents(".b-dialog").remove(); } }); }, post: function(){ var that = this, index = this.index; var name = this.arrName[index], dir = decodeURIComponent(window.location.hash.replace("#list/path=", "")), list = cache.list.data[dir].list, id = ""; $.each(list, function(i, j){ if (j.server_filename == name) { id = j.fs_id; return false; } }); var text = "", request = $.ajax({ url: "/share/set?channel=chunlei&clienttype=0&web=1&bdstoken=" + yunData.MYBDSTOKEN + "&app_id=25052", method: "POST", data: { fid_list : "["+id+"]", schannel: 4, channel_list: "[]", pwd: that.pass }, dataType: "json" }); request.done(function(json) { if (json.errno == 0) { if (that.linktype == "ubb") { text = "[url="+json.shorturl+"]百度网盘下载: "+name+"[/url] 提取密码:"+that.pass; } else if (that.linktype == "html") { text = "<a href='"+json.shorturl+"'>百度网盘下载: "+name+"</a> 提取密码:"+that.pass; } else { text = json.shorturl +" 提取密码:"+that.pass; } } else { text = name+" 分享失败, 错误代码: "+json.errno; } var old = $("#sharer###lt").val(); if (old=="") { old = text; } else { old = old+"\r\n"+text; } $("#sharer###lt").val(old); that.count(); that.index++; if (that.index >= that.arrName.length) { window.clearTimeout(that.setTime); window.clearInterval(that.setSec); that.setTime = null; that.setSec = null; } else { that.setTime = setTimeout(function(){ that.post(); }, that.timeout); that.setSec = setInterval(function(){ var sec = parseInt($("#sec").text()); sec--; if (sec>0) { $("#sec").text(sec); } else { window.clearInterval(that.setSec); that.setSec = null; $("#sec").text(parseInt(that.timeout / 1000)); } }, 1000); } }); }, resetCount: function(len){ $("#ok").text("0"); $("#all").text(len); $("#no").text(len); }, count: function(){ var ok = parseInt($("#ok").text()) + 1; var all = parseInt($("#all").text()); var no = all - ok; $("#ok").text(ok); $("#no").text(no); }, dialog: function() { if ($("#share-box").length > 0) { return false; } var that = this, html = "", w = 576, h = 514, ww = $(window).width(), hh = $(window).height(); var l = (ww - w) / 2, t = (hh - h) / 2; html='\ <div class="dialog dialog-share dialog-gray" id="share-box" style="width: 620px; top: '+t+'px; bottom: auto; left: '+l+'px; right: auto; display: block; visibility: visible; z-index: 53;">\ <div class="dialog-header dialog-drag">\ <h3><span class="dialog-header-title">分享结果</span></h3>\ <div class="dialog-control"><span id="closeQuickShareDailog" class="dialog-icon dialog-close"></span></div>\ </div>\ <div class="dialog-body">\ <div class="share-dialog">\ <div class="content" id="_disk_id_2">\ <p style="margin-bottom: 10px;">共 <b id="all">0</b> 条, 已完成 <b id="ok">0</b> 条, 剩余 <b id="no">0</b> 条 <b id="sec">'+ parseInt(that.timeout / 1000) +'</b>s</p>\ <textarea style="width:100%; height:400px;" id="sharer###lt"></textarea>\ </div>\ </div>\ </div>\ </div>'; $("body").append(html).find("#closeQuickShareDailog").click(function(){ window.clearTimeout(that.setTime); that.setTime = null; window.clearInterval(that.setSec); that.setSec = null; $("#share-box").remove(); }); }, setting: function() { var that = this, html = "", w = 576, h = 218, ww = $(window).width(), hh = $(window).height(); var l = (ww - w) / 2, t = (hh - h) / 2, length = this.arrName.length; html='\ <div class="dialog dialog-share dialog-gray" id="setting-box" style="width: 620px; top: '+t+'px; bottom: auto; left: '+l+'px; right: auto; display: block; visibility: visible; z-index: 53;">\ <div class="dialog-header dialog-drag">\ <h3><span class="dialog-header-title">分享结果</span></h3>\ <div class="dialog-control"><span id="closeQuickShareSettingDailog" class="dialog-icon dialog-close"></span></div>\ </div>\ <div class="dialog-body">\ <div class="share-dialog">\ <div class="content" id="_disk_id_2">\ <table border="0" cellpadding="5" cellspacing="0">\ <tr><td style="padding:10px;">链接类型: </td><td style="padding:10px;"><select id="qs_linktype"><option value="ubb">ubb代码</option><option value="html">html代码</option><option value="link">链接</option></select></td></tr>\ <tr><td style="padding:10px;">分享密码: </td><td style="padding:10px;"><input id="qs_pass" class="input-text" type="text" maxlength="4" pattern="/([a-zA-Z0-9]{4,4})/" value="'+ that.pass +'" required /></td></tr>\ <tr><td style="padding:10px;"> </td><td style="padding:10px;"><a id="qs_setting" href="javascript:;" class="g-button sbtn submit" style="margin-left:0;"><span class="g-button-right"><span class="text">设置</span></span></a></td></tr>\ </table>\ </div>\ </div>\ </div>\ </div>'; $("#setting-box").remove(); $("body").append(html).find("#closeQuickShareSettingDailog").click(function(){ $("#setting-box").remove(); }); $("#qs_linktype").val(that.linktype); } }; var bs = new baidushares(); bs.init(); }(window));