NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @id depositfiles_waiter // @name depositfiles_downloader // @namespace https://openuserjs.org/scripts/Black_Sun/depositfiles_downloader // @version 5.0.3 // @history 5.0.3 Сразу обновлены ссылки на скачивание и проверку обновлений // @history 5.0.2 Тестовое изменение, добавил всего одну строчку запуска на старте run-at document-start если перестало работать на FF пишите issue по ссылке выше, строчка для того что бы заработало на Chrome // @history 5.0.1 Изменён include, работа гарантируется только на greasemoney // @history 5.0 Добавлено автоожидание при лимите и исправлена ошибка ссылок с limit=1 на конце (issue by rayman89). // @history 4.7 Модифицировал код под Greasemonkey, т.к. Scriptish автор походу забросил. // @history 4.6 Совсем убрал jQuery из скрипта и добавил GM_safeHTMLParser, спасибо KOLANICH за наводку // @history 4.5.0.1 Updated: Новая ссылка для обновления скрипта // @history 4.5.0 Настало время ввести новую систему версий и дать грант функциям // @history 4.4 Добавлена поддержка dfiles.ru // @history 4.3 И сразу 4.3. Добавлено:Информация о просьбе подождать, и лимите подключений. // @history 4.2 Добавлено: Автоопределение страны ссылки // @history 4.1 Небольшой фикс // @history 4.0 Surprise. // @history 3.0 Переделан скрипт, теперь нажимает, добавлена инфа в табе о секундах, автоскачивание не работает, т.к. там каптча и, да, её нужно вводить :( // @history 2.8 Фикс под новый вид кода и добавлена инфа о лимите. // @history 2.7 Обновлены include // @history 2.6 Обновил код, добавил настройки и их удаления для Firefox(greasemonkey или scriptish) и Chrome(Tempermonkey), для Оперы настройки остались в коде скрипта в начале. // @history 2.5 Новый стиль в конце получения ссылки, сама кнопка плюс ссылка и поле с ссылкой // @history 2.4 Добавлено определение превышения лимита скачивания. Для браузера Opera, программы userjsmanager добавлена ссылка обновления скрипта. // @history 2.3 Добавлена опция индикации работы скрипта, когда вы думаете что скрипт не работает. // @history 2.2 Убрано предупреждение о начале запроса, так же уменьшено время ожидания в конце, если не будет работать автоскачивание напишите мне об этом. // @history 2.1 Исправлены некоторые переменные. // @history 2.0 Добавлена опция автоматического скачивания после появления кнопки, добавлено описание, изменён namespace скрипта. // @history 1.0 Релиз. // @author Black_Sun // @description Автоматически или вручную позволяет скачивать файлы без ожидания. // @include /^https?:\/\/(www\.)?(dfiles|depositfiles)\.(ru|com)\/files\/.*$/ // @updateURL https://openuserjs.org/meta/Black_Sun/depositfiles_downloader.meta.js // @downloadURL https://openuserjs.org/install/Black_Sun/depositfiles_downloader.user.js // @grant GM_registerMenuCommand // @grant GM_deleteValue // @grant GM_setValue // @grant GM_getValue // @grant GM_xmlhttpRequest // @run-at document-start // ==/UserScript== var uli; if(this.opera){ var autodownload=true; } else { GM_registerMenuCommand("Удалить настройку автоскачивания", function() {GM_deleteValue("auto")}); if(GM_getValue('auto')===undefined) { if(confirm('Первичная настройка скрипта\n для сброса настройки есть пункт меню в командах скрипта\n\nВы хотите использовать автоскачивание?')) { var autodownload=true;GM_setValue('auto',true);}else{var autodownload=false;GM_setValue('auto',false); } } else if(GM_getValue('auto')!==undefined){var autodownload=GM_getValue('auto')} } document.addEventListener("DOMContentLoaded",function(){ var gate = new FormData(); var ss=""; gate.append("gateway_result", 1); var info=document.querySelector("div.violation"); var divwait = document.createElement('div'); divwait.innerHTML = 'Пожалуйста подождите, скачивание скоро начнётся.'; divwait.setAttribute('style','font-size:18px;color:green'); divwait.id = 'wait'; info.parentNode.insertBefore(divwait, info); var ll=location.href.split('/')[3]; if(ll.indexOf('files')!=-1){uli='http://dfiles.ru/'+ll+'/'+location.href.split('/')[4]}else{uli=location.href} GM_xmlhttpRequest( { method:"POST", data:gate, url:uli, headers:{ "User-Agent":"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.20) DepositFiles/FileManager 0.9.9.206", "Accept":"*/*" }, onload:function(response) { if (response.readyState == 4) { var doc = new DOMParser().parseFromString(response.responseText, "text/html"); var ar=doc.getElementsByClassName("repeat")[0]; var ip=doc.getElementsByClassName("ip")[0]; var l=''; if (ar !== undefined) l=ar.getElementsByTagName('a')[0].getAttribute('href'); if (ip !== undefined) { clearInterval(ss) var st=ip.querySelector('div.ipbg').querySelector('strong').innerHTML.replace(/(.*)(\s[0-9]{1,}\s)(минут)(.*)/ig,"$2"); st=st*1 document.getElementById("wait").innerHTML = "<i style='color:blue'>Автозапрос повторится через "+st+" минут(у), не обновляйте страницу</i><br>"+ip.innerHTML; setInterval(function(){ if(st>0)st=st-1 document.getElementById("wait").innerHTML = "<i style='color:blue'>Автозапрос повторится через "+st+" минут(у), не обновляйте страницу</i><br>"+ip.innerHTML; },1*60*1000) var timerr=st*1*60*1000; ss=setInterval(function(){dretry()},timerr) } else { clearInterval(ss) document.getElementById("wait").innerHTML = '<div style="background:lightblue;text-align:center;height:30px;"><a href="'+l+'" style="font-size: 20px;">Download</a></div>'; if(autodownload)location.href=l; } } } }); function dretry(){ GM_xmlhttpRequest( { method:"POST", data:gate, url:uli, headers:{ "User-Agent":"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.20) DepositFiles/FileManager 0.9.9.206", "Accept":"*/*" }, onload:function(response) { if (response.readyState == 4) { var doc = new DOMParser().parseFromString(response.responseText, "text/html"); var ar=doc.getElementsByClassName("repeat")[0]; var ip=doc.getElementsByClassName("ip")[0]; var l=''; if (ar !== undefined) l=ar.getElementsByTagName('a')[0].getAttribute('href'); if (ip !== undefined) { clearInterval(ss) var st=ip.querySelector('div.ipbg').querySelector('strong').innerHTML.replace(/(.*)(\s[0-9]{1,}\s)(минут)(.*)/ig,"$2"); st=st*1 document.getElementById("wait").innerHTML = "<i style='color:blue'>Ошибка, если вы видите это сообщение, значит что-то не так.<br> Автозапрос повторится через "+st+" минут(у), не обновляйте страницу</i><br>"+ip.innerHTML; setInterval(function(){ if(st>0)st=st-1 document.getElementById("wait").innerHTML = "<i style='color:blue'>Ошибка, если вы видите это сообщение, значит что-то не так.<br> Автозапрос повторится через "+st+" минут(у), не обновляйте страницу</i><br>"+ip.innerHTML; },1*60*1000) var timerr=st*1*60*1000; ss=setInterval(function(){dretry()},timerr) } else { clearInterval(ss) document.getElementById("wait").innerHTML = '<div style="background:lightblue;text-align:center;height:30px;"><a href="'+l+'" style="font-size: 20px;">Download</a></div>'; if(autodownload)location.href=l; } } } }); } },false);