Easy offline | 一键离线下载

在种子或其他下载链接旁添加按钮,点击自动离线下载至网盘 | Easy stream torrents or videos from cloud storage

当前为 2016-10-07 提交的版本,查看 最新版本

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