一键离线下载

一键自动将磁链、bt种子或其他下载资源离线下载至网盘

目前为 2016-10-12 提交的版本。查看 最新版本

  1. // ==UserScript==
  2. // @name Easy offline
  3. // @name:zh-CN 一键离线下载
  4. // @name:zh-TW 一鍵離綫下載
  5. // @description Easy stream torrents or videos from cloud storage
  6. // @description:zh-CN 一键自动将磁链、bt种子或其他下载资源离线下载至网盘
  7. // @description:zh-TW 一鍵自動將磁鏈、bt種子或其他下載資源離綫下載至網槃
  8. // @namespace http://tampermonkey.net/
  9. // @version 1.0.13
  10. // @author Hoothin
  11. // @mail rixixi@gmail.com
  12. // @include http*://pan.baidu.com/*
  13. // @include http://115.com/*
  14. // @include https://www.furk.net/*
  15. // @include https://www.seedr.cc/*
  16. // @include http*://*/*
  17. // @grant GM_setValue
  18. // @grant GM_getValue
  19. // @require http://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js
  20. // ==/UserScript==
  21.  
  22. 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"]';
  23. var disableUrl=[".torrentkitty.","bt.box.n0808.com"];
  24. var lang = navigator.appName=="Netscape"?navigator.language:navigator.userLanguage;
  25. var i18n={};
  26. switch (lang){
  27. case "zh-CN":
  28. i18n={
  29. yyw:"115网盘",
  30. baidu:"百度网盘",
  31. furk:"Furk网盘",
  32. seedr:"Seedr网盘"
  33. };
  34. break;
  35. default:
  36. i18n={
  37. yyw:"115",
  38. baidu:"BaiduPan",
  39. furk:"Furk",
  40. seedr:"Seedr"
  41. };
  42. break;
  43. }
  44. function include(Things,obj) {
  45. for (var i = Things.length - 1; i >= 0; i--) {
  46. if ($(Things[i]).attr('href')===$(obj).attr('href')){
  47. return true;
  48. }
  49. }
  50. }
  51.  
  52. function setCss(){
  53. $('head').append('<style>a.whx-a{ display:inline-block;margin-left:5px;background-size:20px;border-radius:50%;vertical-align:middle;transition:margin-top 0.5s ease;}</style>');
  54. }
  55.  
  56. function getAllEnableUrl() {
  57. var rawnodes = $(enableUrl).get();
  58. var nodes = [];
  59. var i,x;
  60. var curNode;
  61. var parentDiv=$("<div style='display:none;position:fixed;'></div>");
  62. var offUrl;
  63. var offNodes=[];
  64. for(x=0;x<4;x++){
  65. var offNode=$("<a></a>");
  66. offNode.addClass('whx-a').css("outline","none").css("position","absolute").css("margin-top","0px").css("margin-left","0px").css("padding","0px").css("height","25px").css("width","25px").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();
  67. offNode.attr("target","_blank").click(function (event) {GM_setValue("url",offUrl);});
  68. switch(x){
  69. case 0:
  70. offNode.css("background-color","#e1e1e1").attr("title",i18n.baidu ).attr("href", "http://pan.baidu.com/disk/home");
  71. break;
  72. case 1:
  73. offNode.css("background-color","#F44336").attr("title",i18n.seedr ).attr("href", "https://www.seedr.cc/files");
  74. break;
  75. case 2:
  76. offNode.css("background-color","#3BEBFF").attr("title",i18n.furk ).attr("href", "https://www.furk.net/users/files/add");
  77. break;
  78. case 3:
  79. offNode.css("background-color","#5e5eff").attr("title",i18n.yyw ).attr("href", "http://115.com/?tab=offline&mode=wangpan");
  80. break;
  81. }
  82. offNodes.push(offNode);
  83. parentDiv.prepend(offNode);
  84. }
  85. $("body").append(parentDiv);
  86. parentDiv.mouseleave(function(e){
  87. parentDiv.css("display","none");
  88. for(var node of offNodes){
  89. node.css("margin-top","0px");
  90. }
  91. });
  92.  
  93. if(rawnodes.length>0){
  94. for (i = 0; i <rawnodes.length; i++) {
  95. var disable = false;
  96. curNode = rawnodes[i];
  97. for(var j = 0; j < disableUrl.length; j++){
  98. var temp = disableUrl[j];
  99. if($(curNode)[0].href.indexOf(temp)!=-1){
  100. disable = true;
  101. break;
  102. }
  103. }
  104. if(disable)continue;
  105. if(!include(nodes,curNode)){
  106. nodes.push(curNode);
  107. }
  108. }
  109. }
  110.  
  111. if(nodes.length>0){
  112. var codeList = [];
  113. var listLen = 0;
  114. listLen = nodes.length;
  115. setCss();
  116. if (listLen !== 0) {
  117. for (i = 0; i < listLen; i++) {
  118. curNode = nodes[i];
  119. let clone=$(curNode).clone().addClass('whx-a').css("background-color","#e1e1e1").css("outline","none").css("padding","0px").css("height","25px").css("width","25px").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();
  120. clone.mouseover(function(e){
  121. offUrl=clone.attr("href");
  122. parentDiv.css("display","block");
  123. var basePos=clone.offset();
  124. parentDiv.offset({top:basePos.top,left:basePos.left});
  125. for(var x=0;x<4;x++){
  126. offNodes[x].css("margin-top",-x*25+"px");
  127. }
  128. });
  129. $(curNode).after(clone);
  130. }
  131. }
  132. }
  133. }
  134.  
  135. var i=0;
  136. var t=window.setInterval(function() {
  137. var curlink;
  138. if (location.href.indexOf("furk.net/users/files/add") != -1){
  139. window.clearInterval(t);
  140. curlink = GM_getValue('url');
  141. if(curlink){
  142. setTimeout(function() {
  143. $('#url').val(curlink);
  144. GM_setValue('url', '');
  145. $(":submit[value='Add download']").click();
  146. }, 500);
  147. }
  148. }else if(location.href.indexOf("seedr.cc/files") != -1){
  149. if($('#upload-button').css("display") != "none"){
  150. window.clearInterval(t);
  151. curlink = GM_getValue('url');
  152. if(curlink){
  153. setTimeout(function() {
  154. $(':text[name="torrent"]').val(curlink);
  155. GM_setValue('url', '');
  156. $('#upload-button').click();
  157. }, 500);
  158. }
  159. }
  160. }else if(location.href.indexOf("pan.baidu.com/disk/home") != -1){
  161. window.clearInterval(t);
  162. curlink = GM_getValue('url');
  163. if(curlink){
  164. document.querySelector('.g-button[data-button-id=b13]').click();
  165. var bsi = setInterval(function() {
  166. var newTaskBtn = document.querySelector('#_disk_id_2');
  167. if(newTaskBtn){
  168. clearInterval(bsi);
  169. newTaskBtn.click();
  170. setTimeout(function() {
  171. document.querySelector('#share-offline-link').value = curlink;
  172. document.querySelector('.g-button[data-button-id=b65]').click();
  173. }, 500);
  174. }
  175. }, 500);
  176. GM_setValue('url', '');
  177. }
  178. }else if(location.href.indexOf("115.com/?tab=offline&mode=wangpan") != -1){
  179. window.clearInterval(t);
  180. curlink = GM_getValue('url');
  181. if(curlink){
  182. var rsc = setInterval(function() {
  183. if (document.readyState == 'complete') {
  184. clearInterval(rsc);
  185. setTimeout(function() {
  186. Core['OFFL5Plug'].OpenLink();
  187. setTimeout(function() {
  188. $('#js_offline_new_add').val(curlink);
  189. }, 300);
  190. }, 1000);
  191. }
  192. }, 400);
  193. GM_setValue('url', '');
  194. }
  195. }else if((i===0 && $(enableUrl).length>0)||i>20){
  196. window.clearInterval(t);
  197. getAllEnableUrl();
  198. }else{
  199. i++;
  200. }
  201. }, 500);