返回首頁 

Greasy Fork is available in English.

Indowebster GET Link

(Indowebster) automatically get download link

  1. // ==UserScript==// @name Indowebster GET Link// @namespace http://userscripts.org/scripts/show/69049// @include http://*.indowebster.com/*.html// @include http://*.indowebster.com/download/*// @include http://*.indowebster.com/downloads/*// @exclude http://ads.indowebster.com*// @version 13060830// @description (Indowebster) automatically get download link// @author idx (http://userscripts.org/users/idx)//// Indowebster Link Download//// Copyright (c) 2009, Idx// Released under the GPL license// http://www.gnu.org/copyleft/gpl.html// --------------------------------------------------------------------// Mod By: Idx// ==============//// mod.R-30 : 2013-06-08// recode//// mod.R-29 : 2012-11-03// reindent code// fix autodownload////// --------------------------------------------------------------------// ==/UserScript==(function() {function main(){var gvar = function() {};gvar.vver = "R.30";gvar.apps_title = 'IDWS GET[Link] - '+gvar.vver;gvar.apps_src = '//userscripts.org/scripts/show/69049';gvar.__DEBUG__ = !1;var OPTIONS_BOX = {IDWS_AUTODOWNLOAD: ['1']}, KS = 'IDWS_';var GMSTORAGE_PATH = "GM_";var $D = function(q, root, single) {if(root && typeof root == "string") {root = $D(root, null, true);if(!root) {return null}}if(!q) {return false}if(typeof q == "object") {return q}root = root || document;if(q[0] == "#") {return root.getElementById(q.substr(1))}else {if(q[0] == "/" || q[0] == "." && q[1] == "/") {if(single) {return document.evaluate(q, root, null, XPathR###lt.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue}return document.evaluate(q, root, null, XPathR###lt.ORDERED_NODE_SNAPSHOT_TYPE, null)}else {if(q[0] == ".") {return root.getElementsByClassName(q.substr(1))}}}return root.getElementsByTagName(q)};var GM_addGlobalScript = function (a, b, c) {var d = createEl("script", { type: "text/javascript"});if (isDefined(b) && isString(b)) d.setAttribute("id", b);if (a.match(/^https?:\/\/.+/)) d.setAttribute("src", a);else d.appendChild(createTextEl(a));if (isDefined(c) && c) {document.body.insertBefore(d, document.body.firstChild)} else {var e = document.getElementsByTagName("head");if (isDefined(e[0]) && e[0].nodeName == "HEAD") gvar.$w.setTimeout(function () {e[0].appendChild(d)}, 100);else document.body.insertBefore(d, document.body.firstChild)}return d};var GM_addGlobalStyle = function (a, b, c) {var d, e;if (a.match(/^https?:\/\/.+/)) {d = createEl("link", { type: "text/css", rel:'stylesheet', href:a });}else{d = createEl("style", { type: "text/css" });d.appendChild(createTextEl(a));}if (isDefined(b) && isString(b)) d.setAttribute("id", b);if (isDefined(c) && c) {document.body.insertBefore(d, document.body.firstChild)} else {e = document.getElementsByTagName("head");if (isDefined(e[0]) && e[0].nodeName == "HEAD") gvar.$w.setTimeout(function () {e[0].appendChild(d)}, 100);else document.body.insertBefore(d, document.body.firstChild)}return d};var rSRC = {getCSS: function(){return ''+'.wrap-actions{margin-top:-20px; padding:0; border:1px solid #ccc;}'+'.wrap-actions .btitle, .wrap-actions .btn_toggle_autodl, .title .btn_toggle_autodl{display:inline-block;}'+'.wrap-actions .btitle{background:#ddd; border-bottom:1px solid #ccc; padding:8px 0 5px 0; margin-bottom:20px;display:block;}'+'.wrap-actions .btitle a{font-size:14px; font-weight:bold; line-height:10px; display:inline-block; margin-left:10px;}'+'.btn_toggle_autodl{float:right;margin:7px 14px 0 0; font-size:11px;}'+'.btn_toggle_autodl input{width: 13px; height:13px; padding:0; margin:0; position: relative; top:-2px; vertical-align: bottom; *overflow: hidden;}'+'.btn_toggle_autodl label{display: block; text-indent: -15px;}'+'.title .btitle{display:inline-block;}'+'.title .btn_toggle_autodl{margin-top:3px;}'+'.title .btn_toggle_autodl input{top:-3px;}'+'.tips{color:#999; padding:5px;}'+'.hide{display:none}'+'';},getSCRIPT: function(){return ''+'var gvar = gvar || {};'+'var $btntarget = ($ && $(".downloadBtn").length ? $(".downloadBtn").first().find("input").first() : null);'+'var currentTitle = $("title").first().text();'+''+'function setTitle(x){$("title").first().text(x)}'+'function clog(x){console && console.log(x)}'+'function g(x){return document.getElementById(x)}'+''+'function frameloaded(){'+'$btntarget && $btntarget.val("Please wait.........");'+'if( $btntarget.hasClass("color_red") )'+' $btntarget.addClass("color_blue").removeClass("color_red");'+'}'+'function sendMessage(msg, cb){'+'gvar.link = msg;'+'("function" == typeof cb) && cb();'+'}'+'function respondLink(){'+'$btntarget.parent().attr("href", gvar.link);'+'var isAudl = $("#btn_autodl").is(":checked");'+'isAudl && $("#directlink_iframe").attr("src", gvar.link);'+'setTitle("[R] "+currentTitle);'+'if( $.browser.webkit )'+' $(".wrap-actions").find(".tips").removeClass("hide");'+'}'+'function timerMessage(msg){'+'if( msg > 0 )'+' $btntarget.val("DOWNLOAD ["+msg+"]");'+'else '+' $btntarget.val("DOWNLOAD REDE").removeClass("color_blue color_red").addClass("color_green");'+'setTitle("["+msg+"] "+currentTitle)'+'}'},getSCRIPT_Framed: function(){return ''+'var currentTitle = $("title").first().text();'+'function setTitle(x){$("title").first().text(x)}'+'function storeLink(e){'+'var el = e.target||e,'+' data_link=$(el).attr("data-link"),'+' data_autodl = $(el).attr("data-autodl"),'+' data_insideframe = $(el).attr("data-insideframe");'+'if( data_insideframe )'+' parent.sendMessage(data_link, parent.respondLink);'+'else{'+' data_autodl && $("#directlink_iframe").attr("src", data_link);'+' setTitle( "[R] "+currentTitle)'+'}'+'}'+'function timerMessage(e){'+'var el = e.target||e,'+' data_remain = $(el).attr("data-remain"),'+' data_autodl = $(el).attr("data-autodl"),'+' data_insideframe = $(el).attr("data-insideframe");'+'if( data_insideframe ){'+' parent.timerMessage(data_remain);'+'}else{'+' setTitle( "["+data_remain+"] "+currentTitle)'+'}'+'}'}};//=== mini-functions// static routinefunction isDefined(x) { return !(x == null && x !== null); }function isUndefined(x) { return x == null && x !== null; }function isString(x) { return (typeof(x)!='object' && typeof(x)!='function'); }function trimStr(x) { return (typeof(x)=='string' && x ? x.replace(/^\s+|\s+$/g,"") : '') };function isLink(x) { return x.match(/((?:http(?:s|)|ftp):\/\/)(?:\w|\W)+(?:\.)(?:\w|\W)+/); }function dump(x){return ("undefined" != typeof JSON ? JSON.stringify(x) : x)}function createTextEl(a) {return document.createTextNode(a)}function createEl(a, b, c) {var d = document.createElement(a);for (var e in b) if (b.hasOwnProperty(e)) d.setAttribute(e, b[e]);if (c) d.innerHTML = c;return d}function getTag(name, parent) {if(isUndefined(parent)) {parent = document}return parent.getElementsByTagName(name)}function getValue(key, cb) {var data=OPTIONS_BOX[key];if( !data ) return;setTimeout(function(){var ret = GM_getValue(key,data[0]);if('function' == typeof cb)cb(ret);else if(cb)cb = ret;}, 0);}function setValue(key, value, cb) {var data=OPTIONS_BOX[key];if( !data ) return;setTimeout(function(){var ret = GM_setValue(key,value);if('function' == typeof cb)cb(ret);else if(cb)cb = ret;}, 1);}function ApiBrowserCheck() {if(typeof unsafeWindow == "undefined") {unsafeWindow = window}if(typeof GM_log == "undefined") {GM_log = function(msg) {try {unsafeWindow.console.log("GM_log: " + msg)}catch(e) {}}}var needApiUpgrade = false;if(window.navigator.appName.match(/^opera/i) && typeof window.opera != "undefined") {needApiUpgrade = true;gvar.isOpera = true;GM_log = window.opera.postError;show_alert("Opera detected...", 0)}if(typeof GM_setValue != "undefined") {var gsv;try {gsv = GM_setValue.toString()}catch(e) {gsv = ".staticArgs.FF4.0b"}if(gsv.indexOf("staticArgs") > 0) {gvar.isGreaseMonkey = true;gvar.isFF4 = false;show_alert("GreaseMonkey Api detected" + ((gvar.isFF4 = gsv.indexOf("FF4.0b") > 0) ? " on FF4.0b" : "") + "...", 0)}else {if(gsv.match(/not\s+supported/)) {needApiUpgrade = true;gvar.isBuggedChrome = true;show_alert("Bugged Chrome GM Api detected...", 0)}}}else {needApiUpgrade = true;show_alert("No GM Api detected...", 0)}gvar.noCrossDomain = gvar.isOpera || gvar.isBuggedChrome;if(needApiUpgrade) {GM_isAddon = true;show_alert("Try to recreate needed GM Api...", 0);var ws = null;try {ws = typeof unsafeWindow.localStorage}catch(e) {ws = null}if(ws == "object") {show_alert("Using localStorage for GM Api.", 0);GM_getValue = function(name, defValue) {var value = unsafeWindow.localStorage.getItem(GMSTORAGE_PATH + name);if(value == null) {return defValue}else {switch(value.substr(0, 2)) {case "S]":return value.substr(2);case "N]":return parseInt(value.substr(2));case "B]":return value.substr(2) == "true"}}return value};GM_setValue = function(name, value) {switch(typeof value) {case "string":unsafeWindow.localStorage.setItem(GMSTORAGE_PATH + name, "S]" + value);break;case "number":if(value.toString().indexOf(".") < 0) {unsafeWindow.localStorage.setItem(GMSTORAGE_PATH + name, "N]" + value)}break;case "boolean":unsafeWindow.localStorage.setItem(GMSTORAGE_PATH + name, "B]" + value);break}};GM_deleteValue = function(name) {unsafeWindow.localStorage.removeItem(GMSTORAGE_PATH + name)}}else {if(!gvar.isOpera || typeof GM_setValue == "undefined") {show_alert("Using temporarilyStorage for GM Api.", 0);gvar.temporarilyStorage = new Array;GM_getValue = function(name, defValue) {if(typeof gvar.temporarilyStorage[GMSTORAGE_PATH + name] == "undefined") {return defValue}else {return gvar.temporarilyStorage[GMSTORAGE_PATH + name]}};GM_setValue = function(name, value) {switch(typeof value) {case "string":;case "boolean":;case "number":gvar.temporarilyStorage[GMSTORAGE_PATH + name] = value}};GM_deleteValue = function(name) {delete gvar.temporarilyStorage[GMSTORAGE_PATH + name]}}}if(typeof GM_openInTab == "undefined") {GM_openInTab = function(url) {unsafeWindow.open(url, "")}}if(typeof GM_registerMenuCommand == "undefined") {GM_registerMenuCommand = function(name, cmd) {GM_log("Notice: GM_registerMenuCommand is not supported.")}}if(!gvar.isOpera || typeof GM_xmlhttpRequest == "undefined") {show_alert("Using XMLHttpRequest for GM Api.", 0);GM_xmlhttpRequest = function(obj) {var request = new XMLHttpRequest;request.onreadystatechange = function() {if(obj.onreadystatechange) {obj.onreadystatechange(request)}if(request.readyState == 4 && obj.onload) {obj.onload(request)}};request.onerror = function() {if(obj.onerror) {obj.onerror(request)}};try {request.open(obj.method, obj.url, true)}catch(e) {if(obj.onerror) {obj.onerror({readyState:4, responseHeaders:"", responseText:"", responseXML:"", status:403, statusText:"Forbidden"})}return}if(obj.headers) {for(name in obj.headers) {request.setRequestHeader(name, obj.headers[name])}}request.send(obj.data);return request}}}GM_getIntValue = function(name, defValue) {return parseInt(GM_getValue(name, defValue), 10)}}function clog(msg) {if(!gvar.__DEBUG__) {return}show_alert(msg)}function show_alert(msg, force) {if(!gvar.__DEBUG__) {return}if(arguments.callee.counter) {arguments.callee.counter++}else {arguments.callee.counter = 1}GM_log("(" + arguments.callee.counter + ") " + msg);if(force == 0) {return}}// end of std-funcfunction create_trans_iframe(link) {var $ifrm = $("#fake_iframe"),styles = gvar.ninja_styles;if( !$ifrm.length ) {$('<iframe id="fake_iframe" src="'+link+'" style="'+styles+'" onload="parent.frameloaded()"></iframe>').prependTo($('body'));create_directlink_iframe();}else {$ifrm.attr('src', link);}}function create_directlink_iframe() {var $ifrm = $("#directlink_iframe"),styles = gvar.ninja_styles;if( !$ifrm.length ) {$('<iframe id="directlink_iframe" src="javascript:;" style="'+styles+'"></iframe>').prependTo($('body'));}}function is_download_page(){return /\/download\//.test(location.href);}function prefetch_download() {clog('insed prefetch_download');$.post(gvar.prefetch.prefetchUri, gvar.prefetch.prefetchParams, function(ret){if( ret ){$('#btn_timer').attr('data-remain', 0).trigger('click');gvar.sTryCounter && clearInterval(gvar.sTryCounter);$('#btn_storelink').attr('data-link', ret).trigger('click');}})}function start_Main(){clog('start_Main');var $downloadBtn = $('.downloadBtn'),is_inside_iframe = ( window !== window.top );GM_addGlobalStyle(rSRC.getCSS(), 'parent-style', true);if( is_download_page() ){$downloadBtn.length && (function($el){// do what and then...GM_addGlobalScript(rSRC.getSCRIPT(), 'parent-script', true);$downloadBtn.closest('.block').wrap($('<div class="wrap-actions"></div>'));$('.wrap-actions').prepend($('<div class="btitle"><a href="'+gvar.apps_src+'" target="_blank">'+gvar.apps_title+'</a></div>')).prepend($('<div class="btn_toggle_autodl"><label for="btn_autodl"><input id="btn_autodl" type="checkbox" '+(gvar.settings.auto_dl ? ' checked="checked"':'')+' />&nbsp;Auto Download<label></div>')).append('<div class="tips hide">*When "Download Rede" and download is not working, try it with "Save Link As.."</div>');window.setTimeout(function(){create_trans_iframe($el.href);}, 234);})($downloadBtn[0]);}else{// assumed is page of /downloads/GM_addGlobalScript(rSRC.getSCRIPT_Framed(), 'iframe-script', true);var $tgt_title = $('.alpha.omega>h6.title');$tgt_title.wrapInner('<div class="btitle" />');$tgt_title.find('.btitle').html('<a href="'+gvar.apps_src+'" target="_blank">'+gvar.apps_title+'</a>');$tgt_title.append($('<div class="btn_toggle_autodl"><label for="btn_autodl"><input id="btn_autodl" type="checkbox" '+(gvar.settings.auto_dl ? ' checked="checked"':'')+'/>&nbsp;Auto Download<label></div>'));clog('we are on downloads');var $bodyContainer = $('#bodyContainer'),$scripts = getTag('script', $bodyContainer.get(0)),$targetScript = null;for(var i=0; i<$scripts.length; ++i){if( String($scripts[i].innerHTML).match(/\$\.post\b/) ){$targetScript = $scripts[i]; break;}}if( $targetScript ){var re = new RegExp('\\$\\.p'+''/*_^_^V_*/+'o'+'st\\([\\\'\\\"]([^\\\'\\\"]+).(?:\\s+)?,(?:\\s+)?(\\{[^\\}]+.)', "");if( cucok = re.exec($targetScript.innerHTML) ){var params_;try{params_ = eval('('+cucok[2]+')');}catch(e){params_={}}gvar.prefetch = {prefetchUri: cucok[1],prefetchParams: params_};window.setTimeout(function(){prefetch_download();}, 345);window.setTimeout(function(){$downloadBtn = $('#downloadBtn');var cucok, remain;gvar.remain = 25;if(cucok = /\s\((\d+)s\)/.exec($downloadBtn.val()) ){remain = cucok[1];gvar.remain = remain;}}, 1);if( !is_inside_iframe )create_directlink_iframe();gvar.sTryCounter = setInterval(function(){var $tgt = $('#btn_timer');if( gvar.remain > 0 ){$tgt.attr('data-remain', gvar.remain).trigger('click');}else{clearInterval(gvar.sTryCounter);}$tgt.val(gvar.remain);gvar.remain--;}, 1000);}else{clog('regex failed');}}else{clog('targetScript not found');}$('<input id="btn_storelink" data-autodl="'+(gvar.settings.auto_dl ? '1':'')+'" data-insideframe="'+(is_inside_iframe ? '1':'')+'" data-link="" type="button" onclick="return storeLink(this)" value="StoreLink" />').appendTo($bodyContainer);$('<input id="btn_timer" data-autodl="'+(gvar.settings.auto_dl ? '1':'')+'" data-insideframe="'+(is_inside_iframe ? '1':'')+'" type="button" onclick="return timerMessage(this)" value="tickTimer" />').appendTo($bodyContainer);}// common events$('#btn_autodl').click(function(){var isChecked = $(this).is(":checked");setValue(KS + 'AUTODOWNLOAD', (isChecked ? '1':'0'), function(){gvar.settings.auto_dl = isChecked;$('#btn_storelink').attr('data-autodl', isChecked ? '1':'');$('#btn_timer').attr('data-autodl', isChecked ? '1':'');});})}(function init(){ApiBrowserCheck();gvar.settings = {};gvar.ninja_styles = 'position:absolute!important; overflow:hidden; left:-99999; height:0!important; width:0;';//gvar.settings.auto_dl = !1;// getSettingsgetValue(KS + 'AUTODOWNLOAD', function(ret){gvar.settings.auto_dl = (ret && ret=='1' ? true:false);var destination = $('.block>h1.title:first,.alpha.omega>h6.title').offset().top,scOffset = 30,delay = 350,landed = 0;$("html:not(:animated),body:not(:animated)").animate({ scrollTop: (destination-scOffset)}, delay, function() {if(landed) return;start_Main();landed = 1;});});})();}// mainfunction addJQuery(callback) {var script = document.createElement("script");script.setAttribute("src", location.protocol + "\/\/ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js");script.addEventListener('load', function() {var script = document.createElement("script");script.textContent = "(" + callback.toString() + ")();";document.body.appendChild(script);}, false);document.body.appendChild(script);}addJQuery( main );})();/* Mod By Idx. */