Easy offline | 一键离线下载

在种子或视频链接旁添加按钮离线下载至网盘 | Easy stream torrents or videos from cloud storage

当前为 2016-08-28 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Easy offline | 一键离线下载
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.9
  5. // @description 在种子或视频链接旁添加按钮离线下载至网盘 | Easy stream torrents or videos from cloud storage
  6. // @author Hoothin
  7. // @include http*://pan.baidu.com/*
  8. // @include http://115.com/*
  9. // @include https://www.furk.net/*
  10. // @include https://www.seedr.cc/*
  11. // @match http*://*/*
  12. // @grant GM_setValue
  13. // @grant GM_getValue
  14. // @require http://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js
  15. // ==/UserScript==
  16.  
  17. function include(Things,obj) {
  18. for (var i = Things.length - 1; i >= 0; i--) {
  19. if ($(Things[i]).attr('href')===$(obj).attr('href')){
  20. return true;
  21. }
  22. }
  23. }
  24.  
  25. function setCss(){
  26. $('head').append('<style>a.whx-a{ background-repeat: no-repeat;background-position: center; display: inline-block;margin-left:5px;height: 20px;width: 20px;background-size: 20px;border-radius: 50%;background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAAARVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADc6ur3AAAAFnRSTlMAYM5vMOA/ENGegK2olI6G1b97Z0sXENA+jAAAAKFJREFUKM+FklkSxCAIRHFfss3K/Y86iQSDVqzpH7FfgQpCVfAmGx+gl9JI0qrxrcNLzooEbKUG4EKWdkCiDRV0N0RTrZ5wvdgTTgp4SzCAHxAPZkAM5GOJWuuT7FE5OVPOBFLTYb3Oc2YB5uJ8+G6pgkTGt74ntcCJHiwFLHw10Tdc93jlGXGvSRtsHNpuPs+/o1ODfxAtSL0f7HPC+L/9AF60G3QxO1UaAAAAAElFTkSuQmCC");vertical-align: middle;}</style>');
  27. }
  28.  
  29. function getAllEnableUrl() {
  30. var rawnodes = $('a[href^="magnet"],[href^="ed2k://|file"],[href$=".torrent"],[href$=".mp4"],[href$=".rar"],[href$=".7z"],[href$=".zip"],[href$=".rmvb"],[href$=".mkv"]').get();
  31. var disableUrl=[".torrentkitty.","bt.box.n0808.com"];
  32. var nodes = [];
  33. if(rawnodes.length>0){
  34. for (var i = 0; i <rawnodes.length; i++) {
  35. var disable = false;
  36. var curNode = rawnodes[i];
  37. for(var j = 0; j < disableUrl.length; j++){
  38. var temp = disableUrl[j];
  39. if($(curNode)[0]["href"].indexOf(temp)!=-1){
  40. disable = true;
  41. break;
  42. }
  43. }
  44. if(disable)continue;
  45. if(!include(nodes,curNode)){
  46. nodes.push(curNode);
  47. }
  48. }
  49. }
  50. if(nodes.length>0){
  51. var codeList = [];
  52. var listLen = 0;
  53. listLen = nodes.length;
  54. setCss();
  55. if (listLen !== 0) {
  56. for (i = 0; i < listLen; i++) {
  57. var curNode = nodes[i];
  58. var url = $(curNode)[0]["href"];
  59. $(curNode).after($(curNode).clone().addClass('whx-a').css("background-color","#5e5eff").css("outline","none").empty().attr("target","_blank").attr("url",url).attr("title","115" ).attr("href", "http://115.com/?tab=offline&mode=wangpan").click(function (event) {GM_setValue("url",$(event.target).attr("url"));}));
  60. $(curNode).after($(curNode).clone().addClass('whx-a').css("background-color","#3BEBFF").css("outline","none").empty().attr("target","_blank").attr("url",url).attr("title","Furk" ).attr("href", "https://www.furk.net/users/files/add").click(function (event) {GM_setValue("url",$(event.target).attr("url"));}));
  61. $(curNode).after($(curNode).clone().addClass('whx-a').css("background-color","#F44336").css("outline","none").empty().attr("target","_blank").attr("url",url).attr("title","Seedr" ).attr("href", "https://www.seedr.cc/files").click(function (event) {GM_setValue("url",$(event.target).attr("url"));}));
  62. $(curNode).after($(curNode).clone().addClass('whx-a').css("background-color","#ffffff").css("outline","none").empty().attr("target","_blank").attr("url",url).attr("title","BaiduPan" ).attr("href", "http://pan.baidu.com/disk/home").click(function (event) {GM_setValue("url",$(event.target).attr("url"));}));
  63. }
  64. }
  65. $('.whx-a').css('b','d');
  66. }
  67. }
  68.  
  69. var i=0;
  70. var t=window.setInterval(function() {
  71. var curlink;
  72. if (location.href.indexOf("furk.net/users/files/add") != -1){
  73. window.clearInterval(t);
  74. curlink = GM_getValue('url');
  75. if(curlink){
  76. setTimeout(function() {
  77. $('#url').val(curlink);
  78. GM_setValue('url', '');
  79. $(":submit[value='Add download']").click();
  80. }, 500);
  81. }
  82. }else if(location.href.indexOf("seedr.cc/files") != -1){
  83. if($('#upload-button').css("display") != "none"){
  84. window.clearInterval(t);
  85. curlink = GM_getValue('url');
  86. if(curlink){
  87. setTimeout(function() {
  88. $(':text[name="torrent"]').val(curlink);
  89. GM_setValue('url', '');
  90. $('#upload-button').click();
  91. }, 500);
  92. }
  93. }
  94. }else if(location.href.indexOf("pan.baidu.com/disk/home") != -1){
  95. window.clearInterval(t);
  96. curlink = GM_getValue('url');
  97. if(curlink){
  98. document.querySelector('.g-button[data-button-id=b13]').click();
  99. setTimeout(function() {
  100. document.querySelector('#_disk_id_2').click();
  101. setTimeout(function() {
  102. document.querySelector('#share-offline-link').value = curlink;
  103. document.querySelector('.g-button[data-button-id=b63]').click();
  104. }, 500);
  105. }, 1500);
  106. GM_setValue('url', '');
  107. }
  108. }else if(location.href.indexOf("115.com/?tab=offline&mode=wangpan") != -1){
  109. window.clearInterval(t);
  110. curlink = GM_getValue('url');
  111. if(curlink){
  112. var rsc = setInterval(function() {
  113. if (document.readyState == 'complete') {
  114. clearInterval(rsc);
  115. setTimeout(function() {
  116. Core['OFFL5Plug'].OpenLink();
  117. setTimeout(function() {
  118. $('#js_offline_new_add').val(curlink);
  119. }, 300);
  120. }, 1000);
  121. }
  122. }, 400);
  123. GM_setValue('url', '');
  124. }
  125. }else if((i===0 && $('a[href^="magnet"],[href^="ed2k://|file"],[href$=".torrent"],[href$=".mp4"],[href$=".rar"],[href$=".7z"],[href$=".zip"],[href$=".rmvb"],[href$=".mkv"]').length>0)||i>20){
  126. window.clearInterval(t);
  127. getAllEnableUrl();
  128. }else{
  129. i++;
  130. }
  131. }, 500);