├── 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
--------------------------------------------------------------------------------