├── Ci-Aria2百度云盘增强版.js ├── CiAria2BDY使用说明.txt ├── HideRun.vbs ├── README.md ├── aria2-1.33.1-win-64bit-build1.zip └── aria2_conf.zip /Ci-Aria2百度云盘增强版.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name Ci-Aria2百度云盘增强版 3 | // @namespace https://github.com/CiChui/Ci-Aria2BDY/ 4 | // @version 1.2.3 5 | // @description 百度云极速下载,百度网盘文件直链提取, 支持一键发送至Aria2进行下载,支持路由器远程下载,支持NAS设备远程下载 6 | // @author CiChui 7 | // @license MIT 8 | // @supportURL https://github.com/CiChui/Ci-Aria2BDY/issues 9 | // @date 04/11/2018 10 | // @modified 09/05/2018 11 | // @match *://pan.baidu.com/disk/home* 12 | // @match *://yun.baidu.com/disk/home* 13 | // @match *://pan.baidu.com/s/* 14 | // @match *://yun.baidu.com/s/* 15 | // @match *://pan.baidu.com/share/link?* 16 | // @match *://yun.baidu.com/share/link?* 17 | // @match *://eyun.baidu.com/s/* 18 | // @match *://eyun.baidu.com/enterprise/* 19 | // @match *://aria2.me/webui-aria2/* 20 | // @match *://aria2.me/aria-ng/* 21 | // @run-at document-end 22 | // @grant unsafeWindow 23 | // @grant GM_addStyle 24 | // @grant GM_info 25 | // @grant GM_xmlhttpRequest 26 | // @require https://cdn.bootcss.com/jquery/1.7.1/jquery.min.js 27 | // @require https://cdn.bootcss.com/clipboard.js/1.5.16/clipboard.min.js 28 | // @require https://cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.min.js 29 | // ==/UserScript== 30 | 31 | (function(require, define, Promise) { 32 | 'use strict'; 33 | //获取URL参数 34 | var request = function (name,encode) { 35 | var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); 36 | var r = window.location.search.substr(1).match(reg); 37 | if (r != null){ 38 | if (encode == "unescape") { 39 | return unescape(r[2]); 40 | } 41 | return decodeURI(r[2],unescape); 42 | } 43 | return null; 44 | }; 45 | var rpc = request("rpc"); 46 | if(window.location.host == "aria2.me" && rpc) 47 | { 48 | rpc = unescape(rpc); 49 | rpc = window.atob(rpc||""); 50 | if(window.location.href.indexOf("webui-aria2")>0) 51 | { 52 | $.cookie("aria2conf",rpc); 53 | window.location.href = "/webui-aria2"; 54 | } 55 | else if(window.location.href.indexOf("aria-ng")>0){ 56 | localStorage.setItem("AriaNg.Options", rpc); 57 | window.location.href = "/aria-ng"; 58 | } 59 | return; 60 | } 61 | unsafeWindow.api = function(data, callback) { 62 | var ctx = require('system-core:context/context.js').instanceForSystem; 63 | if (data === undefined) data = new Object(); 64 | var aria2addr = window.localStorage ? localStorage.getItem("aria2addr") : Cookie.read("aria2addr"); 65 | if (!aria2addr) { 66 | aria2addr = "127.0.0.1"; 67 | if (window.localStorage) { 68 | localStorage.setItem("aria2addr", aria2addr); 69 | } else { 70 | Cookie.write("aria2addr", aria2addr); 71 | } 72 | } 73 | else if(aria2addr.indexOf("http://") == -1 && aria2addr.indexOf("https://") == -1){ 74 | aria2addr = "http://" + aria2addr; 75 | } 76 | var aria2port = window.localStorage ? localStorage.getItem("aria2port") : Cookie.read("aria2port"); 77 | if (!aria2port) { 78 | aria2port = "6800"; 79 | if (window.localStorage) { 80 | localStorage.setItem("aria2port", aria2port); 81 | } else { 82 | Cookie.write("aria2port", aria2port); 83 | } 84 | } 85 | var aria2rpc = window.localStorage ? localStorage.getItem("aria2rpc") : Cookie.read("aria2rpc"); 86 | if (!aria2rpc) { 87 | aria2rpc = "jsonrpc"; 88 | if (window.localStorage) { 89 | localStorage.setItem("aria2rpc", aria2rpc); 90 | } else { 91 | Cookie.write("aria2rpc", aria2rpc); 92 | } 93 | } 94 | var aria2token = window.localStorage ? localStorage.getItem("aria2token") : Cookie.read("aria2token"); 95 | if(!aria2token){ 96 | aria2token = ""; 97 | if (window.localStorage) { 98 | localStorage.setItem("aria2token", aria2token); 99 | } else { 100 | Cookie.write("aria2token", aria2token); 101 | } 102 | } 103 | aria2token = "token:"+aria2token; 104 | //$(data.params).unshift(aria2token); 105 | data.params.splice(0,0,aria2token); 106 | ctx.ui.tip({ mode: 'success', msg: '正在发送任务到' + aria2addr + ':' + aria2port + '/' + aria2rpc }); 107 | GM_xmlhttpRequest({ 108 | url: aria2addr + ':' + aria2port + '/' + aria2rpc, 109 | method: 'POST', 110 | data: JSON.stringify(data), 111 | dataType: 'json', 112 | success: function(ret) { 113 | ctx.ui.tip({ mode: 'success', msg: 'Ci-Aria2BDY: Aria2请求发送成功!' }); 114 | callback(ret); 115 | }, 116 | error: function(ret) { 117 | console.error(ret); 118 | ctx.ui.tip({ mode: 'caution', msg: 'Ci-Aria2BDY: 内部错误,请刷新页面, 若无效需重启Aria2', autoClose: false, hasClose: true }); 119 | }, 120 | timeout: function(ret) { 121 | console.error("request timeout"); 122 | ctx.ui.tip({ mode: 'caution', msg: 'Ci-Aria2BDY: 请求超时,请重启Aria2', autoClose: false, hasClose: true }); 123 | } 124 | }); 125 | }; 126 | unsafeWindow.aria2down = function(urls, filename) { 127 | //alert(urls); 128 | urls = urls.split('|'); 129 | filename = filename.split('|'); 130 | //var thsize = thread; 131 | for (var i in urls) { 132 | var url = urls[i]; 133 | var output = filename[i]; 134 | var parts = url.split('\t'); 135 | console.log(parts); 136 | if (parts.length > 1) { 137 | url = parts[0]; 138 | output = parts[1]; 139 | } 140 | var ids = Math.round(Math.random()*10000000); 141 | var options = { 142 | params: [ 143 | [ 144 | url 145 | ], 146 | { 147 | out: output 148 | } 149 | ], 150 | jsonrpc: "2.0", 151 | id: ids, 152 | method: "aria2.addUri" 153 | }; 154 | api(options, 155 | function() { 156 | setTimeout(refresh, 1000); 157 | }); 158 | } 159 | }; 160 | function showError(msg) { 161 | GM_addStyle('#errorDialog{position: fixed;top: 76.5px; bottom: auto; left: 423px; right: auto;background: #fff;border: 1px solid #ced1d9;border-radius: 4px;box-shadow: 0 0 3px #ced1d9;color: black;word-break: break-all;display: block;width: 520px;padding: 10px 20px;z-index: 9999;}#errorDialog h3{border-bottom: 1px solid #ced1d9;font-size: 1.5em;font-weight: bold;}'); 162 | var $; 163 | try { 164 | $ = require('base:widget/libs/jquerypacket.js'); 165 | } catch (e) { 166 | var div = document.createElement('div'); 167 | $ = function(str) { 168 | div.innerHTML = str; 169 | div.onclick = function() { this.remove(); }; 170 | return $; 171 | }; 172 | $.on = function() { 173 | return { appendTo: function() { document.body.appendChild(div); } }; 174 | }; 175 | } 176 | var $dialog = $('
' + 177 | '

