depositfiles_downloader


SUBMITTED BY: AnD888

DATE: Oct. 6, 2016, 1:39 p.m.

FORMAT: Text only

SIZE: 7.3 kB

HITS: 2052

  1. // ==UserScript==
  2. // @id depositfiles_waiter
  3. // @name depositfiles_downloader
  4. // @namespace https://openuserjs.org/scripts/Black_Sun/depositfiles_downloader
  5. // @version 5.0.1
  6. // @history 5.0.1 Изменён include, работа гарантируется только на greasemoney
  7. // @history 5.0 Добавлено автоожидание при лимите и исправлена ошибка ссылок с limit=1 на конце (issue by rayman89).
  8. // @history 4.7 Модифицировал код под Greasemonkey, т.к. Scriptish автор походу забросил.
  9. // @history 4.6 Совсем убрал jQuery из скрипта и добавил GM_safeHTMLParser, спасибо KOLANICH за наводку
  10. // @history 4.5.0.1 Updated: Новая ссылка для обновления скрипта
  11. // @history 4.5.0 Настало время ввести новую систему версий и дать грант функциям
  12. // @history 4.4 Добавлена поддержка dfiles.ru
  13. // @history 4.3 И сразу 4.3. Добавлено:Информация о просьбе подождать, и лимите подключений.
  14. // @history 4.2 Добавлено: Автоопределение страны ссылки
  15. // @history 4.1 Небольшой фикс
  16. // @history 4.0 Surprise.
  17. // @history 3.0 Переделан скрипт, теперь нажимает, добавлена инфа в табе о секундах, автоскачивание не работает, т.к. там каптча и, да, её нужно вводить :(
  18. // @history 2.8 Фикс под новый вид кода и добавлена инфа о лимите.
  19. // @history 2.7 Обновлены include
  20. // @history 2.6 Обновил код, добавил настройки и их удаления для Firefox(greasemonkey или scriptish) и Chrome(Tempermonkey), для Оперы настройки остались в коде скрипта в начале.
  21. // @history 2.5 Новый стиль в конце получения ссылки, сама кнопка плюс ссылка и поле с ссылкой
  22. // @history 2.4 Добавлено определение превышения лимита скачивания. Для браузера Opera, программы userjsmanager добавлена ссылка обновления скрипта.
  23. // @history 2.3 Добавлена опция индикации работы скрипта, когда вы думаете что скрипт не работает.
  24. // @history 2.2 Убрано предупреждение о начале запроса, так же уменьшено время ожидания в конце, если не будет работать автоскачивание напишите мне об этом.
  25. // @history 2.1 Исправлены некоторые переменные.
  26. // @history 2.0 Добавлена опция автоматического скачивания после появления кнопки, добавлено описание, изменён namespace скрипта.
  27. // @history 1.0 Релиз.
  28. // @author Black_Sun
  29. // @description Автоматически или вручную позволяет скачивать файлы без ожидания.
  30. // @include /^https?:\/\/(www\.)?(dfiles|depositfiles)\.(ru|com)\/files\/.*$/
  31. // @updateURL https://openuserjs.org/install/Black_Sun/depositfiles_downloader.user.js
  32. // @Download https://openuserjs.org/install/Black_Sun/depositfiles_downloader.user.js
  33. // @grant GM_registerMenuCommand
  34. // @grant GM_deleteValue
  35. // @grant GM_setValue
  36. // @grant GM_getValue
  37. // @grant GM_xmlhttpRequest
  38. // ==/UserScript==
  39. var uli;
  40. if(this.opera){
  41. var autodownload=true;
  42. }
  43. else
  44. {
  45. GM_registerMenuCommand("Удалить настройку автоскачивания", function() {GM_deleteValue("auto")});
  46. if(GM_getValue('auto')===undefined)
  47. {
  48. if(confirm('Первичная настройка скрипта\n для сброса настройки есть пункт меню в командах скрипта\n\nВы хотите использовать автоскачивание?'))
  49. {
  50. var autodownload=true;GM_setValue('auto',true);}else{var autodownload=false;GM_setValue('auto',false);
  51. }
  52. }
  53. else if(GM_getValue('auto')!==undefined){var autodownload=GM_getValue('auto')}
  54. }
  55. document.addEventListener("DOMContentLoaded",function(){
  56. var gate = new FormData();
  57. var ss="";
  58. gate.append("gateway_result", 1);
  59. var info=document.querySelector("div.violation");
  60. var divwait = document.createElement('div');
  61. divwait.innerHTML = 'Пожалуйста подождите, скачивание скоро начнётся.';
  62. divwait.setAttribute('style','font-size:18px;color:green');
  63. divwait.id = 'wait';
  64. info.parentNode.insertBefore(divwait, info);
  65. var ll=location.href.split('/')[3];
  66. if(ll.indexOf('files')!=-1){uli='http://dfiles.ru/'+ll+'/'+location.href.split('/')[4]}else{uli=location.href}
  67. GM_xmlhttpRequest(
  68. {
  69. method:"POST",
  70. data:gate,
  71. url:uli,
  72. headers:{
  73. "User-Agent":"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.20) DepositFiles/FileManager 0.9.9.206",
  74. "Accept":"*/*"
  75. },
  76. onload:function(response)
  77. {
  78. if (response.readyState == 4)
  79. {
  80. var doc = new DOMParser().parseFromString(response.responseText, "text/html");
  81. var ar=doc.getElementsByClassName("repeat")[0];
  82. var ip=doc.getElementsByClassName("ip")[0];
  83. var l='';
  84. if (ar !== undefined) l=ar.getElementsByTagName('a')[0].getAttribute('href');
  85. if (ip !== undefined)
  86. {
  87. clearInterval(ss)
  88. var st=ip.querySelector('div.ipbg').querySelector('strong').innerHTML.replace(/(.*)(\s[0-9]{1,}\s)(минут)(.*)/ig,"$2");
  89. st=st*1
  90. document.getElementById("wait").innerHTML = "<i style='color:blue'>Автозапрос повторится через "+st+" минут(у), не обновляйте страницу</i><br>"+ip.innerHTML;
  91. setInterval(function(){
  92. if(st>0)st=st-1
  93. document.getElementById("wait").innerHTML = "<i style='color:blue'>Автозапрос повторится через "+st+" минут(у), не обновляйте страницу</i><br>"+ip.innerHTML;
  94. },1*60*1000)
  95. var timerr=st*1*60*1000;
  96. ss=setInterval(function(){dretry()},timerr)
  97. }
  98. else
  99. {
  100. clearInterval(ss)
  101. document.getElementById("wait").innerHTML = '<div style="background:lightblue;text-align:center;height:30px;"><a href="'+l+'" style="font-size: 20px;">Download</a></div>';
  102. if(autodownload)location.href=l;
  103. }
  104. }
  105. }
  106. });
  107. function dretry(){
  108. GM_xmlhttpRequest(
  109. {
  110. method:"POST",
  111. data:gate,
  112. url:uli,
  113. headers:{
  114. "User-Agent":"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.20) DepositFiles/FileManager 0.9.9.206",
  115. "Accept":"*/*"
  116. },
  117. onload:function(response)
  118. {
  119. if (response.readyState == 4)
  120. {
  121. var doc = new DOMParser().parseFromString(response.responseText, "text/html");
  122. var ar=doc.getElementsByClassName("repeat")[0];
  123. var ip=doc.getElementsByClassName("ip")[0];
  124. var l='';
  125. if (ar !== undefined) l=ar.getElementsByTagName('a')[0].getAttribute('href');
  126. if (ip !== undefined)
  127. {
  128. clearInterval(ss)
  129. var st=ip.querySelector('div.ipbg').querySelector('strong').innerHTML.replace(/(.*)(\s[0-9]{1,}\s)(минут)(.*)/ig,"$2");
  130. st=st*1
  131. document.getElementById("wait").innerHTML = "<i style='color:blue'>Ошибка, если вы видите это сообщение, значит что-то не так.<br> Автозапрос повторится через "+st+" минут(у), не обновляйте страницу</i><br>"+ip.innerHTML;
  132. setInterval(function(){
  133. if(st>0)st=st-1
  134. document.getElementById("wait").innerHTML = "<i style='color:blue'>Ошибка, если вы видите это сообщение, значит что-то не так.<br> Автозапрос повторится через "+st+" минут(у), не обновляйте страницу</i><br>"+ip.innerHTML;
  135. },1*60*1000)
  136. var timerr=st*1*60*1000;
  137. ss=setInterval(function(){dretry()},timerr)
  138. }
  139. else
  140. {
  141. clearInterval(ss)
  142. document.getElementById("wait").innerHTML = '<div style="background:lightblue;text-align:center;height:30px;"><a href="'+l+'" style="font-size: 20px;">Download</a></div>';
  143. if(autodownload)location.href=l;
  144. }
  145. }
  146. }
  147. });
  148. }
  149. },false);

comments powered by Disqus