|
7 | 7 | // @description:zh-TW 一鍵離綫下載 - 一鍵自動將磁鏈、bt種子或其他下載資源離綫下載至網盤 |
8 | 8 | // @namespace https://github.com/hoothin/UserScripts/tree/master/Easy%20offline |
9 | 9 | // @require http://code.jquery.com/jquery-1.7.2.min.js |
10 | | -// @version 1.9.39.3 |
| 10 | +// @version 1.9.40 |
11 | 11 | // @author Hoothin |
12 | 12 | // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAQlBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////8IX9KGAAAAFXRSTlMAwT7hFahN0LZWJgqIavB7YJuRdDPJsaCPAAAA6ElEQVQ4y8WRW5aEIAxEDUGgAQUftf+tjgYOjcPMb3d96Im5pkIxfVgmOuY5mX/afkYVqb/6EXDGh+CNA7axvwOvZrUiDfalX6UY5y+AkZ687Ut9WNgw9SLYQ3cDYfNz4kIAq2Z/wYN0AiSRQN16iroMXnD3K2F+f1oBLK2ckeWpmjFEsc2Tfxn6ndUBLGgjNVgAX8oNa56AO8dKeAEccnW89ruB6bQVWGTL2IcmQJOTdXSdOAIRrMtxsekR8AQ5XyHARLTrAhi6xH0iYWfcOguQpeAtPJJXSvlqEdSl4XaGHb4HEE0f1w+Jcw2XCZjSwgAAAABJRU5ErkJggg== |
13 | 13 | // @match *://*/* |
|
386 | 386 | }, |
387 | 387 | bgImg:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAA9lBMVEUAAACgoqOipKUAAAC4ubq1traXl5jX19g9PT4GBga2t7ixsrOur7Cmp6jMzM1+f39ZWVpnZ2eChIXMzc3BwcKvsrLGxsacnZ3f399zdHS9vr61trZZW1upq6vIysq7vb2nqKliZGTS09O6vLzg4OC2uLhQUVHi4uK+v79OTk4hISHT1NQZGRnf4OCPkpKsra3KysxmZ2d+f3/y8vOUlZW+vr+2tridnp/Z2dmAgYJ4enptbm5YWVn39/fv7/DDw8Td3d7U1dXU1NTOztC4ubuoqamlpaWcnJyYmJp6fHxwcXFTVVX29/bHyMnHx8e3t7qgoaGHiYm1AxJpAAAAL3RSTlMAHhgF4NbW2jQU4uDg3sybVDUkHhcF6Ojk5ODc2dfJycPDra17ezkuLiUlIRUREf6sWL0AAAC0SURBVBjTjY9HEoJAAAQXVwVzAMw5Z5YMgoBizv7/M7JwoLw5t+lD1wzAYVcEPaeXLAgyHvTazTpJtvrDCe5M1nUReiiK/ERZxgNEVLYdy1GFz1uuET54IfGucTq/5qIYRGIKEjcaJ3ggFsEgrp/tnSwZJi/EMSDSqqQeJeNmXk+pwLFHlrg9CPzl16H/7ygmQ0eyCACkMuGODAUBTORzHbJSKlcb3Vw+AfE9uJgWCiNq5rcvfNwgjdumYdQAAAAASUVORK5CYII=" |
388 | 388 | }, |
389 | | - PikPak:{ |
390 | | - regex:/mypikpak\.com/, |
391 | | - url:"http://user.mypikpak.com/", |
392 | | - bgColor:"2265ff", |
393 | | - noTxt:true, |
394 | | - linkRegExp: /^magnet:\?xt|^PikPak:\/\/|\.(torrent|mp4|mp3|rar|7z|zip|rmvb|mkv|avi|iso)$/i, |
395 | | - directUrl:function(offUrl){ |
396 | | - //此段代码引用自 mumuchenchen 大佬的 PikPak 保存助手 https://greasyfork.org/scripts/435219 |
397 | | - //mumuchenchen 的第三方 Pikpak 网页客户端 推荐大家前往 fork https://github.com/mumuchenchen/pikpak |
398 | | - storage.getItem("pikpakUserInfo",info=>{ |
399 | | - if(!info){ |
400 | | - let userName=prompt(i18n("userName")); |
401 | | - if(!userName)return; |
402 | | - let userPass=prompt(i18n("userPass")); |
403 | | - if(!userPass)return; |
404 | | - info={userName:userName,userPass:userPass}; |
405 | | - storage.setItem("pikpakUserInfo",info); |
406 | | - } |
407 | | - var postUrl=()=>{ |
408 | | - let postData; |
409 | | - if(offUrl.indexOf('PikPak://') === 0) { |
410 | | - const urlData = offUrl.substring(9).split('|') |
411 | | - postData = { |
412 | | - kind: "drive#file", |
413 | | - name: urlData[0], |
414 | | - size: urlData[1], |
415 | | - hash: urlData[2], |
416 | | - upload_type: "UPLOAD_TYPE_RESUMABLE", |
417 | | - objProvider: { |
418 | | - provider: "UPLOAD_TYPE_UNKNOWN" |
419 | | - } |
420 | | - } |
421 | | - } else { |
422 | | - postData = { |
423 | | - kind: "drive#file", |
424 | | - name: "", |
425 | | - upload_type: "UPLOAD_TYPE_URL", |
426 | | - url: { |
427 | | - url: offUrl |
428 | | - }, |
429 | | - params: {"from":"file"}, |
430 | | - folder_type: "DOWNLOAD" |
431 | | - } |
432 | | - } |
433 | | - _GM_xmlhttpRequest({ |
434 | | - method: 'POST', |
435 | | - url: 'https://api-drive.mypikpak.com/drive/v1/files', |
436 | | - data: JSON.stringify(postData), |
437 | | - headers: { |
438 | | - authorization: info.loginInfo.token_type + ' ' + info.loginInfo.access_token |
439 | | - }, |
440 | | - onload: (res) => { |
441 | | - if(res.status === 200) { |
442 | | - _GM_notification("Task OK"); |
443 | | - } else if(res.status === 401) { |
444 | | - info.loginInfo=null; |
445 | | - storage.setItem("pikpakUserInfo",info); |
446 | | - const msg = JSON.parse(res.responseText).error_description; |
447 | | - alert(msg); |
448 | | - } else if(res.status === 400) { |
449 | | - const msg = JSON.parse(res.responseText).error_description; |
450 | | - alert(msg); |
451 | | - } else if(res.status === 403) { |
452 | | - const msg = JSON.parse(res.responseText).error_description; |
453 | | - alert(msg); |
454 | | - } |
455 | | - }, |
456 | | - onerror: (e) => { |
457 | | - _GM_notification(i18n("postError") + (e.statusText||e.error)); |
458 | | - }, |
459 | | - ontimeout: (e) => { |
460 | | - _GM_notification(i18n("postError") + (e.statusText||e.error)); |
461 | | - } |
462 | | - }) |
463 | | - }; |
464 | | - if(!info.loginInfo || info.loginInfo.expires < new Date().getTime()){ |
465 | | - _GM_xmlhttpRequest({ |
466 | | - method: 'POST', |
467 | | - url: 'https://user.mypikpak.com/v1/auth/token', |
468 | | - data: JSON.stringify({ |
469 | | - "grant_type": "password", |
470 | | - "client_id": "YNxT9w7GMdWvEOKa", |
471 | | - "client_secret": "dbw2OtmVEeuUvIptb1Coyg", |
472 | | - "password": info.userPass, |
473 | | - "username": info.userName |
474 | | - }), |
475 | | - headers: { |
476 | | - 'user-agent': 'accessmode/ devicename/Netease_Mumu appname/android-com.pikcloud.pikpak cmd/login appid/ action_type/ clientid/YNxT9w7GMdWvEOKa deviceid/56e000d71f4660700ca974f2305171c5 refresh_token/ grant_type/ networktype/WIFI devicemodel/MuMu accesstype/ sessionid/ osversion/6.0.1 datetime/1636364470779 sdkversion/1.0.1.101600 protocolversion/200 clientversion/ providername/NONE clientip/ session_origin/ devicesign/div101.56e000d71f4660700ca974f2305171c5b94c3d4196a9dd74e49d7710a7af873d platformversion/10 usrno/null' |
477 | | - }, |
478 | | - onload: (res) => { |
479 | | - if(res.status === 200) { |
480 | | - info.loginInfo=JSON.parse(res.responseText); |
481 | | - if(!info.loginInfo.expires && info.loginInfo.expires_in){ |
482 | | - info.loginInfo.expires = new Date().getTime() + 1000 * info.loginInfo.expires_in; |
483 | | - } |
484 | | - storage.setItem("pikpakUserInfo",info); |
485 | | - postUrl(); |
486 | | - } else if(res.status === 401) { |
487 | | - storage.setItem("pikpakUserInfo",""); |
488 | | - const msg = JSON.parse(res.responseText).error_description; |
489 | | - alert(msg); |
490 | | - } else if(res.status === 400) { |
491 | | - storage.setItem("pikpakUserInfo",""); |
492 | | - const msg = JSON.parse(res.responseText).error_description; |
493 | | - alert(msg); |
494 | | - } else if(res.status === 403) { |
495 | | - storage.setItem("pikpakUserInfo",""); |
496 | | - const msg = JSON.parse(res.responseText).error_description; |
497 | | - alert(msg); |
498 | | - } |
499 | | - }, |
500 | | - onerror: (e) => { |
501 | | - _GM_notification(i18n("postError") + (e.statusText||e.error)); |
502 | | - }, |
503 | | - ontimeout: (e) => { |
504 | | - _GM_notification(i18n("postError") + (e.statusText||e.error)); |
505 | | - } |
506 | | - }) |
507 | | - }else{ |
508 | | - postUrl(); |
509 | | - } |
510 | | - }); |
511 | | - return false; |
512 | | - }, |
513 | | - bgImg:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAYFBMVEUAAAArbP5MdNFMdNIrbP4sbP1QdctQdcwvbv////8dYf8sbP9smP/09/8qaf/V4f8iZf/u8/+lwP+duv+UtP+PsP9hkP92n/9nlP/K2v/F1v+7z/+Ytv9Wif9Aef91nv9e7pgKAAAACHRSTlMA+puT/PWHhQBB7XEAAACQSURBVBjTTY8JCsQwCEWdrjFm37p37n/LMdAJfSTgf4IoAPQf8fDpgek4N9NxnwQZJx0/w+UMNd/XV6nluqsBQbRp79Xqvd7ICBCuaHuElMJhdXEspMKGko/YA2LYXyKuiGt8Ca3rfwm052nbjILV1IyFBZFZck4xppwXQ8Srk2wQzXzcIBpDB8w0/vM4AfwACl4LKjajMX0AAAAASUVORK5CYII=" |
514 | | - }, |
515 | 389 | putio:{ |
516 | 390 | regex:/app\.put\.io/, |
517 | 391 | url:"https://app.put.io/files", |
|
881 | 755 | defaultReg=new RegExp(defaultReg, 'i'); |
882 | 756 | addCustomSites(()=>{ |
883 | 757 | storage.getItem("siteSort",v=>{ |
884 | | - siteSort=v; |
885 | | - if(!siteSort)siteSort=["baidu","yyw","furk","seedr"]; |
886 | | - siteSort.forEach(function(item) { |
887 | | - var siteConfig=sites[item]; |
888 | | - if(siteConfig){ |
889 | | - siteConfig.name=item; |
| 758 | + setTimeout(() => { |
| 759 | + if (_unsafeWindow.eoAddons) { |
| 760 | + sites = Object.assign(sites, _unsafeWindow.eoAddons); |
| 761 | + } |
| 762 | + siteSort=v; |
| 763 | + if(!siteSort)siteSort=["baidu","yyw","furk","seedr"]; |
| 764 | + siteSort.forEach(function(item) { |
| 765 | + var siteConfig=sites[item]; |
| 766 | + if(siteConfig){ |
| 767 | + siteConfig.name=item; |
| 768 | + sitesArr.push(siteConfig); |
| 769 | + } |
| 770 | + }); |
| 771 | + for(let siteName in sites){ |
| 772 | + let hasSite=false; |
| 773 | + siteSort.forEach(function(item){if(item==siteName)hasSite=true;}); |
| 774 | + if(hasSite)continue; |
| 775 | + var siteConfig=sites[siteName]; |
| 776 | + siteConfig.name=siteName; |
890 | 777 | sitesArr.push(siteConfig); |
891 | 778 | } |
892 | | - }); |
893 | | - for(let siteName in sites){ |
894 | | - let hasSite=false; |
895 | | - siteSort.forEach(function(item){if(item==siteName)hasSite=true;}); |
896 | | - if(hasSite)continue; |
897 | | - var siteConfig=sites[siteName]; |
898 | | - siteConfig.name=siteName; |
899 | | - sitesArr.push(siteConfig); |
900 | | - } |
901 | | - pageRun(); |
| 779 | + pageRun(); |
| 780 | + }, 1); |
902 | 781 | }); |
903 | 782 | }); |
904 | 783 | }); |
|
0 commit comments