Ci-Aria2BDY:程序异常

' + 178 | '

请尝试更新脚本或复制以下信息提交issue

' + 179 | '

Exception: ' + msg + '

' + 180 | '

Script Ver: ' + GM_info.script.version + '

' + 181 | '

TemperMonkey Ver: ' + GM_info.version + '

' + 182 | '

UA: ' + navigator.userAgent + '

' + 183 | '

关闭
'); 184 | $dialog.on('click', '.close', function(event) { 185 | $dialog.remove(); 186 | }).appendTo(document.body); 187 | } 188 | define('Ci-Aria2BDY:pageInfo', function(require) { 189 | var url = location.href; 190 | var currentPage = 'pan'; 191 | var matchs = { 192 | '.*://pan.baidu.com/disk/home.*': 'pan', 193 | '.*://yun.baidu.com/disk/home.*': 'pan', 194 | '.*://pan.baidu.com/s/.*': 'share', 195 | '.*://yun.baidu.com/s/.*': 'share', 196 | '.*://pan.baidu.com/share/link?.*': 'share', 197 | '.*://yun.baidu.com/share/link?.*': 'share', 198 | '.*://eyun.baidu.com/s/.*': 'enterprise', 199 | '.*://eyun.baidu.com/enterprise/.*': 'enterprise' 200 | }; 201 | var PAGE_CONFIG = { 202 | pan: { 203 | prefix: 'function-widget-1:', 204 | containers: ['.g-button:has(.icon-download):visible'], 205 | style: function() { 206 | } 207 | }, 208 | share: { 209 | prefix: 'function-widget-1:', 210 | containers: [ 211 | '.KKtwaH .x-button-box>.g-button:has(.icon-download)', 212 | '.module-share-top-bar .x-button-box>.g-button:has(.icon-download)' 213 | ], 214 | style: function() { 215 | var styleList = [ 216 | '.KPDwCE .QxJxtg{z-index: 2;}', 217 | '.module-share-header .slide-show-right{width: auto;}', 218 | '.Ci-Aria2BDY-dropdown-button.g-dropdown-button.button-open .menu{z-index:41;}', 219 | '.module-share-header .slide-show-header h2{width:230px;}', 220 | '.KPDwCE .xGLMIab .g-dropdown-button.Ci-Aria2BDY-dropdown-button{margin: 0 5px;}' 221 | ]; 222 | GM_addStyle(styleList.join('')); 223 | } 224 | }, 225 | enterprise: { 226 | prefix: 'business-function:', 227 | containers: ['.button-box-container>.g-button:has(:contains("下载"))'], 228 | style: function() { 229 | var styleList = [ 230 | '.Ci-Aria2BDY-dropdown-button .icon-download{background-image: url(/box-static/business-function/infos/icons_z.png?t=1476004014313);}', 231 | '.Ci-Aria2BDY-dropdown-button .g-button:hover .icon-download{background-position: 0px -34px;}' 232 | ]; 233 | GM_addStyle(styleList.join('')); 234 | } 235 | } 236 | }; 237 | for (var match in matchs) { 238 | if (new RegExp(match).test(url) === true) { 239 | currentPage = matchs[match]; 240 | } 241 | } 242 | return PAGE_CONFIG[currentPage]; 243 | }); 244 | 245 | define('Ci-Aria2BDY:downloadBtnInit', function(require) { 246 | var ctx = require('system-core:context/context.js').instanceForSystem; 247 | var $ = require('base:widget/libs/jquerypacket.js'); 248 | var pageInfo = require('Ci-Aria2BDY:pageInfo'); 249 | var prefix = pageInfo.prefix; 250 | var dServ = null; 251 | require.async(prefix + 'download/service/dlinkService.js', function(dlinkService) { 252 | dServ = dlinkService; 253 | }); 254 | 255 | var menu = [{ 256 | title: 'CiAria2-下载', 257 | 'click': function() { 258 | var fetchDownLinks = require('Ci-Aria2BDY:fetchDownLinks.js'); 259 | fetchDownLinks.start(ctx, dServ); 260 | }, 261 | availableProduct: ['pan', 'share', 'enterprise'] 262 | }, { 263 | title: 'CiAria2-压缩下载', 264 | 'click': function() { 265 | alert("只能选择单个文件压缩下载,或指定文件夹下载!\n此功能极不稳定,后续版本中不再维护。") 266 | var fetchDownLinks = require('Ci-Aria2BDY:fetchDownLinks.js'); 267 | fetchDownLinks.start(ctx, dServ, true); 268 | }, 269 | availableProduct: ['pan', 'share', 'enterprise'] 270 | },{ 271 | title: 'CiAria2-下载设置', 272 | 'click': function() { 273 | var clipboard = new Clipboard('.btn'); 274 | clipboard.on('success', 275 | function(e) { 276 | dialog.hide(); 277 | }); 278 | clipboard.on('error', 279 | function(e) { 280 | dialog.hide(); 281 | }); 282 | var aria2addr = window.localStorage ? localStorage.getItem("aria2addr") : Cookie.read("aria2addr"); 283 | //alert(aria2addr); 284 | if (!aria2addr) { 285 | aria2addr = "127.0.0.1"; 286 | } 287 | //alert(aria2addr); 288 | var aria2port = window.localStorage ? localStorage.getItem("aria2port") : Cookie.read("aria2port"); 289 | if (!aria2port) { 290 | aria2port = "6800"; 291 | } 292 | var aria2rpc = window.localStorage ? localStorage.getItem("aria2rpc") : Cookie.read("aria2rpc"); 293 | if (!aria2rpc) { 294 | aria2rpc = "jsonrpc"; 295 | } 296 | var aria2token = window.localStorage ? localStorage.getItem("aria2token") : Cookie.read("aria2token"); 297 | if (!aria2token) { 298 | aria2token = "token"; 299 | } 300 | var uitype = window.localStorage ? localStorage.getItem("uitype") : Cookie.read("uitype"); 301 | if (!uitype) { 302 | uitype = "http://aria2.me/aria-ng?rpc="; 303 | } 304 | var str=uitype.match(/([^\/]*\/){3}([^\/]*)/)[2]; 305 | str = str.substring(0,str.indexOf('?')).replace("-",""); 306 | var text = '







