// ==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);
Donate for the site OpenUserJS
Are you sure you want to go to an external site to donate a monetary value?
WARNING: Some countries laws may supersede the payment processors policy such as the GDPR and PayPal. While it is highly appreciated to donate, please check with your countries privacy and identity laws regarding privacy of information first. Use at your utmost discretion.