'+ 307 | ''+ 308 | ''; 312 | var dialog = ctx.ui.confirm({ 313 | title: 'CiAria2-下载设置', 314 | body: text, 315 | sureText: '保存设置', 316 | onClose: function() { 317 | //clipboard && clipboard.destory && clipboard.destroy(); 318 | } 319 | }); 320 | console.log(dialog); 321 | dialog.buttonIns[0].dom.attr({ 322 | 'href': 'javascript:'+ 323 | 'var aria2addr = document.getElementById("aria2addr").value;'+ 324 | 'var aria2port = document.getElementById("aria2port").value;'+ 325 | 'var aria2rpc = document.getElementById("aria2rpc").value;'+ 326 | 'var aria2token = document.getElementById("aria2token").value || "";'+ 327 | 'var uitype = document.getElementById("uitype").value;'+ 328 | 'var jsonrpc=\'{"host":"\' + aria2addr.replace("https://", "").replace("http://", "") + \'","path":"/\' + aria2rpc + \'","port":\' + aria2port + \',"encrypt":\' + (aria2addr.indexOf("https://") >= 0) + \',"auth":{"token":"\' + aria2token + \'"},"directURL":""}\';'+ 329 | //'if(document.getElementById("uitype").options[document.getElementById("uitype").options.selectedIndex].text=="Aria2-WebUI")'+ 330 | 'if(document.getElementById("uitype").options[document.getElementById("uitype").options.selectedIndex].text=="Aria-NG")'+ 331 | 'jsonrpc = \'{"language":"zh_CN","title":"${downspeed}, ${upspeed} - ${title}","titleRefreshInterval":5000,"browserNotification":false,"rpcAlias":"Ci-Aria2BDY","rpcHost":"\'+JSON.parse(jsonrpc).host+\'","rpcPort":"\'+JSON.parse(jsonrpc).port+\'","rpcInterface":"jsonrpc","protocol":"\'+(JSON.parse(jsonrpc).encrypt?\'https\':\'http\')+\'","httpMethod":"POST","secret":"\'+window.btoa(JSON.parse(jsonrpc).auth.token)+\'","extendRpcServers":[],"globalStatRefreshInterval":1000,"downloadTaskRefreshInterval":1000,"afterCreatingNewTask":"task-list"}\';'+ 332 | //'else if(){}'+ 333 | 'if (window.localStorage) {'+ 334 | 'localStorage.setItem("aria2addr", aria2addr);'+ 335 | 'localStorage.setItem("aria2port", aria2port);'+ 336 | 'localStorage.setItem("aria2rpc", aria2rpc);'+ 337 | 'localStorage.setItem("aria2token", aria2token);'+ 338 | 'localStorage.setItem("uitype", uitype);'+ 339 | 'localStorage.setItem(uitype, jsonrpc);'+ 340 | '}else{'+ 341 | 'Cookie.write("aria2addr", aria2addr);'+ 342 | 'Cookie.write("aria2port", aria2port);'+ 343 | 'Cookie.write("aria2rpc", aria2rpc);'+ 344 | 'Cookie.write("aria2token", aria2token);'+ 345 | 'Cookie.write("uitype", uitype);'+ 346 | 'Cookie.write(uitype, jsonrpc);'+ 347 | '}', 348 | 'data-clipboard-action': 'copy', 349 | 'data-clipboard-target': '#aria2addr' 350 | }).addClass('btn').off(); 351 | }, 352 | availableProduct: ['pan', 'share', 'enterprise'] 353 | },{ 354 | title: 'CiAria2-下载管理', 355 | 'click': function() { 356 | var uitype=localStorage.getItem("uitype"),address=localStorage.getItem("uitype")+window.btoa(uitype); 357 | if(uitype && address){ 358 | window.open(uitype+window.btoa(localStorage.getItem(uitype)));} 359 | else{ 360 | ctx.ui.tip({ mode: 'caution', msg: '请确认下载设置!'}); 361 | } 362 | }, 363 | availableProduct: ['pan', 'share', 'enterprise'] 364 | } 365 | ]; 366 | 367 | var exDlBtnConfig = { 368 | type: 'dropdown', 369 | title: 'CiAria2-下载', 370 | resize: true, 371 | menu: menu.filter(function (btn) { 372 | var currentProduct = ctx.pageInfo.currentProduct; 373 | return ~btn.availableProduct.indexOf(currentProduct); 374 | }), 375 | icon: 'icon-download' 376 | }; 377 | var selector = pageInfo.containers.join(); 378 | $(selector).each(function(i, e) { 379 | var exDlBtn = ctx.ui.button(exDlBtnConfig); 380 | $(e).after(exDlBtn.dom.addClass('Ci-Aria2BDY-dropdown-button')); 381 | exDlBtn.resizeButtonWidth(); 382 | }); 383 | pageInfo.style(); 384 | }); 385 | 386 | define('Ci-Aria2BDY:fetchDownLinks.js', function (require, exports, module) { 387 | var $ = require('base:widget/libs/jquerypacket.js'); 388 | 389 | function start(ctx, dServ, allZip) { 390 | var selectedList = ctx.list.getSelected(); 391 | if (selectedList.length === 0) return ctx.ui.tip({ mode: 'caution', msg: '您还没有选择下载的文件' }); 392 | ctx.ui.tip({ mode: 'loading', msg: '开始请求链接...' }); 393 | 394 | var foldersList = selectedList.filter(function(e) { 395 | return e.isdir === 1; 396 | }); 397 | var filesList = selectedList.filter(function(e) { 398 | return e.isdir === 0; 399 | }); 400 | 401 | var currentProduct = ctx.pageInfo.currentProduct; 402 | 403 | if (!~['pan', 'share', 'enterprise'].indexOf(currentProduct)) { 404 | return ctx.ui.tip({ mode: 'caution', msg: '获取链接在当前页面不可用', hasClose: true, autoClose: false }); 405 | } 406 | 407 | if (filesList.length > 0 && currentProduct !== 'enterprise' && !allZip) { 408 | foldersList.unshift(filesList); 409 | } else { 410 | [].push.apply(foldersList, filesList); 411 | } 412 | 413 | var requestMethod,yunData; 414 | if (currentProduct === 'pan') { 415 | requestMethod = function(e, cb) { 416 | dServ.getDlinkPan(dServ.getFsidListData(e), allZip ? 'batch' : e.isdir === 1 ? 'batch' : 'nolimit', cb, undefined, undefined, 'POST'); 417 | }; 418 | } else if (currentProduct === 'share') { 419 | yunData = require('disk-share:widget/data/yunData.js').get(); 420 | requestMethod = function(e, cb) { 421 | dServ.getDlinkShare({ 422 | share_id: yunData.shareid, 423 | share_uk: yunData.uk, 424 | sign: yunData.sign, 425 | timestamp: yunData.timestamp, 426 | list: e, 427 | type: allZip ? 'batch' : e.isdir === 1 ? 'batch' : 'nolimit' 428 | }, cb); 429 | }; 430 | } else { 431 | yunData = require('page-common:widget/data/yunData.js').get(); 432 | requestMethod = function(e, cb) { 433 | dServ.getDlinkShare({ 434 | share_id: yunData.shareid, 435 | share_uk: yunData.uk, 436 | sign: yunData.sign, 437 | timestamp: yunData.timestamp, 438 | list: [e], 439 | isForBatch: allZip 440 | }, cb); 441 | }; 442 | } 443 | var timeout = foldersList.length === 1 ? 3e4 : 3e3; 444 | var promises = foldersList.map(function(e) { 445 | return new Promise(function(resolve, reject) { 446 | var timer = setTimeout(function() { 447 | resolve($.extend({}, e)); 448 | }, timeout); 449 | requestMethod(e, function(result) { 450 | resolve($.extend({}, e, result)); 451 | }); 452 | }); 453 | }); 454 | Promise.all(promises).then(function(result) { 455 | ctx.ui.hideTip(); 456 | var dlinks = [],filenamearr = []; 457 | var needToRetry = result.filter(function(e) { 458 | return e.errno !== 0; 459 | }); 460 | if (needToRetry.length > 0) { 461 | try { 462 | dServ.dialog.hide(); 463 | } catch (ex) {} 464 | ctx.ui.tip({ 465 | mode: 'caution', 466 | msg: needToRetry.length + '个文件请求链接失败' 467 | }); 468 | } 469 | result.filter(function(e) { 470 | return e.errno === 0; 471 | }).forEach(function(e) { 472 | if (typeof e.dlink === 'string') { 473 | var dlink = e.dlink + "&zipname=" + encodeURIComponent((e.isdir ? '【文件夹】' : '【文件】') + e.server_filename + '.zip'); 474 | dlinks.push(e.dlink && dlink); 475 | } else { 476 | [].push.apply(dlinks, (e.dlink || e.list || []).map(function(e) { 477 | return e.dlink; 478 | })); 479 | [].push.apply(filenamearr, (e.server_filename || e.list || []).map(function(e) { 480 | return e.server_filename; 481 | })); 482 | } 483 | }); 484 | if (dlinks.length === 0) return ctx.ui.tip({ mode: 'caution', msg: '失败:未获取到链接' }); 485 | var clipboard = new Clipboard('.btn'); 486 | clipboard.on('success', function(e) { 487 | ctx.ui.tip({ mode: 'success', msg: '成功' + dlinks.length + '个文件' }); 488 | e.clearSelection(); 489 | dialog.hide(); 490 | clipboard.destroy(); 491 | }); 492 | clipboard.on('error', function(e) { 493 | ctx.ui.tip({ mode: 'caution', msg: '失败' }); 494 | }); 495 | var urlnow = location.href; 496 | if(urlnow.indexOf('pan.baidu.com/disk/home') > 0 ){ 497 | ctx.ui.alert('

Ci-Aria2BDY:由于百度云文件解析策略调整
请使用"分享"功能将需要下载的文件进行分享
再前往分享链接界面导出下载

'); 498 | return false; 499 | } else if(urlnow.indexOf('yun.baidu.com/disk/home') > 0 ) { 500 | ctx.ui.alert('

Ci-Aria2BDY:由于百度云文件解析策略调整
请使用"分享"功能将需要下载的文件进行分享
再前往分享链接界面导出下载

'); 501 | return false; 502 | } else if(urlnow.indexOf('eyun.baidu.com/enterprise') > 0 ) { 503 | ctx.ui.alert('

Ci-Aria2BDY:由于百度云文件解析策略调整
请使用"分享"功能将需要下载的文件进行分享
再前往分享链接界面导出下载

'); 504 | return false; 505 | } 506 | var showurls = dlinks.join('\n'); 507 | //var showurls = showurlss.replace(/d.pcs.baidu.com/g, 'pcs.baidu.com'); 508 | var text = ''; 509 | var filenames; 510 | var foldersList = selectedList.filter(function(e) { 511 | return e.isdir === 1; 512 | }); 513 | var filesList = selectedList.filter(function(e) { 514 | return e.isdir === 0; 515 | }); 516 | result.filter(function(e) { 517 | return e.errno === 0; 518 | }).forEach(function(e) { 519 | if (e.isdir === 1) { 520 | //alert('isdir'); 521 | filenamearr = []; 522 | //alert('nodir'); 523 | for (var i = 0; i < foldersList.length; i++) { 524 | var fname = foldersList[i]['server_filename']; 525 | var ffname = fname.replace(/|/g, ''); 526 | var fffname = ('【文件夹】' + ffname + '.zip'); 527 | filenamearr.push(fffname); 528 | } 529 | filenames = filenamearr.join('|'); 530 | } else { 531 | // if(filenamearr.length===0){ 532 | // filenamearr = []; 533 | // for (var a = 0; a < filesList.length; a++) { 534 | // var ffffname = filesList[a]['server_filename'].replace(/|/g, ''); 535 | // filenamearr.push(ffffname); 536 | // } 537 | // } 538 | filenames = filenamearr.join('|'); 539 | } 540 | }); 541 | //alert(filenames); 542 | var urls = dlinks.join('|'); 543 | //var urls = urlss.replace(/d.pcs.baidu.com/g, 'pcs.baidu.com'); 544 | //alert(urls); 545 | var dialog = ctx.ui.confirm({ 546 | title: 'Aria2下载', 547 | body: text, 548 | sureText: '发送到Aria2下载', 549 | onClose: function() { 550 | //clipboard && clipboard.destory && clipboard.destroy(); 551 | } 552 | }); 553 | dialog.buttonIns[0].dom.attr({ 554 | 'href': "javascript:window.aria2down('" + urls + "', '" + filenames + "');", 555 | 'data-clipboard-action': 'copy', 556 | 'data-clipboard-target': '#bar' 557 | }).addClass('btn').off(); 558 | dialog.buttonIns[1].dom[0].href = "javascript:window.open('" + urls + "', '" + filenames + "')"; 559 | dialog.buttonIns[1].dom[0].innerHTML='立即下载'; 560 | }).catch(function(e) { 561 | showError(e); 562 | }); 563 | }; 564 | module.exports = { 565 | start: start 566 | }; 567 | }); 568 | 569 | define('Ci-Aria2BDY:pluginInit.js', function(require) { 570 | var ctx = require('system-core:context/context.js').instanceForSystem; 571 | var $ = require('base:widget/libs/jquerypacket.js'); 572 | var pageInfo = require('Ci-Aria2BDY:pageInfo'); 573 | var prefix = pageInfo.prefix; 574 | require.async(prefix + 'download/util/context.js', function(e) { 575 | e.getContext = function() { 576 | return ctx; 577 | }; 578 | }); 579 | var dmPromise = new Promise(function(resolve, reject) { 580 | $(unsafeWindow).on('load', function() { 581 | reject('downloadManager.js'); 582 | }); 583 | 584 | resolve(); 585 | require.async(prefix + 'download/service/downloadManager.js', function(dm) { 586 | dm.MODE_PRE_INSTALL = dm.MODE_PRE_DOWNLOAD; 587 | resolve(); 588 | }); 589 | }); 590 | var gjcPromise = new Promise(function(resolve, reject) { 591 | $(unsafeWindow).on('load', function() { 592 | reject('guanjiaConnector.js'); 593 | }); 594 | require.async(prefix + 'download/service/guanjiaConnector.js', function(gjC) { 595 | gjC.init = function() { 596 | setTimeout(function() { 597 | ctx.ui.tip({ mode: 'caution', msg: '检测到正在调用云管家,若脚本失效,请检查更新或提交issue', hasClose: true, autoClose: false }); 598 | }, 5e3); 599 | }; 600 | resolve(); 601 | }); 602 | }); 603 | var ddsPromise = new Promise(function(resolve, reject) { 604 | $(unsafeWindow).on('load', function() { 605 | reject('downloadDirectService.js'); 606 | }); 607 | resolve(); 608 | /*require.async(prefix + 'download/service/downloadDirectService.js', function(dDS) { 609 | var $preDlFrame = null; 610 | var _ = dDS.straightforwardDownload; 611 | if (typeof _ !== 'function') return; 612 | dDS.straightforwardDownload = function() { 613 | ctx.ui.tip({ mode: 'loading', msg: '正在开始下载...' }); 614 | if ($preDlFrame === null) { 615 | setTimeout(function() { 616 | var $frame = $('#pcsdownloadiframe'); 617 | if ($frame.length === 0) return; 618 | $frame.ready(function(event) { ctx.ui.hideTip(); }); 619 | $preDlFrame = $frame; 620 | }, 1e3); 621 | } 622 | _.apply(dDS, arguments); 623 | }; 624 | resolve(); 625 | });*/ 626 | }); 627 | Promise.all([dmPromise, gjcPromise, ddsPromise]).then(function() { 628 | try { 629 | require('Ci-Aria2BDY:downloadBtnInit'); 630 | ctx.ui.tip({ mode: 'success', msg: 'Ci-Aria2BDY: 插件加载成功' }); 631 | } catch (e) { 632 | ctx.ui.tip({ mode: 'caution', msg: 'Ci-Aria2BDY: 插件加载成功,按钮初始化失败', autoClose: false, hasClose: true }); 633 | } 634 | }).catch(function(msg) { 635 | if(document.querySelector('#share_nofound_des') !== null) return; 636 | showError(msg + '加载失败'); 637 | }); 638 | }); 639 | try { 640 | require('Ci-Aria2BDY:pluginInit.js'); 641 | } catch (ex) { showError(ex); } 642 | })(unsafeWindow.require, unsafeWindow.define, unsafeWindow.Promise); 643 | -------------------------------------------------------------------------------- /CiAria2BDY使用说明.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiChui/Ci-Aria2BDY/12572c81bc4d84b9c7d966ae62729b1c9d823247/CiAria2BDY使用说明.txt -------------------------------------------------------------------------------- /HideRun.vbs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiChui/Ci-Aria2BDY/12572c81bc4d84b9c7d966ae62729b1c9d823247/HideRun.vbs -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Ci-Aria2BDY 2 | ### 基于CX-百度云盘脚本修改 3 | >可用于远程下载百度云盘共享文件至路由器存储设备,或家庭NAS存储设备,或调用本地Aria2加速下载文件到本地磁盘 4 | >1.增加Aria2远程下载支持 5 | >2.增加服务器RPC令牌设置提升安全性 6 | >3.增加本机下载支持 7 | >4.增加Aria2远程HTTPS接口支持 8 | >5.增加下载进度查看,直接在网页显示Aria2下载进度 9 | 10 | ### 插件使用教程: 11 | >1.下载对应浏览器的油猴插件http://tampermonkey.net/ 12 | >2.下载后拖动插件到浏览器中,有的浏览器需要打开应用中心或扩展中心页面才能安装(如果你的浏览器支持插件中心可搜索tampermonkey直接下载安装,可忽略前两步) 13 | >3.安装完插件后打开https://greasyfork.org/zh-CN/scripts/40496-ci-aria2 14 | >4.点击安装后弹出新页面,继续点击安装即可 15 | >5.安装完成后可以在百度云文件分享页面看到【CiAria2-下载】按钮 16 | >6.鼠标移上去显示下拉菜单,点击【CiAria2-下载设置】,填入你的Aria2 RPC配置后保存,如果RPC采用https协议需要在地址前指定https:// 17 | >7.此时再点击【CiAria2-下载】可发送下载任务到你的Aria2服务器 18 | >8.你也可以点击【CiAria2-下载管理】打开Web管理界面查看任务下载进度 19 | 20 | ### Aria2客户端使用教程(Ci-Aria2BDY链接: https://pan.baidu.com/s/1x6Ln3z4M6h83otkgInkIKw 密码: 4e13) 21 | >1.从网盘分享Aria2文件夹内下载最新软件,并解压(路径最好不要包含中文) 22 | >2.从网盘分享下载aria2_conf.zip并解压到Aria2的目录(默认下载到Aria2目录下的/Download文件夹内) 23 | >3.下载HideRun.vbs放到Aria2目录,用于后台运行Aria2(如果你会使用命令启动,无需下载) 24 | >4.双击运行HideRun.vbs 25 | 26 | 引用来源,你也可以自行下载 27 | Aria2下载地址:https://github.com/aria2/aria2/releases 28 | Aria2配置下载地址:http://www.pc6.com/softview/SoftView_506016.html 29 | -------------------------------------------------------------------------------- /aria2-1.33.1-win-64bit-build1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiChui/Ci-Aria2BDY/12572c81bc4d84b9c7d966ae62729b1c9d823247/aria2-1.33.1-win-64bit-build1.zip -------------------------------------------------------------------------------- /aria2_conf.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiChui/Ci-Aria2BDY/12572c81bc4d84b9c7d966ae62729b1c9d823247/aria2_conf.zip --------------------------------------------------------------------------------